본문 바로가기

오라클

sql에서 가독성을 높이는 별칭 사용법(Column Aliases, Table Aliases)

목차

    쿼리가 복잡해 질수록 열 별칭은 가독성을 높여줍니다.

    또한 함수를 사용시 열 이름이 변경되는데 이때도 별칭을 지정하면 간략하게 조건절에서 참조할 수 있고 결과화면도 깔끔해 집니다.

    또한 동일한 열을 여러번 사용하는 경우도 간단한 이름을 지정해 두면 편리합니다.

    열 별칭(Column Aliases)은 출력을 더 읽기 쉽게 만들거나 코드를 단순화하기 위해 SQL 쿼리의 열에 할당된 대체 이름이라고 할 수 있습니다.

    sql 별칭 사용 예시
    sql 별칭 사용 예시


    1. 열 별칭 사용상 이점

     

    1-1. 가독성 향상

     열에 의미 있는 별칭을 지정하면 사용자와 동료 모두 쿼리를 더 쉽게 이해할 수 있습니다.


    1-2. 간소화된 코드

     별칭을 사용하면 특히 복잡한 테이블 이름과 열 이름을 처리할 때 SQL 코드를 단축하고 오류 발생 가능성을 줄일 수 있습니다.

     

    1-3. 향상된 유지 관리

     별칭은 열 이름이나 테이블 구조의 변경이 쿼리에 미치는 영향을 최소화하는 데 도움이 됩니다.

     

     


    2. 열 별칭 사용법

    Oracle에서는 AS 키워드를 사용하거나 단순히 열 이름 뒤에 공백으로 구분된 별칭을 제공하여 열에 별칭을 할당할 수 있습니다. 두 방법은 동일하며 더 편리한 방법을 선택할 수 있습니다.

     

    2-1. AS 키워드 사용

    SELECT column_name AS alias_name
    FROM table_name;

     

    2-2. AS 생략

    SELECT column_name alias_name
    FROM table_name;


    2-3. 열 별칭 예시

    - 별칭 할당

    SELECT first_name AS "First Name",
           last_name AS "Last Name",
           salary AS "Salary"
    FROM employees;

     

    - 계산에 별칭 사용

    SELECT first_name || ' ' || last_name AS "Full Name",
           salary * 12 AS "Annual Salary",
           salary * 1.1 AS "Salary with Raise"
    FROM employees;


    - JOIN에서 사용

    SELECT e.first_name || ' ' || e.last_name AS "Employee Name",
           d.name AS "Department Name"
    FROM employees e
    JOIN departments d ON e.department_id = d.department_id;

     

     

     


    3. 열 별칭 사용시 주의사항

    Oracle에서 열 별칭을 사용할 때 유의해야 할 몇 가지 중요한 사항이 있습니다. 이러한 미묘한 차이를 이해하면 잠재적인 문제를 피하고 효율적이고 읽기 쉬운 SQL 쿼리를 작성하는 데 도움이 됩니다. 다음은 Oracle에서 열 별칭으로 작업할 때 고려해야 할 몇 가지 핵심 사항입니다.

     

    3-1. 대소문자 구분 및 특수 문자

    기본적으로 Oracle은 따옴표가 없는 식별자(별칭 포함)를 대문자로 변환합니다. 별칭에 대소문자 혼합 또는 특수 문자를 사용하려면 큰따옴표로 묶어야 합니다. 

    SELECT first_name "First Name", last_name "Last Name"
    FROM employees;


    이 예에서 "이름"과 "성"은 대소문자를 구분하며 공백을 포함합니다. 큰따옴표가 없으면 Oracle은 큰따옴표를 대문자로 변환하고 공백을 제거합니다.

     

    3-2. 별칭 범위 및 용도

    열 별칭은 SELECT 절과 쿼리의 최종 출력에서만 사용할 수 있습니다. WHERE, GROUP BY 또는 HAVING과 같은 동일한 쿼리의 다른 절에서 사용할 수 없습니다. 대신 원래 열 이름이나 테이블 별칭을 사용해야 합니다. 예를 들어:

    SELECT first_name || ' ' || last_name AS full_name, salary
    FROM employees
    WHERE salary > 5000 -- You can't use 'full_name' here
    ORDER BY salary DESC;

     

    3-3. 고유한 별칭

    SELECT 절의 각 별칭이 고유한지 확인합니다. 중복된 별칭 이름을 사용하면 모호하거나 예기치 않은 쿼리 결과가 발생할 수 있습니다. 예를 들어 다음 쿼리는 오류를 생성합니다.

    SELECT first_name AS name, last_name AS name
    FROM employees; -- Error: Duplicate alias name

     

    3-4. 테이블 별칭 사용

    여러 테이블이 포함된 복잡한 쿼리로 작업할 때 테이블 별칭을 사용하면 코드를 단순화하고 더 읽기 쉽게 만들 수 있습니다. 테이블 별칭은 구별해야 하는 유사한 열 이름을 가진 테이블이 있을 때 특히 유용합니다. 예를 들어:

    SELECT e.first_name AS "Employee First Name", 
           m.first_name AS "Manager First Name"
    FROM employees e
    JOIN employees m ON e.manager_id = m.employee_id;


    이 예에서는 테이블 별칭 'e' 및 'm'을 사용하여 직원과 관리자를 구분하여 모호함 없이 두 이름 모두에 대해 이름을 선택할 수 있도록 했습니다.

     

    3-5. 함수와 표현식을 별칭으로 결합

    기본 제공 함수 또는 식과 함께 열 별칭을 사용하여 쿼리를 더 읽기 쉽고 유지 관리하기 쉽게 만들 수 있습니다. 

     

    SELECT TRUNC(salary / 1000) * 1000 AS "Rounded Salary", 
           UPPER(first_name) AS "Uppercase First Name"
    FROM employees;

     

    이 예에서는 TRUNC 및 UPPER 함수를 사용하여 급여를 가장 가까운 천 단위로 반올림하고 이름을 대문자로 각각 변환했습니다. 별칭을 사용하여 쿼리 결과에서 이러한 조작의 목적을 명확하게 나타냅니다.