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 컬럼의 실제 범위는 지정한 컬럼의 정밀도 또는 스케일에 의해 제한 될 수 있습니다. 지정된 스케일로 허용 된 것보다 더 많은 숫자가 소수점 이하의 값이 이러한 컬럼에 할당 된 경우, 값은 그 스케일로 변환됩니다. (정확한 동작은 운영 체제마다 다릅니다 만, 일반적으로는 효과가 허용되는 자리수에 잘립니다.)