SQL Server 별칭(Alias)이란?
SQL Server에서 별칭(ALIAS)은 컬럼(column)이나 테이블(table)에 임시 이름을 부여하는 기능입니다. 복잡한 쿼리를 더 읽기 쉽게 만들고, 조회 결과의 헤더를 명확하게 표시하는 데 매우 유용합니다.
- 컬럼 별칭(COLUMN ALIAS) – 조회 결과에서 컬럼 헤더를 원하는 이름으로 바꿔 가독성을 높일 때 사용합니다.
- 테이블 별칭(TABLE ALIAS) – SQL 문장을 짧게 줄여 가독성을 개선하거나, FROM 절에서 같은 테이블을 여러 번 조인(self join)해야 할 때 사용합니다.
별칭 문법
컬럼에 별칭을 지정하는 문법:
ten_cot [ AS ] bi_danh
테이블에 별칭을 지정하는 문법:
ten_bang [ AS ] bi_danh
매개변수 설명
- ten_cot – 별칭을 붙이려는 컬럼의 원래 이름입니다.
- ten_bang – 별칭을 붙이려는 테이블의 원래 이름입니다.
- AS – 선택 사항(optional)입니다. 대부분의 개발자는 컬럼 별칭을 지정할 때 AS 키워드를 사용하고, 테이블 별칭을 지정할 때는 생략하는 경향이 있습니다. SQL Server에서는 AS를 사용하든 생략하든 결과에는 영향을 주지 않습니다. (아래 예제에서는 컬럼 별칭에는 AS를 사용하고, 테이블 별칭에는 생략합니다.)
- bi_danh – 컬럼 또는 테이블에 지정하는 임시 이름입니다.
주의 사항
- 별칭에 공백이 포함된 경우 반드시 따옴표(' ')로 묶어야 합니다.
- 컬럼 별칭에는 공백을 사용할 수 있지만, 테이블 별칭에는 공백을 사용하지 않는 것이 일반적입니다.
- 별칭은 해당 SQL 문(statement) 내에서만 유효하며, 데이터베이스 객체의 실제 이름이 변경되는 것은 아닙니다.
예제 1 – 컬럼에 별칭 지정하기
컬럼 별칭은 주로 조회 결과의 컬럼 헤더를 보기 쉽게 만들 때 사용됩니다.
SELECT nhanvien_id, ten + ho AS NAME
FROM nhanvien
WHERE ten = 'Sarah';
이 예제에서는 두 번째 컬럼(이름과 성을 결합한 값)에 NAME이라는 별칭을 지정했습니다. 결과 집합에서 NAME이 두 번째 컬럼의 제목으로 표시됩니다. 별칭에 공백이 없으므로 따옴표가 필요하지 않지만, 원한다면 아래와 같이 사용할 수도 있습니다.
SELECT nhanvien_id, ten + ho AS 'NAME'
FROM nhanvien
WHERE ten = 'Sarah';
다음은 별칭에 공백이 포함되어 있어 반드시 따옴표로 묶어야 하는 경우입니다.
SELECT nhanvien_id, ten + ho AS 'TEN NHAN VIEN'
FROM nhanvien
WHERE ten = 'Sarah';
이 예제에서는 결과 집합의 두 번째 컬럼 제목이 TEN NHAN VIEN으로 표시됩니다.
예제 2 – 테이블에 별칭 지정하기
테이블 별칭은 FROM 절에서 같은 테이블을 여러 번 나열(self join)하거나, 긴 테이블 이름을 짧게 줄여 쿼리를 더 읽기 쉽게 만들 때 유용합니다.
SELECT s.sanpham_ten, hangtonkho.chatluong
FROM sanpham s
INNER JOIN hangtonkho
ON s.sanpham_id = hangtonkho.sanpham_id
ORDER BY s.sanpham_ten ASC, hangtonkho.chatluong DESC;
위 예제에서는 sanpham 테이블에 s라는 별칭을 만들었습니다. 이후 SQL 문 전체에서 sanpham 테이블을 s로 참조할 수 있습니다. 테이블 별칭을 만들 때 FROM 절의 모든 테이블에 반드시 별칭을 지정할 필요는 없습니다. 예를 들어, hangtonkho 테이블에도 별칭을 지정하면 다음과 같습니다.
SELECT s.sanpham_ten, h.chatluong
FROM sanpham s
INNER JOIN hangtonkho h
ON s.sanpham_id = h.sanpham_id
ORDER BY s.sanpham_ten ASC, h.chatluong DESC;
이제 hangtonkho 테이블은 h로, sanpham 테이블은 s로 불립니다. 이처럼 테이블 별칭을 활용하면 조인(join) 쿼리가 훨씬 간결하고 읽기 쉬워집니다.