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

MySQL에서 DECIMAL 열의 자릿수를 늘리는 방법 – ALTER TABLE MODIFY COLUMN 완벽 가이드

MySQL에서 DECIMAL 열 자릿수 확장하기

MySQL에서 10진수(DECIMAL) 열에 더 많은 자릿수를 허용하도록 변경하려면 ALTER TABLE 문과 함께 MODIFY COLUMN 절을 사용하면 됩니다. 기본 문법은 다음과 같습니다.

ALTER TABLE yourTableName MODIFY COLUMN yourColumnName DECIMAL(yourIntValue,yourIntValue);

예제 테이블 생성

위 구문을 실제로 이해하기 위해 예제 테이블을 하나 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table allowDecimalWithMoreDigit
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Salary DECIMAL(3,2),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (0.64 sec)

테이블이 정상적으로 생성되었다면, DESC 명령으로 테이블 구조를 확인할 수 있습니다. 문법은 다음과 같습니다.

DESC yourTableName;

실제로 위 명령을 실행해 보겠습니다.

mysql> desc allowDecimalWithMoreDigit;

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

+--------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Salary | decimal(3,2) | YES | | NULL | |
+--------+--------------+------+-----+---------+----------------+
2 rows in set (0.18 sec)

출력 결과를 보면 Salary 열이 DECIMAL(3,2)로 정의되어 있는 것을 확인할 수 있습니다. 이제 ALTER 명령과 함께 MODIFY COLUMN을 사용해 이를 DECIMAL(10,4)로 변경해 보겠습니다.

mysql> alter table allowDecimalWithMoreDigit modify column Salary DECIMAL(10,4);
Query OK, 0 rows affected (2.46 sec)
Records: 0 Duplicates: 0 Warnings: 0

변경이 완료되면 다시 한번 테이블 구조를 확인합니다.

mysql> desc allowDecimalWithMoreDigit;

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

+--------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+
| Id | int(11) | NO | PRI | NULL | auto_increment |
| Salary | decimal(10,4) | YES | | NULL | |
+--------+---------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

출력 결과에서 확인할 수 있듯이, Salary 열의 데이터 타입이 DECIMAL(3,2)에서 DECIMAL(10,4)로 성공적으로 변경되었습니다. 이처럼 ALTER TABLE ... MODIFY COLUMN 구문을 사용하면 기존 데이터를 유지한 상태에서 열의 전체 자릿수와 소수점 이하 자릿수를 손쉽게 조정할 수 있습니다.

참고: DECIMAL(M, D)의 의미

DECIMAL(M, D)에서 M은 전체 자릿수(정밀도), D는 소수점 이하 자릿수(스케일)를 의미합니다. 예를 들어 DECIMAL(10,4)는 소수점 앞 6자리와 소수점 뒤 4자리를 저장할 수 있으므로, 급여처럼 큰 값과 정밀한 소수가 필요한 데이터에 적합합니다.