MySQL에서 기존 테이블의 열(column)을 수정할 때는 CHANGE 키워드를 사용할 수 있습니다. CHANGE 키워드의 가장 큰 장점은 열의 이름과 정의(데이터 타입, 크기 등)를 한 번에 모두 변경할 수 있다는 점입니다. 반면 MODIFY 키워드는 열 이름을 바꿀 수 없고 정의만 변경 가능합니다.
단, CHANGE 키워드를 사용한 ALTER TABLE 구문은 MODIFY를 사용할 때와 문법이 조금 다르니 주의해야 합니다.
CHANGE 키워드 기본 문법
ALTER TABLE table_name CHANGE old_columnname1 new_columnname1 datatype, CHANGE old_columnname2 new_columnname2 datatype, ... CHANGE old_columnnameN new_columnnameN datatype;
예제 1: 열 이름과 크기 동시에 변경하기
아래 예제에서는 ALTER 명령어에 CHANGE 키워드를 활용하여 Student 테이블의 'RollNo' 열을 'Id'로, 'City' 열을 'Place'로 이름을 바꾸면서 각각 int와 Varchar(10) 타입으로 정의를 함께 수정했습니다.
mysql> ALTER TABLE Student CHANGE Rollno Id int, CHANGE City Place Varchar(10); Query OK, 5 rows affected (0.40 sec) Records: 5 Duplicates: 0 Warnings: 0
예제 2: 열 이름은 그대로 두고 크기만 변경하기
열의 이름은 유지한 채 크기(데이터 타입 정의)만 변경하고 싶다면, CHANGE 키워드 뒤에 기존 열 이름을 두 번 연속해서 작성하고 새로운 크기를 지정하면 됩니다.
mysql> ALTER TABLE Student CHANGE Email Email Varchar(30); Query OK, 5 rows affected (0.33 sec) Records: 5 Duplicates: 0 Warnings: 0
MODIFY와 CHANGE의 차이점 정리
- MODIFY: 열 이름은 변경할 수 없으며, 데이터 타입이나 크기 등 정의만 수정할 때 사용합니다.
- CHANGE: 열 이름과 정의를 모두 변경할 수 있으며, 이름을 유지하려면 기존 이름을 두 번 작성하면 됩니다.
따라서 단순히 열의 속성만 바꾸고자 한다면 MODIFY가 더 간결하고, 열 이름까지 변경해야 하는 상황이라면 CHANGE를 사용하는 것이 적합합니다.