11.2.2 고정 소수점 형식 (정확한 숫자) - DECIMAL, NUMERIC
DECIMAL
및 NUMERIC
타입은 정확한 숫자 값을 저장합니다. 이러한 형태는 금전적 데이터 처리 등 정확한 정밀도를 유지하는 것이 중요한 경우에 사용됩니다. MySQL 그럼, NUMERIC
는 DECIMAL
로 구현되므로, DECIMAL
관한 다음 사항이 NUMERIC
에도 동일하게 적용됩니다.
MySQL 5.6은 DECIMAL
값을 바이너리 형식으로 저장합니다. 섹션 12.20 "정밀 계산" 을 참조하십시오.
DECIMAL
컬럼 선언, 정밀도 및 스케일은 예를 들어 다음과 같이 지정할 수 있습니다 (일반적으로 지정되어 있습니다).
salary DECIMAL (5,2)
이 예제에서는 5
정밀도로 2
가 스케일입니다. 정밀도는 그 값에 포함 된 유효 자릿수를 나타내며, 스케일은 소수점 이하에 나오는 자릿수를 나타냅니다.
표준 SQL에서는 DECIMAL(5,2)
는 소수 2 자리 합계 5 자리의 값을 포함 할 수 있어야하므로 salary
컬럼에 저장되는 값은 -999.99
에서 999.99
의 범위입니다.
표준 SQL에서는 구 DECIMAL(
은 M
)DECIMAL(
과 동일합니다. 마찬가지로, 구문 M
,0)DECIMAL
은 DECIMAL(
과 동일합니다. M
,0)M
의 값을 결정하기 위해 구현은 허용되어 있습니다. MySQL은 DECIMAL
구문의 이러한 변형 형식을 모두 지원합니다. M
의 기본값은 10입니다.
스케일이 0의 경우, DECIMAL
값은 소수점도 소수부도 포함되지 않습니다.
DECIMAL
의 최대 자리수는 65이지만 지정된 DECIMAL
컬럼의 실제 범위는 지정한 컬럼의 정밀도 또는 스케일에 의해 제한 될 수 있습니다. 지정된 스케일로 허용 된 것보다 더 많은 숫자가 소수점 이하의 값이 이러한 컬럼에 할당 된 경우, 값은 그 스케일로 변환됩니다. (정확한 동작은 운영 체제마다 다릅니다 만, 일반적으로는 효과가 허용되는 자리수에 잘립니다.)