Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 열(컬럼) 정의를 변경하는 방법 완벽 가이드

MySQL에서 열(column)의 정의를 변경하려면 ALTER 명령어와 함께 MODIFY 또는 CHANGE 절을 사용하면 됩니다. 이번 글에서는 실제 예제를 통해 열 정의를 변경하는 과정을 단계별로 살펴보겠습니다.

1. 테스트용 테이블 생성하기

먼저 int 데이터 타입을 가진 id 열이 포함된 테이블을 생성합니다. 이후 이 열을 varchar 데이터 타입으로 변경해 보겠습니다.

mysql> create table ModifyColumnDemo
   -> (
   -> id int
   -> );
Query OK, 0 rows affected (0.52 sec)

테이블이 성공적으로 생성되었습니다.

2. 열 정의 변경 문법

열의 정의를 변경할 때 사용하는 기본 문법은 다음과 같습니다.

alter table 테이블이름 modify column 열이름 데이터타입;

MODIFY 절은 기존 열 이름은 그대로 유지하면서 데이터 타입이나 제약 조건만 변경할 때 사용됩니다. 반면 열 이름 자체까지 바꾸고 싶다면 CHANGE 절을 사용하면 됩니다.

3. MODIFY 절로 데이터 타입 변경하기

위 문법을 적용하여 id 열을 varchar(10) 타입으로, 그리고 NULL 값을 허용하지 않도록 변경해 보겠습니다.

mysql> alter table ModifyColumnDemo modify column id varchar(10) not null;
Query OK, 0 rows affected (1.52 sec)
Records: 0  Duplicates: 0  Warnings: 0

쿼리가 정상적으로 실행되어 열 정의가 변경되었습니다.

4. 변경 결과 확인하기

열이 새로운 데이터 타입으로 제대로 변경되었는지 확인하려면 DESC(DESCRIBE) 명령어를 사용합니다.

mysql> desc ModifyColumnDemo;

실행 결과는 다음과 같습니다.

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | varchar(10) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
1 row in set (0.15 sec)

출력 결과를 보면 id 열의 타입이 int에서 varchar(10)으로 성공적으로 변경되었고, Null 항목이 'NO'로 표시되어 NOT NULL 제약 조건도 함께 적용된 것을 확인할 수 있습니다.

정리

MySQL에서 열 정의를 변경하는 방법을 요약하면 다음과 같습니다.

  • ALTER TABLE ... MODIFY COLUMN: 열 이름은 유지한 채 데이터 타입이나 제약 조건만 변경
  • ALTER TABLE ... CHANGE COLUMN: 열 이름까지 함께 변경 가능
  • DESC 테이블명: 변경된 테이블 구조 확인

주의할 점은, 이미 데이터가 들어 있는 열의 타입을 변경할 경우 기존 데이터와 호환되지 않으면 오류가 발생하거나 데이터가 잘릴 수 있으므로, 변경 전에 반드시 데이터를 백업하는 것이 좋습니다.