MySQL에서는 ALTER TABLE 명령어를 사용하여 기존 테이블의 열 데이터 유형을 손쉽게 변경할 수 있습니다. 이 글에서는 실제 예제를 통해 데이터 유형을 변경하는 과정을 단계별로 살펴보겠습니다.
예제 테이블 확인하기
먼저 'Student'라는 테이블이 있다고 가정해 보겠습니다. 이 테이블의 'RollNo' 열은 현재 Integer(int) 타입으로 선언되어 있습니다. 아래 쿼리를 실행하면 테이블 구조를 확인할 수 있습니다.
mysql> DESCRIBE Student; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | Name | varchar(20) | YES | | NULL | | | RollNo | int(11) | YES | | NULL | | | Grade | varchar(50) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 3 rows in set (0.06 sec)
데이터 유형 변경하기
이제 'RollNo' 열의 데이터 유형을 int(11)에서 Varchar(10)으로 변경하고 싶다고 가정해 보겠습니다. 이 경우 다음과 같이 ALTER TABLE 명령어와 MODIFY 절을 함께 사용하면 됩니다.
mysql> Alter Table student Modify column RollNo Varchar(10); Query OK, 3 rows affected (0.25 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> Desc Student; +--------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------+------+-----+---------+-------+ | Name | varchar(20) | YES | | NULL | | | RollNo | varchar(10) | YES | | NULL | | | Grade | varchar(10) | YES | | NULL | | +--------+-------------+------+-----+---------+-------+ 3 rows in set (0.06 sec)
결과 확인
위 쿼리 결과를 보면 'RollNo' 열의 데이터 유형이 정수형(Integer)에서 문자열형(Varchar)으로 성공적으로 변경된 것을 확인할 수 있습니다.
주요 문법 정리
데이터 유형을 변경하는 기본 문법은 다음과 같습니다.
ALTER TABLE 테이블명 MODIFY COLUMN 열이름 새로운_데이터_유형;
참고: 데이터 유형을 변경할 때는 기존에 저장된 데이터가 새로운 유형과 호환되는지 반드시 확인해야 합니다. 예를 들어 숫자를 문자열로 변환하는 것은 일반적으로 안전하지만, 그 반대의 경우 변환할 수 없는 값이 있으면 오류가 발생하거나 데이터가 손실될 수 있습니다. 또한 대용량 테이블의 경우 ALTER TABLE 작업 중 테이블 잠금이 발생할 수 있으므로 서비스 운영 환경에서는 신중하게 진행하는 것이 좋습니다.