MySQL에서 SELECT 쿼리 결과에 실제 테이블에는 존재하지 않는 열(컬럼)을 추가하고 싶다면 AS 키워드를 활용하면 됩니다. 이 방법은 특정 고정값이나 계산된 값을 새로운 컬럼 이름으로 출력할 때 매우 유용합니다.
기본 문법
SELECT yourColumnName1, yourColumnName2, ....N, yourValue AS yourColumnName, ....N FROM yourTableName;
위 문법에서 yourValue AS yourColumnName 부분이 핵심입니다. 원하는 값을 지정하고 AS 뒤에 새로운 컬럼 이름을 붙이면, 해당 값이 마치 실제 존재하는 컬럼처럼 조회됩니다.
예제 테이블 생성
문법을 제대로 이해하기 위해 먼저 예제용 테이블을 만들어 보겠습니다. 아래 쿼리로 테이블을 생성합니다.
mysql> create table ColumnDoesNotExists
-> (
-> UserId int,
-> UserName varchar(20)
-> );
Query OK, 0 rows affected (0.67 sec)데이터 삽입
이제 INSERT 명령어를 사용해 테이블에 샘플 데이터를 입력합니다.
mysql> insert into ColumnDoesNotExists(UserId,UserName) values(100,'Larry'); Query OK, 1 row affected (0.14 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(101,'Sam'); Query OK, 1 row affected (0.22 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(102,'Mike'); Query OK, 1 row affected (0.15 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(103,'David'); Query OK, 1 row affected (0.15 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(104,'Robert'); Query OK, 1 row affected (0.10 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(105,'Maxwell'); Query OK, 1 row affected (0.20 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(106,'Bob'); Query OK, 1 row affected (0.17 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(107,'John'); Query OK, 1 row affected (0.17 sec) mysql> insert into ColumnDoesNotExists(UserId,UserName) values(108,'James'); Query OK, 1 row affected (0.18 sec)
저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from ColumnDoesNotExists;
출력 결과
+--------+----------+ | UserId | UserName | +--------+----------+ | 100 | Larry | | 101 | Sam | | 102 | Mike | | 103 | David | | 104 | Robert | | 105 | Maxwell | | 106 | Bob | | 107 | John | | 108 | James | +--------+----------+ 9 rows in set (0.00 sec)
존재하지 않는 열 추가하기
이제 본격적으로 테이블에 존재하지 않는 'Age'라는 컬럼을 쿼리 결과에 추가해 보겠습니다. 값 23을 AS Age로 지정하는 방식입니다.
mysql> select UserId,UserName,23 AS Age from ColumnDoesNotExists;
출력 결과
+--------+----------+-----+ | UserId | UserName | Age | +--------+----------+-----+ | 100 | Larry | 23 | | 101 | Sam | 23 | | 102 | Mike | 23 | | 103 | David | 23 | | 104 | Robert | 23 | | 105 | Maxwell | 23 | | 106 | Bob | 23 | | 107 | John | 23 | | 108 | James | 23 | +--------+----------+-----+ 9 rows in set (0.00 sec)
실행 결과를 보면 원래 테이블에는 없던 'Age' 컬럼이 새롭게 추가되었고, 모든 행에 값 23이 일괄적으로 표시된 것을 확인할 수 있습니다. 이처럼 AS 키워드를 사용하면 테이블 구조를 변경하지 않고도 쿼리 결과에 임시 컬럼을 손쉽게 추가할 수 있습니다.