alias (별칭)

mskimdev·2026년 4월 17일

MySQL

목록 보기
15/20
post-thumbnail

별칭 (Alias)

SELECT m.member_name, o.order_id
FROM members m
INNER JOIN orders o ON m.member_id = o.member_id;

JOIN을 쓰다 보면 자연스럽게 테이블 이름 뒤에 짧은 글자를 붙이게 된다. 위 코드에서 members m, orders o가 바로 별칭(Alias)이다. 컬럼과 테이블 모두에 붙일 수 있고, 쿼리를 훨씬 읽기 쉽게 만들어준다.


별칭의 종류

컬럼 별칭

조회 결과에서 컬럼 이름을 바꿔서 보여준다. AS 키워드를 쓰거나 생략해도 된다.

SELECT
    member_name AS 이름,
    email       AS 이메일
FROM members;
이름   | 이메일
------+---------------
김민수  | kim@email.com
이지현  | lee@email.com

member_name이라는 컬럼명 대신 결과에는 이름으로 표시된다. 테이블 구조는 바뀌지 않고, 조회 결과에서만 이름이 달라진다.

공백이 포함된 별칭은 따옴표로 감싼다.

SELECT member_name AS '회원 이름' FROM members;

집계 함수 결과에 이름을 붙일 때도 유용하다.

SELECT
    COUNT(*)  AS 총주문수,
    SUM(price) AS 총금액
FROM orders;

테이블 별칭

테이블 이름을 짧게 줄여서 쓴다. JOIN처럼 테이블을 여러 개 다룰 때 특히 편리하다.

-- 별칭 없이
SELECT members.member_name, orders.order_date
FROM members
INNER JOIN orders ON members.member_id = orders.member_id;

-- 별칭 사용
SELECT m.member_name, o.order_date
FROM members m
INNER JOIN orders o ON m.member_id = o.member_id;

테이블 이름이 길수록 효과가 크다. 별칭을 한 번 정하면 해당 쿼리 안에서는 원래 테이블 이름 대신 별칭만 써야 한다. 섞어 쓰면 오류가 난다.

-- 오류: m으로 별칭을 정했으면 members는 더 이상 못 쓴다
SELECT members.member_name
FROM members m;

AS는 생략 가능하다

컬럼 별칭과 테이블 별칭 모두 AS를 생략해도 동작한다.

-- 두 쿼리는 동일하다
SELECT member_name AS 이름 FROM members m;
SELECT member_name 이름   FROM members m;

보통 컬럼 별칭엔 AS를 명시하고, 테이블 별칭엔 생략하는 경우가 많다. 명확하게 읽히는 쪽을 선택하면 된다.


별칭 사용 시 주의할 점

WHERE 절에서는 컬럼 별칭을 쓸 수 없다. 쿼리 실행 순서상 WHERESELECT보다 먼저 처리되기 때문에, SELECT에서 정한 별칭을 WHERE는 아직 모른다.

-- 오류: WHERE에서 별칭 사용 불가
SELECT member_name AS 이름
FROM members
WHERE 이름 = '김민수';

-- 올바른 방법
SELECT member_name AS 이름
FROM members
WHERE member_name = '김민수';

반면 ORDER BYSELECT 이후에 실행되기 때문에 별칭을 쓸 수 있다.

SELECT member_name AS 이름
FROM members
ORDER BY 이름;

별칭은 기능보다 가독성의 영역이다. 쿼리가 길어질수록 테이블 이름을 풀네임으로 반복하는 건 읽기도 쓰기도 불편하다. 짧고 의미 있는 별칭 하나가 쿼리 전체를 훨씬 깔끔하게 만든다.

profile
<- 개발 공부하는 나

0개의 댓글