별칭(SQL)

Alias (SQL)

별칭은 전부는 아니더라도 대부분의 관계형 데이터베이스 관리 시스템(RDBMS)이 지원하는 SQL의 기능이다.별칭은 데이터베이스 관리자뿐만 아니라 다른 데이터베이스 사용자에게도 쿼리에 필요한 코드의 양을 줄이고 쿼리를 이해하기 쉽게 만드는 기능을 제공한다.또한 앨리어싱은 데이터베이스 필드의 실명을 보호하기 위한 난독화 기법으로 사용할 수 있다.null

SQL에서 테이블과 열의 별칭을 지정할 수 있다.테이블 별칭은 상관 이름이라고도 한다.[1]프로그래머는 별칭을 사용하여 SELECT 쿼리 기간 동안 테이블이나 열에 다른 이름을 임시로 할당할 수 있다.별칭을 할당해도 실제로 열이나 테이블의 이름은 변경되지 않는다.이것은 종종 테이블이나 테이블의 열이 매우 길거나 복잡한 이름을 가질 때 유용하다.가명칭은 무엇이든 될 수 있지만 보통 짧게 유지된다.예를 들어, "price_information"이라는 이름의 테이블에 "pi"와 같은 테이블 별칭을 사용하는 것이 일반적일 수 있다.null

별칭의 일반적인 구문은SELECT * FROM table_name [AS] alias_name. AS 키워드는 완전히 선택 사항이며 일반적으로 가독성 목적으로 보관된다는 점에 유의하십시오.다음은 아래 쿼리가 참조할 몇 가지 샘플 데이터:

부서 테이블
부서아이디 부서 이름
31 판매의
33 공학
34 사무직
35 마케팅

테이블 별칭 사용:

 선택 D.부서 이름 From 부서 AS D 

이와 같은 질의도 작성할 수 있다(이번에 AS 조항이 생략됨 참고):null

 선택 D.부서 이름 From 부서 D 

열 별칭은 유사함:

 선택 d.부서아이드 AS 아이디, d.부서 이름 AS 이름 From 부서 d 

반환된 결과 집합에서 위에 표시된 데이터는 반환되며, 유일한 예외는 "부서"이다.ID는 "ID"로 표시되고, "DepartmentName"은 "이름"으로 표시된다.null

또한 하나의 테이블만 선택되고 쿼리가 테이블 조인을 사용하지 않는 경우 SELECT 문의 열 이름에서 테이블 이름 또는 테이블 별칭을 생략할 수 있다.다음과 같은 예를 들면 다음과 같다.

 선택 부서아이드 AS 아이디, 부서 이름 AS 이름 From 부서 d 

Postgres[2] 및 Presto와 같은 일부 시스템은 테이블 별칭과 함께 열 별칭을 지정할 수 있다.[3]예시

 선택 D.아이디 From 부서 AS D(아이디) 

이전과 동일한 결과를 산출할 수 있을 것이다.이 구문에서는 일부 열 이름에 대해 별칭을 생략하는 것이 허용된다.이 예에서는 DepartmentId에 대한 별칭이 제공되었지만 DepartmentName에 대해서는 생략되었다.지정되지 않은 별칭이 있는 열은 별칭이 지정되지 않은 상태로 남겨질 것이다.이 구문은 종종 VALUEST[4], UNNEST와 같이 유용한 표와 열 이름을 생성하지 않는 표현과 함께 사용된다.[5]예를 들어 다음과 같은 표현을 사용하여 실제 부서 테이블을 만들지 않고도 위의 SQL 문을 편리하게 테스트할 수 있다.

와 함께 부서(부서아이드, 부서 이름) AS (가치 (1, 'HR'), (2, 'IT')) 선택 부서아이드 AS 아이디, 부서 이름 AS 이름 From 부서 d; 

참조

  1. ^ ANSI 표준 SQL – 기초 문서 – 날짜: 2010-10-14
  2. ^ PostgreSQL: 설명서: 13: 7.2. 표 식
  3. ^ https://prestodb.io/docs/0.248/sql/select.html SELECT — Presto 0.248 설명서
  4. ^ https://prestodb.io/docs/0.248/sql/values.html#examples VALUES — Presto 0.248 설명서
  5. ^ https://prestodb.io/docs/0.248/sql/select.html#unnest SELECT — Presto 0.248 설명서