MySQL에서 기존 열의 이름을 바꾸려면 ALTER TABLE 문과 함께 CHANGE 절을 사용해야 합니다. 이 글에서는 예제 테이블을 직접 만들어 보고, StudentName 열을 FirstName으로 변경하는 전체 과정을 단계별로 살펴보겠습니다.
1단계: 예제 테이블 생성
먼저 다음과 같이 테스트용 테이블을 생성합니다.
mysql> create table DemoTable -> ( -> StudentName varchar(100), -> Age int -> ); Query OK, 0 rows affected (0.84 sec)
2단계: 현재 테이블 구조 확인
DESC 명령으로 생성된 테이블의 구조를 확인해 보겠습니다.
mysql> desc DemoTable;
출력 결과
+----------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------------+--------------+------+-----+---------+-------+ | StudentName | varchar(100) | YES | | NULL | | | Age | int(11) | YES | | NULL | | +----------------+--------------+------+-----+---------+-------+ 2 rows in set (0.25 sec)
3단계: ALTER TABLE과 CHANGE로 열 이름 변경
다음은 ALTER TABLE 문에 CHANGE 절을 적용한 쿼리입니다. 이 예제에서는 열 이름 변경과 동시에 새로운 열 두 개(Id, CountryName)도 함께 추가하고 있습니다.
mysql> alter table DemoTable -> add column Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> add column CountryName varchar(100) after Age, -> change column StudentName FirstName varchar(200); Query OK, 0 rows affected (1.51 sec) Records: 0 Duplicates: 0 Warnings: 0
CHANGE 절의 기본 문법은 다음과 같습니다.
ALTER TABLE 테이블명 CHANGE 기존열이름 새열이름 데이터타입;
주의할 점은, 열 이름만 바꾸고 싶은 경우라도 데이터 타입을 반드시 함께 명시해야 한다는 것입니다. 위 예제에서는 기존 varchar(100)이었던 열을 varchar(200)으로 확장하면서 이름도 함께 변경했습니다.
4단계: 변경된 테이블 구조 확인
변경이 완료되었으므로 다시 한번 테이블 구조를 확인해 보겠습니다.
mysql> desc DemoTable;
출력 결과
+-------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+----------------+ | FirstName | varchar(200) | YES | | NULL | | | Age | int(11) | YES | | NULL | | | CountryName | varchar(100) | YES | | NULL | | | Id | int(11) | NO | PRI | NULL | auto_increment | +-------------+--------------+------+-----+---------+----------------+ 4 rows in set (0.00 sec)
정리
실행 결과를 보면 StudentName 열이 성공적으로 FirstName(varchar(200))으로 변경되었고, Age 열 뒤에 CountryName 열이 추가되었으며, 자동 증가(AUTO_INCREMENT) 기본키인 Id 열도 함께 생성된 것을 확인할 수 있습니다.
참고로 MySQL 8.0 이상 버전에서는 RENAME COLUMN 구문을 사용하면 데이터 타입을 명시하지 않고도 열 이름만 간단하게 변경할 수 있으므로, 단순히 이름만 바꾸는 경우라면 이 방법이 더 편리합니다.