SQL

SQL -AS 사용 가능한 곳

초코너무조코 2025. 1. 23. 11:17
728x90

목차

    a) SELECT 절

    • 컬럼 또는 계산된 값에 별칭을 지정할 때 사용.
    • 주로 결과 테이블의 가독성을 높이기 위해 사용됩니다.
    SELECT emp_name AS employee_name, salary AS monthly_salary
    FROM employees;
    

     

    AS 생략 가능
    SELECT emp_name employee_name, salary monthly_salary
    FROM employees;
    

    b) FROM 절 (테이블 별칭)

    • 테이블 이름에 별칭을 지정할 때 사용.
    • 별칭을 지정하면 테이블 이름 대신 별칭으로 참조할 수 있습니다.
    SELECT e.emp_name, e.salary
    FROM employees AS e;
    

     

    AS 생략 가능
    SELECT e.emp_name, e.salary
    FROM employees e;
    

    c) GROUP BY 절

    • SELECT 절의 별칭을 사용할 수 없습니다.
    • 대신 컬럼 이름 또는 컬럼의 순서를 사용해야 합니다.
    SELECT department_id AS dept_id, COUNT(*) AS total_employees
    FROM employees
    GROUP BY department_id;  -- dept_id 별칭 사용 불가
    

    d) HAVING 절

    • 별칭을 사용할 수 있습니다.
    • SELECT 절에서 지정한 별칭을 참조할 수 있습니다.
    SELECT department_id AS dept_id, COUNT(*) AS total_employees
    FROM employees
    GROUP BY department_id
    HAVING total_employees > 10;  -- 별칭 사용 가능
    

    e) ORDER BY 절

    • SELECT 절의 별칭 또는 컬럼 순서를 사용할 수 있습니다.
    SELECT emp_name AS employee_name, salary AS monthly_salary
    FROM employees
    ORDER BY monthly_salary DESC;  -- 별칭 사용 가능
    

     

     컬럼 순서로 참조 가능

    SELECT emp_name AS employee_name, salary AS monthly_salary
    FROM employees
    ORDER BY 2 DESC;  -- 두 번째 컬럼 기준 정렬
    

    2. AS를 사용할 수 없는 곳

    a) WHERE 절

    • AS로 지정된 별칭을 사용할 수 없습니다.
    • 이유: WHERE 절은 데이터 필터링을 수행하는 단계로, SQL 엔진이 아직 SELECT 절에서 별칭을 처리하기 전입니다.
    SELECT salary AS monthly_salary
    FROM employees
    WHERE monthly_salary > 5000;  -- 에러 발생
    

     

    해결 방법: 별칭 대신 컬럼 이름 또는 계산식을 직접 사용

    SELECT salary AS monthly_salary
    FROM employees
    WHERE salary > 5000;  -- 올바른 사용
    

    b) JOIN 절 (ON 조건에서 별칭 사용 불가)

    • ON 조건에서도 AS로 지정한 별칭은 사용할 수 없습니다.
    • 이유: ON 절은 FROM 절의 일부로 처리되며, 이 시점에서는 별칭이 아직 적용되지 않기 때문입니다.
    SELECT e.emp_name, d.department_name
    FROM employees AS e
    JOIN departments AS d
    ON e.dept_id = d.dept_id;  -- OK
    

    정리

    절 별칭(AS) 사용 가능 여부 비고

    SELECT 가능 컬럼 또는 계산식에 별칭 지정.
    FROM 가능 테이블 이름에 별칭 지정.
    WHERE 불가능 별칭 대신 원래 컬럼 이름 또는 계산식 사용 필요.
    GROUP BY 불가능 컬럼 이름 또는 컬럼의 순서로 참조.
    HAVING 가능 SELECT 절에서 지정한 별칭 참조 가능.
    ORDER BY 가능 SELECT 절의 별칭 또는 컬럼 순서 참조 가능.
    JOIN (ON) 불가능 AS로 지정한 별칭 대신 테이블 이름이나 원래 컬럼 이름 사용 필요.

    TIP: 별칭 사용 시 주의사항

    1. WHERE와 ON 절에서는 별칭을 사용할 수 없다.
      • 대신 원래 컬럼 이름이나 계산식을 직접 작성해야 함.
    2. GROUP BY에서는 별칭이 아닌 원래 컬럼을 사용해야 한다.

    별칭 사용은 가독성을 높이는 데 매우 유용하지만, SQL 실행 순서에 따라 제한이 있으니 주의하세요! 😊

     

    728x90