Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 쿼리에서 존재하지 않는 여러 개의 열을 한 번에 추가하는 방법

MySQL에서 실제 테이블에는 존재하지 않는 열을 SELECT 쿼리 결과에 추가해야 하는 경우가 종종 있습니다. 이때 AS 키워드(별칭)를 활용하면 별도의 테이블 구조 변경 없이 가상의 열을 손쉽게 만들 수 있으며, 여러 개의 열도 동시에 추가할 수 있습니다.

테이블 생성하기

먼저 예제에 사용할 테이블을 생성하겠습니다. 아래 쿼리로 'ColumnDoesNotExists'라는 이름의 테이블을 만듭니다.

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 키워드를 사용하여 별칭을 지정하면 됩니다.

mysql> select UserId,UserName,23 AS Age from ColumnDoesNotExists;

모든 행에 동일한 값 23을 가진 'Age' 열이 새롭게 나타나는 것을 확인할 수 있습니다.

+--------+----------+-----+
| 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)

존재하지 않는 여러 열을 동시에 추가하기

여러 개의 가상 열을 한 번에 추가하는 방법은 간단합니다. 각 값마다 AS 키워드를 반복해서 사용하고 쉼표로 구분하면 됩니다. 아래 예제에서는 'Marks'와 'CountryName'이라는 두 개의 열을 동시에 추가합니다.

mysql> select UserId,UserName,23 AS Age,99 AS Marks,'UK' AS CountryName from ColumnDoesNotExists;

실행 결과를 보면 숫자형 값뿐만 아니라 문자열 값('UK')도 가상 열로 추가할 수 있다는 점을 알 수 있습니다.

+--------+----------+-----+-------+-------------+
| UserId | UserName | Age | Marks | CountryName |
+--------+----------+-----+-------+-------------+
| 100 | Larry | 23 | 99 | UK |
| 101 | Sam | 23 | 99 | UK |
| 102 | Mike | 23 | 99 | UK |
| 103 | David | 23 | 99 | UK |
| 104 | Robert | 23 | 99 | UK |
| 105 | Maxwell | 23 | 99 | UK |
| 106 | Bob | 23 | 99 | UK |
| 107 | John | 23 | 99 | UK |
| 108 | James | 23 | 99 | UK |
+--------+----------+-----+-------+-------------+
9 rows in set (0.00 sec)

정리

MySQL에서 테이블에 존재하지 않는 열을 쿼리 결과에 추가하는 핵심 원리는 다음과 같습니다.

  • 추가하고자 하는 값 뒤에 AS 키워드를 붙여 열 이름(별칭)을 지정합니다.
  • 숫자, 문자열 등 다양한 데이터 타입의 값을 가상 열로 사용할 수 있습니다.
  • 여러 개의 열을 추가할 때는 각각 AS 키워드를 사용하고 쉼표(,)로 구분합니다.

이 기법은 테이블 구조를 변경(ALTER TABLE)하지 않고도 조회 결과에 고정값이나 기본값을 포함시켜야 할 때 매우 유용하게 활용됩니다.