MySQL의 CHANGE 명령어는 테이블의 컬럼(열) 이름을 변경할 때 사용합니다. ALTER TABLE 문과 함께 쓰이며, 기존 컬럼의 이름뿐만 아니라 데이터 타입까지 한 번에 수정할 수 있다는 점이 특징입니다.
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)
현재 'Name'이라는 컬럼이 존재하는 것을 확인할 수 있습니다.
3. CHANGE 명령어로 컬럼 이름 변경하기
이제 CHANGE 명령어를 사용하여 'Name' 컬럼을 'StudentName'으로 변경해 보겠습니다. 기본 문법은 다음과 같습니다.
ALTER TABLE 테이블명 CHANGE 기존컬럼명 새컬럼명 데이터타입;
실제 적용 쿼리는 아래와 같습니다.
mysql> alter table DemoTable796 change Name StudentName varchar(100); Query OK, 0 rows affected (0.29 sec) Records: 0 Duplicates: 0 Warnings: 0
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'으로 변경된 것을 확인할 수 있습니다.
참고: CHANGE와 RENAME COLUMN의 차이
MySQL 8.0 이상에서는 이름만 변경할 경우 더 간단한 RENAME COLUMN 구문을 사용할 수도 있습니다.
ALTER TABLE DemoTable796 RENAME COLUMN Name TO StudentName;
반면 CHANGE는 컬럼 이름과 데이터 타입을 동시에 변경해야 할 때 유용하며, 모든 MySQL 버전에서 호환됩니다.