MySQL에서 DECIMAL 값 삽입하기
MySQL에 소수점 숫자를 저장하려면 테이블 컬럼을 정의할 때 DECIMAL(M, D) 데이터 타입을 사용해야 합니다. 여기서 M은 전체 자릿수(정수부 + 소수부), D는 소수점 이하 자릿수를 의미합니다.
기본 문법
yourColumnName DECIMAL(총 자릿수, 소수점 이하 자릿수);
예를 들어 DECIMAL(4,2)로 선언하면 전체 4자리 중 소수점 둘째 자리까지 저장할 수 있으므로, 최대 99.99까지 표현 가능합니다.
1단계: 테이블 생성
문법을 이해하기 위해 실제로 테이블을 하나 만들어 보겠습니다.
mysql> create table DecimalInsert
-> (
-> Id int,
-> Name varchar(100),
-> Amount DECIMAL(4,2)
-> );
Query OK, 0 rows affected (0.65 sec)2단계: DECIMAL 값 삽입
INSERT 명령어를 사용하여 소수점 값을 삽입합니다.
mysql> insert into DecimalInsert values(1,'John',12.4); Query OK, 1 row affected (0.15 sec) mysql> insert into DecimalInsert values(2,'Carol',12.34); Query OK, 1 row affected (0.16 sec) mysql> insert into DecimalInsert values(3,'Mike',1.424); Query OK, 1 row affected, 1 warning (0.17 sec)
주목할 점은 세 번째 INSERT 구문입니다. 1.424는 소수점 셋째 자리까지 있지만 컬럼이 DECIMAL(4,2)로 정의되어 있어 MySQL이 자동으로 반올림 처리하고 경고(warning)를 발생시킵니다.
3단계: 결과 확인
SELECT 문으로 저장된 모든 레코드를 조회합니다.
mysql> select *from DecimalInsert;
실행 결과는 다음과 같습니다.
+------+-------+--------+ | Id | Name | Amount | +------+-------+--------+ | 1 | John | 12.40 | | 2 | Carol | 12.34 | | 3 | Mike | 1.42 | +------+-------+--------+ 3 rows in set (0.00 sec)
결과 분석
- 12.4 → 12.40: 소수점 이하 자릿수가 부족하면 0으로 채워져 항상 지정된 자릿수 형식을 유지합니다.
- 12.34 → 12.34: 정의된 범위 내의 값은 그대로 저장됩니다.
- 1.424 → 1.42: 소수점 이하 자릿수를 초과하는 값은 반올림되어 저장되며, 이때 경고 메시지가 출력됩니다.
이처럼 DECIMAL 타입은 금액처럼 정확한 소수 계산이 필요한 데이터를 다룰 때 FLOAT나 DOUBLE보다 안전하게 사용할 수 있는 타입입니다.