Database/Mysql

[Real MySQL] 15-2. 데이터 타입: 숫자

noahkim_ 2023. 11. 26. 15:20

백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.

 

1. 정확도

참값
  • 정확히 그 값을 그대로 유지하는 것
  • INTEGER, DECIMAL

 

근삿값 (부동소수점)
  • 저장한 값과 조회된 값이 최대한 비슷하게 관리되는 값
  • FLOAT, DOUBLE

 

2. 포맷

이진 표기법
  • 숫자를 2진수로 변환해 저장
  • INTEGER, FLOAT, DOUBLE

 

십진 표기법
  • 숫자의 각 자릿값을 4비트 또는 1바이트로 표현
  • DECIMAL

 

3. 정수

  저장공간 최솟값 최댓값
TINYINT 1 -128 127
SMALLINT 2 -32768 32767
MEDIUMINT 3 -8388608 8388607
INT 4 -2147483648 2147483647
BIGINT 8 -263 262
  • 값의 범위만 다름

 

4. 부동 소수점

  • 소수점의 위치가 고정적이지 않음
  • 큰 수나 작은 수를 효율적으로 표현할 수 있음
  • 단, 정확도가 떨어질 수 있음

 

FLOAT

  • 정밀도: 7자리 (4바이트)

 

DOUBLE

  • 정밀도: 16자리 (8바이트)

 

5. 고정 소수점

  • 소수점 위치가 고정된 수
  • 고정된 소수점까지 정확한 표현 가능

 

DECIMAL

  • 숫자 하나를 표현하는데 4비트를 사용합니다.

 

주의사항
  • 괄호로 정밀도를 표시하는 것이 일반적입니다.
  • DECIMAL(20, 5) : 20자리를 사용할 것이며, 소수점 이하는 5자리까지 정밀도가 보장됨

 

5. Auto Increment (자동 증가 옵션)

  • 고유한 숫자를 자동으로 생성하는 기능
  • 주로 기본키로 사용됩니다. (인덱스 생성 필수)
  • 숫자 타입의 칼럼에서만 사용 가능
  • 테이블 당 하나만 사용할 수 있습니다.

 

시스템 변수
  • auto_increment_offset: 자동 증가값의 초기 값
  • auto_increment_increment: 자동 증가값의 폭