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

MySQL에서 ALTER TABLE 문으로 열(컬럼) 크기 변경하는 방법

MySQL에서 ALTER TABLE로 열 크기 변경하기

MySQL에서 이미 생성된 테이블의 열(컬럼) 크기를 변경하려면 ALTER TABLE 문과 MODIFY 절을 함께 사용하면 됩니다. 기본 문법은 다음과 같습니다.

ALTER TABLE 테이블명 MODIFY 열명 데이터타입(크기);

예제: Student 테이블

'Student'라는 테이블을 예로 들어 살펴보겠습니다. 먼저 DESCRIBE 명령으로 현재 테이블 구조를 확인합니다.

mysql> DESCRIBE Student;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Name   | varchar(20) | YES  |     | NULL    |       |
| RollNo | int(11)     | YES  |     | NULL    |       |
| Grade  | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)

위 결과 집합을 보면 'Name' 필드의 크기가 varchar(20), 즉 최대 20자로 선언되어 있는 것을 알 수 있습니다.

열 크기 늘리기

이제 'Name' 열의 크기를 20에서 50으로 늘리고 싶다고 가정해 보겠습니다. 다음 쿼리를 실행하면 됩니다.

mysql> ALTER TABLE Student MODIFY column Name Varchar(50);
Query OK, 3 rows affected (0.85 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> DESCRIBE Student;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Name   | varchar(50) | YES  |     | NULL    |       |
| RollNo | int(11)     | YES  |     | NULL    |       |
| Grade  | varchar(10) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)

결과 집합에서 확인할 수 있듯이 'Name' 열의 크기가 varchar(20)에서 varchar(50)으로 성공적으로 변경되었습니다. 기존에 저장된 데이터는 그대로 유지됩니다.

주의 사항

  • 열 크기를 줄일 때는 주의가 필요합니다. 기존 데이터가 새로 지정한 크기보다 길면 strict 모드에서는 오류가 발생하고, 그렇지 않으면 데이터가 잘릴 수 있습니다.
  • MODIFY 절은 열 이름을 그대로 유지하면서 데이터 타입과 크기만 변경합니다. 만약 열 이름까지 함께 바꾸고 싶다면 CHANGE 절을 사용하면 됩니다.
  • MySQL 8.0부터는 int(11)처럼 괄호 안의 표시 폭(display width)이 더 이상 사용되지 않으므로, 정수형은 단순히 INT로 선언하는 것이 권장됩니다.