MySQL에서 테이블에 새로운 열(컬럼)을 추가하려면 ALTER 명령어와 ADD COLUMN 절을 함께 사용합니다. 이 글에서는 먼저 Id와 Name 두 개의 열을 가진 테이블을 생성한 뒤, ALTER 명령어를 이용해 Age와 Address 열을 추가하는 전체 과정을 단계별로 살펴보겠습니다.
1단계: 테이블 생성하기
먼저 다음 쿼리를 실행하여 테이블을 생성합니다.
mysql> create table AddingColumnNameDemo -> ( -> Id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.65 sec)
2단계: 테이블 구조 확인하기
DESC 명령어를 사용하면 테이블의 구조를 손쉽게 확인할 수 있습니다.
mysql> desc AddingColumnNameDemo;
실행 결과는 다음과 같습니다.
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | Name | varchar(100) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
위 출력 결과에서 확인할 수 있듯이, 현재 테이블에는 Id와 Name 두 개의 열만 존재합니다.
3단계: ALTER TABLE로 열 추가하기
ALTER 명령어를 사용해 하나 이상의 열을 한 번에 추가하는 기본 문법은 다음과 같습니다.
alter table yourTableName add column yourColumnName1 dataType, add column yourColumnName2 dataType, . . add column yourColumnNameN dataType;
실제 적용 예시
위 문법을 실제 쿼리에 적용하면 테이블에 여러 개의 열을 동시에 추가할 수 있습니다.
mysql> alter table AddingColumnNameDemo -> add column Age int, -> add column Address varchar(300); Query OK, 0 rows affected (0.53 sec) Records: 0 Duplicates: 0 Warnings: 0
Age와 Address 두 개의 열이 성공적으로 추가되었습니다. 이제 DESC 명령어로 변경된 테이블 구조를 다시 확인해 보겠습니다.
mysql> DESC AddingColumnNameDemo;
실행 결과는 다음과 같습니다.
+---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | Name | varchar(100) | YES | | NULL | | | Age | int(11) | YES | | NULL | | | Address | varchar(300) | YES | | NULL | | +---------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
테이블에 원래 있던 2개의 열에 Age와 Address가 추가되어 총 4개의 열로 늘어난 것을 확인할 수 있습니다.
참고: 특정 위치에 열 추가하기
기본적으로 새로 추가된 열은 테이블의 맨 마지막에 배치됩니다. 만약 특정 위치에 열을 삽입하고 싶다면 FIRST 또는 AFTER 키워드를 활용할 수 있습니다.
alter table AddingColumnNameDemo add column Email varchar(100) after Name;
위 쿼리는 Name 열 바로 뒤에 Email 열을 추가합니다. 반면 FIRST 키워드를 사용하면 테이블의 첫 번째 위치에 열이 삽입됩니다. 이처럼 ALTER TABLE 명령어를 활용하면 기존 데이터를 유지한 상태에서 테이블 구조를 유연하게 변경할 수 있습니다.