MySQL에서 기존 열의 데이터 타입 크기를 변경하려면 ALTER TABLE 명령어와 함께 MODIFY 절을 사용해야 합니다.
기본 문법
열의 크기를 변경하는 기본 문법은 다음과 같습니다.
ALTER TABLE 테이블이름 MODIFY COLUMN 열이름 varchar(100) NOT NULL;
예제 테이블 생성
위 문법을 실제로 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table syntaxOfAlterCommandDemo -> ( -> UserId int, -> UserName varchar(30), -> UserAge int, -> UserCityName varchar(50) -> ); Query OK, 0 rows affected (0.51 sec)
테이블 구조 확인
생성된 테이블의 구조를 확인해 보겠습니다. 확인 쿼리는 다음과 같습니다.
mysql> desc syntaxOfAlterCommandDemo;
실행 결과는 아래와 같습니다.
+--------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------+------+-----+---------+-------+ | UserId | int(11) | YES | | NULL | | | UserName | varchar(30) | YES | | NULL | | | UserAge | int(11) | YES | | NULL | | | UserCityName | varchar(50) | YES | | NULL | | +--------------+-------------+------+-----+---------+-------+ 4 rows in set (0.04 sec)
현재 UserName 열이 varchar(30)으로 설정되어 있는 것을 확인할 수 있습니다.
ALTER TABLE로 열 크기 변경하기
이제 ALTER TABLE 명령어를 사용하여 UserName 열을 varchar(30)에서 varchar(100)으로 변경해 보겠습니다. 변경 쿼리는 다음과 같습니다.
mysql> alter table syntaxOfAlterCommandDemo modify column UserName varchar(100) NOT NULL; Query OK, 0 rows affected (1.36 sec) Records: 0 Duplicates: 0 Warnings: 0
변경 결과 확인
변경이 정상적으로 적용되었는지 테이블 구조를 다시 한번 확인해 보겠습니다.
mysql> desc syntaxOfAlterCommandDemo;
실행 결과는 아래와 같습니다.
+--------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+-------+ | UserId | int(11) | YES | | NULL | | | UserName | varchar(100) | NO | | NULL | | | UserAge | int(11) | YES | | NULL | | | UserCityName | varchar(50) | YES | | NULL | | +--------------+--------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
위 출력 결과를 보면 UserName 열이 varchar(30)에서 varchar(100)으로 성공적으로 변경된 것을 확인할 수 있습니다. 또한 NOT NULL 옵션을 적용했기 때문에 Null 컬럼 값이 'NO'로 바뀐 것도 볼 수 있습니다.