본문 바로가기
[파이썬]/데이터베이스

[MariaDB] 별칭(식별자)

by sung min_Kim 2023. 11. 25.
별칭


식별자

 


· 별칭을 사용하는 이유 ?


 별칭을 사용하는 이유는 테이블의 이름이나 컬럼의 이름을 간결하게 줄여 편의성과 가독성을 향상하기 위함이다. 또한 중복되는 이름이 있을 경우 별칭을 사용하여 구분할 수 있다.

 이처럼 별칭은 SQL 쿼리를 작성하는 데 있어 매우 유용한 도구이다.

 별칭은 컬럼명과 테이블명 대신 사용할 수 있으며, 컬럼과 테이블의 이름 뒤에 'AS' 키워드를 붙여 별칭을 사용한다. 일반적으로 테이블명 뒤에는 'AS' 키워드를 생략하고 별칭을 사용한다.

 


· 별칭을 사용할 때 주의해야 할 사항



  • 유일성 : 동일한 쿼리 내에서 각 별칭을 유일해야 한다. 같은 이름의 별칭을 두 번 이상 중복하여 사용하게 될 경우 사용자의 혼란을 유발할 수 있기 때문이다.

  • 명확성 : 별칭은 해당 컬럼이나 테이블의 내용을 명확하게 설명할 수 있어야 한다. 너무 긴 이름을 사용하지 않도록 한다.

  • 별칭 사용 범위 : 별칭은 정의된 쿼리 블록 내에서만 유효하다. 즉, 별칭이 정의된 쿼리 외부에서 해당 별칭에 대해 접근하고자 한다면, SQL은 그 별칭을 인식하지 못한다.

  • 별칭 사용 시점 : 별칭은 Select(조회) 문에서 정의된 후, Order By(정렬) 절에서만 사용할 수 있다. 이는 SQL의 컴파일(해석) 처리 순서 때문이다. 이에 관련하여서는 맨 하단에 작성하였다.

 


· 예제 

 

<예제_별칭활용> 마일리지를 1000점 이상 보유한 회원별 총 마일리지를 조회하기

- 조회 컬럼 : 회원ID(mem_id), 성명(mem_name), 마일리지(mem_mileage)
- 정렬 : 총 마일리지를 기준으로 내림차순

별칭_사용하지 않은 결과

 '마일리지를 1000점 이상 보유한' 일반 조건(Where mem_meileag >= 1000)을 충족하는 회원별 총 마일리지를 조회하고자 하였다. 그룹 함수인 Sum()을 사용하여 그룹화 (Group By mem_id) 각 회원이 보유한 마일리지를 집계하고 하나의 결과값을 반환하였다.

 위의 SQL 쿼리문에서는 별칭을 사용하지 않았다. 그 결과 그룹 함수를 사용한 컬럼의 이름이 그대로 출력되는 것을 볼 수 있다. 이는 해당 컬럼에 다른 함수가 추가로 사용되가도 한다면 회원 마일리지(mem_mileage)를 나타내고 있는 필드인지도 파악하기 힘들 것이다. 이런 경우에 사용자는 이름을 간결하게 줄여주는 별칭을 사용하여 가독성을 향상시킬 수 있다.


별칭_사용 결과

 조회(Select)하고자 하는 'Sum(mem_mileage)' 뒤에 'AS' 키워드를 붙여 별칭(total_mileage
)을 사용함으로써, 사용자는 출력 결과를 보고 어떤 필드에 속하는 데이터인지 이해하기가 한결 쉬워진다.

 해당 컬럼에 별칭을 붙인 순간부터 모든 자원은 지정된 별칭에 속하게 된다. 따라서 정렬(Order By)할 때 지정한 별칭(total_mileage)을 사용함으로써 해당 별칭에 대해 정렬이 이루어지는 것을 볼 수 있다.

 참고로 Order By절에 Select문의 별칭을 사용할 수 있는 이유는 컴파일(해석) 처리 순서 때문이다.
 SQL은 맨 마지막에 Order By절을 해석하기 때문이다.

· 위 예시의 컴파일(해석) 처리 순서

 

  1. Select

  2. From 테이블

  3. Where절

  4. Group By절

  5. Select 컬럼들

  6. Order By절

'[파이썬] > 데이터베이스' 카테고리의 다른 글

[MariaDB] Case 문  (1) 2023.11.25
[MariaDB] 정렬 (Order By)  (0) 2023.11.25
[MariaDB] 연산자  (1) 2023.11.25
[MariaDB] 그룹 함수(Group By, Having) + 컴파일 순서  (0) 2023.11.24
[MariaDB] Null, Null 체크(+nvl함수)  (4) 2023.11.24