MySQL에서 별칭(alias)은 SELECT * 구문과 함께 사용할 수 없습니다. 하지만 개별 컬럼에는 자유롭게 별칭을 지정할 수 있습니다. 기본 문법은 다음과 같습니다.
select anyaliasName.yourColumnName1 as anyaliasName1, anyaliasName.yourColumnName2 as anyaliasName2, anyaliasName.yourColumnName3 as anyaliasName3, anyaliasName.yourColumnName4 as anyaliasName4, . . . N from yourTableName as anyaliasName;
MySQL 별칭이란?
MySQL의 별칭(alias)은 테이블에 붙일 수 있는 임시 이름으로, 이를 통해 해당 테이블의 컬럼명에 손쉽게 접근할 수 있습니다. 주로 테이블 이름이 길거나 여러 테이블을 조인할 때 코드의 가독성을 높이기 위해 활용됩니다.
위 문법을 실제로 이해하기 위해 예제 테이블을 하나 만들어 보겠습니다.
1. 테이블 생성
테이블을 생성하는 쿼리는 다음과 같습니다.
mysql> create table TableAliasDemo -> ( -> Id int, -> Name varchar(100), -> Age int -> ); Query OK, 0 rows affected (0.46 sec)
2. 데이터 삽입
insert 명령어를 사용해 몇 개의 레코드를 추가합니다.
mysql> insert into TableAliasDemo values(1,'John',23); Query OK, 1 row affected (0.13 sec) mysql> insert into TableAliasDemo values(2,'Sam',24); Query OK, 1 row affected (0.23 sec) mysql> insert into TableAliasDemo values(3,'David',26); Query OK, 1 row affected (0.15 sec) mysql> insert into TableAliasDemo values(4,'Carol',20); Query OK, 1 row affected (0.19 sec)
3. 전체 레코드 조회
select 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from TableAliasDemo;
실행 결과는 다음과 같습니다.
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 1 | John | 23 | | 2 | Sam | 24 | | 3 | David | 26 | | 4 | Carol | 20 | +------+-------+------+ 4 rows in set (0.00 sec)
4. 테이블 및 컬럼에 별칭 적용하기
이제 테이블에 별칭을 지정하고, 각 컬럼에도 별도의 별칭을 부여해 보겠습니다. 쿼리는 다음과 같습니다.
mysql> select alias.Id as aliasForIdColumn, -> alias.Name as aliasForNameColumn, -> alias.Age as aliasForAgeColumn -> from TableAliasDemo as alias;
실행 결과는 아래와 같습니다. 원래 컬럼명(Id, Name, Age) 대신 지정한 별칭이 결과 집합의 헤더로 출력되는 것을 확인할 수 있습니다.
+------------------+--------------------+-------------------+ | aliasForIdColumn | aliasForNameColumn | aliasForAgeColumn | +------------------+--------------------+-------------------+ | 1 | John | 23 | | 2 | Sam | 24 | | 3 | David | 26 | | 4 | Carol | 20 | +------------------+--------------------+-------------------+ 4 rows in set (0.00 sec)
정리
핵심을 요약하면 다음과 같습니다.
SELECT *와일드카드에는 별칭을 직접 지정할 수 없습니다.- 별칭은
테이블명 AS 별칭형태로 테이블에 부여하고,별칭.컬럼명 AS 새로운이름형태로 각 컬럼에 적용합니다. - 별칭을 사용하면 결과 집합의 컬럼 제목을 원하는 이름으로 바꿀 수 있어 가독성이 크게 향상됩니다.
- 특히 여러 테이블을 조인하거나 서브쿼리를 사용할 때 별칭은 필수적인 도구입니다.