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

MySQL에서 컬럼 타입을 INT에서 DOUBLE로 변경하는 방법

MySQL에서 컬럼 타입을 INT에서 DOUBLE로 변경하는 방법

MySQL에서 기존 테이블의 컬럼 데이터 타입을 int에서 double로 변경하려면 ALTER TABLE 명령어와 함께 MODIFY COLUMN 절을 사용하면 됩니다. 이 글에서는 실제 예제를 통해 변경 과정을 단계별로 살펴보겠습니다.

기본 문법

NULL 값을 허용하지 않으려면 다음과 같이 NOT NULL 제약 조건을 함께 지정합니다.

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName DOUBLE NOT NULL;

반대로 NULL 값을 허용하고 싶다면 위 구문에서 NOT NULL 부분만 제거하면 됩니다.

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName DOUBLE;

예제 테이블 생성

동작 과정을 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다. 아래 쿼리를 실행합니다.

mysql> create table IntToDoubleDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(10),
-> CylinderVolume int,
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.63 sec)

테이블 구조 확인

DESC 명령어를 사용하면 테이블의 컬럼 정보를 확인할 수 있습니다. 기본 문법은 다음과 같습니다.

DESC yourTableName;

생성한 테이블에 직접 적용해 보겠습니다.

mysql> desc IntToDoubleDemo;

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

+----------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Name | varchar(10) | YES | | NULL | |
| CylinderVolume | int(11) | YES | | NULL | |
+----------------+-------------+------+-----+---------+----------------+
3 rows in set (0.18 sec)

출력 결과를 보면 'CylinderVolume' 컬럼이 현재 int 타입으로 정의되어 있는 것을 확인할 수 있습니다. 이제 이 컬럼을 double 타입으로 변경해 보겠습니다.

INT에서 DOUBLE로 타입 변경하기

아래 쿼리를 실행하여 CylinderVolume 컬럼의 타입을 double로 변경합니다.

mysql> alter table IntToDoubleDemo MODIFY COLUMN CylinderVolume double NOT NULL;
Query OK, 0 rows affected (2.79 sec)
Records: 0 Duplicates: 0 Warnings: 0

변경 결과 확인

변경이 정상적으로 적용되었는지 다시 한번 테이블 구조를 조회해 봅니다.

mysql> desc IntToDoubleDemo\G

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

*************************** 1. row ***************************
Field: Id
Type: int(11)
Null: NO
Key: PRI
Default: NULL
Extra: auto_increment
*************************** 2. row ***************************
Field: Name
Type: varchar(10)
Null: YES
Key:
Default: NULL
Extra:
*************************** 3. row ***************************
Field: CylinderVolume
Type: double
Null: NO
Key:
Default: NULL
Extra:
3 rows in set (0.00 sec)

결과에서 확인할 수 있듯이 CylinderVolume 컬럼의 Type이 int(11)에서 double로 성공적으로 변경되었습니다. 이처럼 ALTER TABLE ... MODIFY COLUMN 구문을 활용하면 기존 테이블의 컬럼 데이터 타입을 간단하게 변경할 수 있습니다. 참고로 컬럼에 이미 저장된 데이터가 있는 경우에도 타입 변환이 가능하지만, 데이터 손실 여부를 미리 검토한 후 작업하는 것이 안전합니다.