• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 1. 함수와 연산자 참조
    2. 식 평가 형식 변환
    3. 연산자
    4. 제어 흐름 함수
    5. 문자열 함수
    6. 수치 함수와 연산자
    7. 날짜 및 시간 함수
    8. MySQL에서 사용되는 달력
    9. Full-Text 검색 기능
    10. 캐스트 함수와 연산자
    11. XML 함수
    12. 비트 함수
    13. 암호화 함수와 압축 함수
    14. 정보 함수
    15. 공간 분석 함수
    16. 글로벌 트랜잭션 ID와 함께 사용되는 함수
    17. MySQL Enterprise Encryption 기능
    18. 기타 함수
    19. GROUP BY 절에서 사용되는 함수와 수식
    20. 정밀 계산
    1. 숫자 형태
    2. DECIMAL 데이터 유형의 특성
    3. 식의 처리
    4. 둥근 동작
    5. 정밀 계산의 예
  • 13. SQL 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

12.20.2 DECIMAL 데이터 유형의 특성

이 섹션에서는 MySQL 5.6에서 DECIMAL 데이터 유형 (및 동의어)의 특성에 대해 특히 다음 항목에주의를 기울이면서 설명합니다.

  • 최대 자리수

  • 저장 포맷

  • 스토리지 요구 사항

  • DECIMAL 컬럼의 상한에 비표준 MySQL 확장.

이 섹션 전체에서 이전 버전 (5.0.3 이전)의 MySQL을 위해 작성된 응용 프로그램과의 비 호환성 가능성이 기재되어 있습니다.

DECIMAL 컬럼 선언 구문은 DECIMAL( M , D ) 입니다. MySQL 5.6에서 인수 값의 범위는 다음과 같습니다.

  • M 은 최대 자릿수 (정밀도)입니다. 그 범위는 1에서 65까지입니다. (이전 버전의 MySQL에서는 1에서 254까지의 범위가 허용되었습니다.)

  • D 는 소수점 이하 자릿수 (스케일)입니다. 그 범위는 0에서 30까지이고 M 보다 클 수 없습니다.

M 65의 최대 값 인 경우는 DECIMAL 값에 대한 계산이 65 자리까지 정확하다는 것을 나타냅니다. 이 65 자리 정도의 제한은 엄격 값 숫자 리터럴에도 적용되기 때문에 이러한 리터럴의 최대 범위는 이전과는 다릅니다. (이전 버전의 MySQL에서는 10 진수의 최대 자리수는 254이었습니다. 그러나 계산은 부동 소수점을 사용하여 실행 된 위해 엄격한 값이 아닌 근사치였습니다.)

MySQL 5.6에서 DECIMAL 컬럼 값은 9 자리의 10 진수가 4 바이트로 압축 된 바이너리 형식을 사용하여 저장됩니다. 각 값의 정수 부분과 소수 부분에 대한 스토리지 요구 사항은 개별적으로 결정됩니다. 9 자리의 반복마다 4 바이트가 필요하며, 나머지 자리수가있을 경우 4 바이트의 일부가 필요합니다. 나머지 자릿수에 필요한 스토리지는 다음 표에서 지정됩니다.

나머지 자릿수 바이트 수
0 0
1-2 1
3-4 2
5-6 3
7-9 4

예를 들어, DECIMAL(18,9) 컬럼은 소수점 양쪽에 9 자리 있으므로 정수 부분과 소수 부분의 각각 4 바이트가 필요합니다. DECIMAL(20,6) 컬럼은 정수 부분에 14 자리, 소수 6 자리입니다. 정수부의 자리수는 그 중 9 자리로 4 바이트 나머지 5 자리에 3 바이트가 필요합니다. 소수 6 자리는 3 바이트가 필요합니다.

일부 이전 버전의 MySQL과는 달리, MySQL 5.6에서 DECIMAL 컬럼은 선행 + 문자 나 - 문자 또는 선행 0 의 숫자가 저장되지 않습니다. DECIMAL(5,1) 컬럼에 +0003.1 를 삽입하면 그것은 3.1 으로 저장됩니다. 음수의 경우 리터럴 - 문자는 저장되지 않습니다. 이전 동작에 의존하는 응용 프로그램이 변경 사항이 반영되도록 변경해야합니다.

MySQL 5.6에서 DECIMAL 컬럼은 컬럼 정의에 의해 암묵적으로 지정된 범위를 넘는 값이 허용되지 않습니다. 예를 들어, DECIMAL(3,0) 컬럼은 -999 에서 999 까지의 범위를 지원합니다. DECIMAL( M , D ) 컬럼은 소수점 왼쪽에 허용되는 것은 많아도 M - D 자리입니다. 이것은 + 기호 대신 추가 자릿수의 저장이 허용 된 이전 버전의 MySQL에 의존하는 응용 프로그램과 호환이 없습니다.

SQL 표준은 NUMERIC( M , D ) 의 정밀도가 정확히 M 자리 여야합니다. DECIMAL( M , D ) 의 경우,이 표준은 적어도 M 자리수의 정밀도가 필요하지만, 그것 이상의 정밀도가 허용됩니다. MySQL은 DECIMAL( M , D ) 과 NUMERIC( M , D ) 은 같고, 모두 정확하게 M 자리수의 정밀도를 가지고 있습니다.

DECIMAL 값의 내부 형식의 완전한 설명은 MySQL 소스 배포판의 파일 strings/decimal.c 를 참조하십시오. 이 형식은 decimal2bin() 함수 (예를 사용하여) 설명되어 있습니다.

DECIMAL 데이터 유형의 이전 처리에 의존하는 응용 프로그램의 이식의 자세한 내용은 "MySQL 5.0 참조 설명서"를 참조하십시오.

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved