Loading...
MySQL 9.5 Reference Manual 9.5의 13.1.3 Fixed-Point Types (Exact Value) - DECIMAL, NUMERIC의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
DECIMAL 및 NUMERIC 타입은 정확한 수치 데이터 값을 저장합니다. 이러한 타입은 특히 금전 데이터처럼 정확한 정밀도를 보존하는 것이 중요한 경우에 사용됩니다. MySQL에서 NUMERIC은 DECIMAL로 구현되므로, 아래의 DECIMAL에 대한 설명은 NUMERIC에도 동일하게 적용됩니다.
MySQL은 DECIMAL 값을 이진 형식으로 저장합니다. Section 14.25, “Precision Math”를 참조하십시오.
DECIMAL 컬럼 선언에서는 정밀도와 스케일을 지정할 수 있으며, 일반적으로 지정합니다. 예를 들면 다음과 같습니다:
1salary DECIMAL(5,2)
이 예에서 5는 정밀도이고 2는 스케일입니다. 정밀도는 값에 대해 저장되는 유효 자릿수의 개수를 나타내고, 스케일은 소수점 이하에 저장될 수 있는 자릿수의 개수를 나타냅니다.
표준 SQL에서는 DECIMAL(5,2)가 다섯 자리와 두 자리 소수를 가진 어떤 값도 저장할 수 있어야 하므로, 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 컬럼에 실제로 허용되는 범위는 그 컬럼에 대해 지정된 정밀도 또는 스케일에 의해 제한될 수 있습니다. 이와 같은 컬럼에 대해, 지정된 스케일이 허용하는 것보다 더 많은 자릿수가 소수점 이하에 포함된 값이 대입되면, 그 값은 해당 스케일로 변환됩니다. (정확한 동작은 운영 체제별로 다르지만, 일반적으로 허용되는 자릿수까지 잘라내는 효과를 가집니다.)
13.1.2 Integer Types (Exact Value) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
13.1.4 Floating-Point Types (Approximate Value) - FLOAT, DOUBLE