MySQL에서 컬럼 이름 변경하기
MySQL에서 기존 테이블의 컬럼(열) 이름을 변경하려면 ALTER TABLE 문과 CHANGE 절을 함께 사용해야 합니다. 이 글에서는 실제 예제를 통해 단계별로 컬럼 이름을 변경하는 방법을 자세히 알아보겠습니다.
1단계: 테이블 생성
먼저 예제로 사용할 테이블을 생성합니다.
mysql> create table DemoTable796 (
StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name varchar(100),
StudentAge int
);
Query OK, 0 rows affected (0.56 sec)
2단계: 테이블 구조 확인
DESC 명령어로 현재 테이블의 구조를 확인합니다.
mysql> desc DemoTable796;
실행 결과는 다음과 같습니다.
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| Name | varchar(100) | YES | | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
3단계: 컬럼 이름 변경 쿼리 실행
다음은 Name 컬럼을 StudentName으로 변경하는 쿼리입니다.
mysql> alter table DemoTable796 change Name StudentName varchar(100);
Query OK, 0 rows affected (0.29 sec)
Records: 0 Duplicates: 0 Warnings: 0
주의: CHANGE 절을 사용할 때는 새 컬럼 이름뿐만 아니라 데이터 타입까지 반드시 함께 지정해야 합니다. 타입을 생략하면 오류가 발생합니다.
4단계: 변경 결과 확인
다시 테이블 구조를 조회하여 컬럼 이름이 정상적으로 변경되었는지 확인합니다.
mysql> desc DemoTable796;
실행 결과는 다음과 같습니다.
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| StudentId | int(11) | NO | PRI | NULL | auto_increment |
| StudentName | varchar(100) | YES | | NULL | |
| StudentAge | int(11) | YES | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
출력 결과를 보면 Name 컬럼이 StudentName으로 성공적으로 변경된 것을 확인할 수 있습니다.
참고: MySQL 8.0 이상에서는 RENAME COLUMN 사용 가능
MySQL 8.0부터는 데이터 타입을 다시 지정하지 않아도 되는 더 간편한 RENAME COLUMN 문법을 사용할 수 있습니다.
mysql> alter table DemoTable796 rename column Name to StudentName;
RENAME COLUMN은 이름만 변경하고 기존 정의(데이터 타입, 제약 조건 등)는 그대로 유지하므로, 타입 수정이 필요 없다면 이 방법이 더 안전하고 편리합니다.
정리
- MySQL에서 컬럼 이름을 변경하려면
ALTER TABLE ... CHANGE를 사용합니다. CHANGE사용 시에는 반드시 새 컬럼 이름과 데이터 타입을 모두 명시해야 합니다.- MySQL 8.0 이상이라면 데이터 타입 지정 없이 이름만 바꾸는
ALTER TABLE ... RENAME COLUMN도 활용할 수 있습니다.