Alias(AS, 별칭) 개념 정리

TJK·2025년 8월 22일
0

Alias(AS, 별칭) 개념 정리

Alias(별칭)는 SQL 쿼리에서 컬럼 또는 테이블에 임시 이름을 부여하는 기능입니다. 가독성을 높이고 복잡한 쿼리를 간결하게 만드는 데 사용됩니다. SQLD 시험에서는 Alias의 문법과 사용 범위가 자주 출제됩니다.


1. Alias의 기본 개념

핵심 개념 (★★★★★)

  • 목적: 쿼리 결과의 가독성을 높이고 테이블 이름 등을 간결하게 줄여서 쿼리 작성을 쉽게 만듭니다.
  • 영향: Alias는 쿼리 실행 시에만 유효하며, 데이터베이스의 실제 테이블이나 컬럼 이름을 변경하지 않습니다.

2. Alias 지정 방법

(1) 컬럼 Alias

  • 문법: 컬럼명 [AS] 별칭
  • AS 키워드는 선택 사항이며, 생략해도 됩니다.
  • 예시: SELECT user_id AS 회원번호, user_name 이름 FROM Users;

(2) 테이블 Alias

  • 문법: 테이블명 [AS] 별칭
  • 대부분의 DBMS에서는 AS를 생략하고 사용합니다.
  • Oracle에서는 AS 사용 시 오류가 발생하므로, AS 없이 사용하는 것이 SQLD 시험의 핵심 포인트입니다.
  • 예시: FROM Users u JOIN Orders o ON u.id = o.user_id;

(3) 따옴표 사용

  • 별칭에 공백, 특수 문자, 대소문자 구분을 포함하고 싶을 때는 반드시 **큰따옴표(")**로 묶어야 합니다.
  • 홑따옴표(')는 문자열 상수로 취급되므로 별칭으로 사용할 수 없습니다.
  • 예시: SELECT user_id AS "회원 번호" FROM Users;

3. Alias 사용 가능 범위 (SQLD 시험 기준)

핵심 개념 (★★★★★)

Alias는 쿼리 실행 순서 때문에 모든 절에서 사용할 수 있는 것은 아닙니다.

  • WHERE 절: 사용 불가
    • FROM 절이 실행되어 테이블이 확정된 후 WHERE 절이 실행되지만, SELECT 절의 별칭은 아직 생성되지 않았기 때문입니다.
  • ORDER BY 절: 사용 가능
    • SELECT 절이 먼저 실행된 후 ORDER BY 절이 실행되므로, 별칭을 인식할 수 있습니다.
  • 예시:
    SELECT salary AS 급여 FROM Employees
    WHERE 급여 > 3000;  -- ❌ (오류 발생)
    ORDER BY 급여;      -- ✅ (정상 작동)

Alias 핵심 요약표 (SQLD 시험용)

구분문법AS 키워드시험 핵심 포인트
컬럼 Alias컬럼명 AS 별칭사용 가능/생략 가능WHERE 절 사용 불가
테이블 Alias테이블명 별칭Oracle에서는 AS 생략 필수FROM 절에서만 지정
따옴표"별칭"공백, 대소문자 포함 시 필수'별칭' (홑따옴표)는 오류

실전 기출 문제 세트

1. 다음 중 올바른 Alias 사용 예시는?
A. SELECT name = 이름 FROM Users;
B. SELECT name AS 이름 FROM Users;
C. SELECT name 이름 FROM Users;
D. SELECT name '이름' FROM Users;

2. 다음 SQL 실행 결과에 대한 설명으로 옳은 것은? (Oracle 기준)

SELECT salary AS 급여 FROM Employees WHERE 급여 > 3000;

A. 정상 실행되며, 급여가 3000을 초과하는 행을 출력한다.
B. 급여 별칭은 WHERE 절에서 사용 가능하므로 문제없다.
C. WHERE 절에서 Alias를 사용했으므로 오류가 발생한다.
D. 급여 컬럼이 실제로 급여로 변경된다.

3. 다음 중 테이블 Alias 사용에 대한 설명으로 옳은 것은? (Oracle 기준)
A. FROM Users AS u는 정상 실행된다.
B. 테이블 Alias는 WHERE 절에서만 지정할 수 있다.
C. 테이블 Alias는 반드시 AS를 붙여야 한다.
D. FROM Users u는 Oracle에서 정상 실행된다.

4. 다음 SQL 실행 결과에 대한 설명으로 옳은 것은?

SELECT user_id AS "User ID" FROM Users;

A. 출력 컬럼명이 USER ID (대문자, 공백 없음)으로 표시된다.
B. 출력 컬럼명이 User ID 그대로 표시된다.
C. "User ID"는 문자열로 인식되어 오류가 발생한다.
D. "User ID"는 실제 테이블 컬럼명으로 반영된다.


정답 및 해설

  • 문제 1 정답: B, C
    • 해설: A는 잘못된 문법입니다. B는 AS를 사용한 올바른 문법이고, C는 AS를 생략한 올바른 문법입니다. D는 홑따옴표를 사용해 문자열로 인식되므로 오류가 발생합니다.
  • 문제 2 정답: C
    • 해설: Oracle을 포함한 대부분의 DBMS에서 WHERE 절은 SELECT 절보다 먼저 실행됩니다. 따라서 급여라는 Alias를 인식할 수 없어 오류가 발생합니다.
  • 문제 3 정답: D
    • 해설: Oracle에서 테이블 Alias를 지정할 때는 AS 키워드를 사용할 수 없으며, 테이블명 별칭의 형태로만 가능합니다.
  • 문제 4 정답: B
    • 해설: 큰따옴표(")로 묶은 별칭은 공백과 대소문자를 그대로 유지한 채 출력 컬럼명으로 표시됩니다.
profile
Hello world!

0개의 댓글