[MS-SQL] numeric , decimal TYPE에서의 정밀도, 스케일, length 의미

 

MS-SQL에서 numeric 또는 decimal 타입은 정밀도(precision), 스케일(scale), 그리고 때때로 length와 관련된 개념으로 구성됩니다. 각각의 의미를 명확히 정리하면 아래와 같습니다

 


✅ 1. Precision (정밀도)

  • 의미: 전체 숫자 자릿수 (소수점 포함 전체 자리 수)
  • 범위: 1 ~ 38
  • 예시:
    • numeric(5,2)이면, 전체 자릿수가 5 → 예: 123.45

✅ 2. Scale (스케일)

  • 의미: 소수점 이하 자릿수
  • 범위: 0 ~ precision 값 이하
  • 예시:
    • numeric(5,2)이면, 소수점 이하 2자리 → 최대 표현 값: 999.99

✅ 3. Length (길이) – 주의: length는 문자 타입에 주로 사용되며, numeric에는 정확한 의미로는 적용되지 않습니다.

  • 하지만 SSMS 같은 툴에서는 length를 저장 바이트 수로 보여주는 경우가 있어 혼동할 수 있습니다.

참고: precision에 따른 저장 바이트 수


Precision 범위 저장 바이트 수
1 ~ 9 5 bytes
10 ~ 19 9 bytes
20 ~ 28 13 bytes
29 ~ 38 17 bytes