SQL별칭(AS) 완벽 가이드 – 쿼리 가독성을 3배 높이는 실전 테크닉

데이터베이스 쿼리를 작성하다 보면 테이블명이나 컬럼명이 너무 길어서 불편했던 경험, 누구나 있으시죠? 특히 JOIN이 여러 개 들어간 복잡한 쿼리에서는 코드가 금방 지저분해집니다. 오늘은 이런 문제를 단번에 해결해주는 SQL의 AS 별칭(Alias) 사용법을 실전 예제와 함께 알아보겠습니다.


AS 별칭이란? 왜 필요할까요?

AS 별칭은 테이블이나 컬럼에 임시로 짧은 이름을 붙여주는 SQL 문법입니다. 마치 긴 이름을 가진 사람에게 애칭을 붙여주는 것과 같죠.

실무에서 AS를 사용해야 하는 3가지 이유:

  • 긴 테이블명을 짧게 줄여 타이핑 시간 단축
  • 복잡한 JOIN 쿼리의 가독성 향상
  • 팀 협업 시 코드 이해도 증가

여러분이 제시한 쿼리를 먼저 살펴볼까요?

SELECT a.userid, a.descript
FROM ta_db.tb_mempdata AS a

이 쿼리에서 ta_db.tb_mempdata라는 긴 테이블명을 a라는 한 글자로 줄였습니다. 덕분에 SELECT 절에서 a.userid, a.descript처럼 간결하게 작성할 수 있죠.

테이블 별칭 사용법 – 기초부터 실전까지

기본 문법

테이블 별칭은 FROM 절이나 JOIN 절에서 선언합니다. AS 키워드는 생략도 가능합니다.

-- AS 키워드 사용 (권장)
SELECT a.userid, a.username
FROM users AS a

-- AS 키워드 생략
SELECT a.userid, a.username
FROM users a

초보자 팁: AS 키워드를 명시하는 게 가독성이 더 좋습니다. 코드만 봐도 “아, 이게 별칭이구나” 하고 바로 알 수 있거든요.


실전 예제 1 – 여러 테이블 JOIN 시 별칭 활용

SELECT
    u.userid,
    u.username,
    o.order_id,
    o.order_date,
    p.product_name
FROM customers AS u
INNER JOIN orders AS o ON u.userid = o.userid
INNER JOIN products AS p ON o.product_id = p.product_id
WHERE u.status = 'active'

별칭 없이 작성하면 어떻게 될까요? 훨씬 복잡해집니다.

-- 별칭 미사용 (비추천)
SELECT
    customers.userid,
    customers.username,
    orders.order_id,
    orders.order_date,
    products.product_name
FROM customers
INNER JOIN orders ON customers.userid = orders.userid
INNER JOIN products ON orders.product_id = products.product_id
WHERE customers.status = 'active'

실전 예제 2 – 셀프 조인에서 별칭 필수 활용

같은 테이블을 두 번 참조할 때는 반드시 별칭을 사용해야 합니다.

-- 직원과 매니저 정보 조회
SELECT
    e.emp_name AS 직원명,
    m.emp_name AS 매니저명
FROM employees AS e
LEFT JOIN employees AS m ON e.manager_id = m.emp_id


컬럼 별칭 사용법 – 결과 가독성 높이기

컬럼 별칭은 SELECT 절에서 사용하며, 출력되는 컬럼명을 변경합니다.

기본 문법과 실전 활용

-- 기본 문법
SELECT
    userid AS 사용자ID,
    username AS 이름,
    email AS 이메일주소
FROM users

-- 계산 결과에 별칭 부여
SELECT
    price * quantity AS total_amount,
    (price * quantity * 0.1) AS tax
FROM order_items

한글 별칭 사용 시 주의사항

한글이나 공백이 포함된 별칭은 따옴표로 감싸야 합니다.

-- MySQL, MariaDB
SELECT
    userid AS `사용자 ID`,
    username AS `회원 이름`
FROM users

-- SQL Server, PostgreSQL
SELECT
    userid AS "사용자 ID",
    username AS "회원 이름"
FROM users


AS 별칭 사용 시 주의할 점 3가지

1. WHERE 절에서는 컬럼 별칭 사용 불가

-- 잘못된 예시
SELECT
    price * quantity AS total
FROM orders
WHERE total > 10000  -- 에러 발생!

-- 올바른 예시
SELECT
    price * quantity AS total
FROM orders
WHERE price * quantity > 10000

이유: SQL 실행 순서상 WHERE 절이 SELECT 절보다 먼저 실행되기 때문입니다.

2. HAVING 절과 ORDER BY 절에서는 사용 가능

SELECT
    category,
    SUM(sales) AS total_sales
FROM products
GROUP BY category
HAVING total_sales > 100000  -- 별칭 사용 가능
ORDER BY total_sales DESC    -- 별칭 사용 가능

3. 별칭은 의미 있게 작성하기

-- 나쁜 예: 의미 없는 별칭
SELECT a.col1, b.col2
FROM table1 AS a
JOIN table2 AS b

-- 좋은 예: 의미 있는 별칭
SELECT u.username, o.order_date
FROM users AS u
JOIN orders AS o


데이터베이스별 별칭 문법 차이점

대부분의 DBMS에서 AS 별칭 문법은 동일하지만, 세부적인 차이가 있습니다.

MySQL/MariaDB

  • 백틱(`)으로 예약어나 특수문자 감싸기
  • AS 키워드 생략 가능

PostgreSQL

  • 큰따옴표(“)로 대소문자 구분
  • 표준 SQL 문법 엄격히 준수

SQL Server

  • 대괄호([])로 식별자 감싸기 가능
  • TOP 절과 함께 사용 시 주의

Oracle

  • 별칭에 AS 키워드 사용 불가 (테이블 별칭 한정)
  • 컬럼 별칭은 AS 사용 가능


실무 팁 – 별칭 네이밍 규칙

협업 환경에서는 일관된 별칭 규칙이 중요합니다.

추천하는 네이밍 컨벤션:

  • 테이블 별칭은 2-3글자로 제한
  • 테이블명의 첫 글자들 조합 활용
  • 예: users → u, orders → o, products → p
-- 일관된 별칭 규칙 예시
SELECT
    u.userid,
    od.order_date,
    oi.quantity,
    p.product_name
FROM users AS u
INNER JOIN orders AS od ON u.userid = od.userid
INNER JOIN order_items AS oi ON od.order_id = oi.order_id
INNER JOIN products AS p ON oi.product_id = p.product_id

복잡한 쿼리 실전 예제 – 서브쿼리와 별칭

SELECT
    dept.dept_name,
    emp_stats.avg_salary,
    emp_stats.emp_count
FROM departments AS dept
INNER JOIN (
    SELECT
        department_id,
        AVG(salary) AS avg_salary,
        COUNT(*) AS emp_count
    FROM employees
    GROUP BY department_id
) AS emp_stats ON dept.dept_id = emp_stats.department_id
WHERE emp_stats.avg_salary > 5000000

서브쿼리에도 별칭을 부여하면 메인 쿼리에서 마치 일반 테이블처럼 사용할 수 있습니다.


마무리 – 오늘 배운 내용 정리

AS 별칭은 단순해 보이지만 쿼리 품질을 크게 좌우하는 핵심 기능입니다. 긴 테이블명을 짧게 줄이고, JOIN이 많은 복잡한 쿼리도 한눈에 이해할 수 있게 만들어주죠. 여러분의 쿼리에 AS 별칭을 적극 활용해보세요. 코드 가독성이 눈에 띄게 향상될 것입니다.

핵심 요약:

  • 테이블 별칭은 FROM, JOIN 절에서 선언
  • 컬럼 별칭은 SELECT 절에서 선언
  • WHERE 절에서는 컬럼 별칭 사용 불가
  • 의미 있고 일관된 별칭 사용이 협업의 핵심

궁금한 점이나 실무에서 겪은 별칭 관련 사례가 있다면 댓글로 공유해주세요!


참고 자료:

댓글 남기기