MySQL에서 ALTER TABLE 없이 이미 생성된 테이블에 새로운 열을 추가하고 싶다면, SELECT 문에서 리터럴 값과 별칭(Alias)을 활용하는 방법을 사용할 수 있습니다. 이 방법은 실제 테이블 구조를 변경하지 않으면서 조회 결과에만 가상의 열을 만들어 줍니다.
1. 테이블 생성
먼저 예제로 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(100),
-> Age int
-> );
Query OK, 0 rows affected (0.49 sec)
2. 데이터 삽입
INSERT 명령을 사용하여 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable(Name,Age) values('Robert',24);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable(Name,Age) values('Chris',22);
Query OK, 1 row affected (0.13 sec)
3. 전체 레코드 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
+----+--------+------+ | Id | Name | Age | +----+--------+------+ | 1 | Robert | 24 | | 2 | Chris | 22 | +----+--------+------+ 2 rows in set (0.00 sec)
4. SELECT로 새로운 열 추가하기
아래는 SELECT 문을 실행하면서 새로운 열을 함께 출력하는 쿼리입니다. 문자열 리터럴 'US'와 AS 키워드를 사용해 별칭을 지정하면, 마치 테이블에 원래부터 존재했던 열인 것처럼 결과에 표시됩니다.
mysql> select Id,Name,Age,'US' AS DefaultCountryName from DemoTable;
출력 결과
+----+--------+------+--------------------+ | Id | Name | Age | DefaultCountryName | +----+--------+------+--------------------+ | 1 | Robert | 24 | US | | 2 | Chris | 22 | US | +----+--------+------+--------------------+ 2 rows in set (0.00 sec)
참고: 이 방식은 실제 테이블에 물리적인 열을 추가하는 것이 아니라, 조회 결과에만 임시로 나타나는 가상 열을 만드는 것입니다. 테이블 구조 자체를 영구적으로 변경하려면 ALTER TABLE ... ADD COLUMN 문을 사용해야 합니다.