MySQL 테이블에서 이미 존재하는 특정 열(column)의 이름을 변경하려면 ALTER 문과 함께 CHANGE 절을 사용하면 됩니다. 이 방법은 열의 이름뿐만 아니라 데이터 타입도 함께 지정해야 한다는 점을 기억해야 합니다.
기본 문법
ALTER TABLE table_name CHANGE old_column_name new_column_name datatype;
각 구성 요소의 의미는 다음과 같습니다.
- table_name: 열 이름을 변경하려는 테이블의 이름입니다.
- old_column_name: 현재 사용 중인 기존 열의 이름입니다.
- new_column_name: 기존 열에 새로 부여할 열의 이름입니다.
- datatype: 해당 열의 데이터 타입으로, CHANGE 문 사용 시 반드시 명시해야 합니다.
실제 예제
다음 예제에서는 'student_info' 테이블의 'id' 열 이름을 'studentid'로 변경하는 과정을 살펴보겠습니다.
먼저 변경 전 테이블의 상태를 확인합니다.
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 5 rows in set (0.02 sec)
이제 ALTER TABLE 문과 CHANGE 절을 사용하여 'id' 열의 이름을 'studentid'로 변경합니다.
mysql> ALTER TABLE Student_info CHANGE id studentid int; Query OK, 0 rows affected (0.22 sec) Records: 0 Duplicates: 0 Warnings: 0
변경 후 다시 테이블을 조회하면 결과를 확인할 수 있습니다.
mysql> Select * from Student_info; +-----------+---------+------------+------------+ | studentid | Name | Address | Subject | +-----------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +-----------+---------+------------+------------+ 5 rows in set (0.00 sec)
위 결과 집합에서 확인할 수 있듯이, 'id'라는 열 이름이 성공적으로 'studentid'로 변경되었습니다.
참고 사항
- CHANGE 문은 열 이름 변경 시 데이터 타입을 반드시 함께 작성해야 합니다. 기존 타입을 유지하려면 원래 타입을 그대로 입력하면 됩니다.
- MySQL 8.0 이상 버전에서는 데이터 타입 없이 이름만 변경할 수 있는
RENAME COLUMN문도 제공됩니다. 예:ALTER TABLE Student_info RENAME COLUMN id TO studentid;