숫자 타입 선택

먼저 소수 여부를 보고, 소수라면 정확도를 본다

숫자 타입은 이름보다 무엇을 저장하는지가 먼저입니다. 개수와 ID는 정수형, 측정값은 부동소수형, 금액처럼 오차가 허용되지 않는 값은 고정 소수점으로 고르면 판단이 빨라집니다.

1단계 소수가 없으면 정수형

카운트, 순번, PK처럼 값이 끊어지는 데이터에 맞습니다.

2단계 소수 + 근사값 허용이면 부동소수형

센서값, 평균, 통계처럼 작은 오차를 감수할 수 있을 때 씁니다.

3단계 소수 + 정확해야 하면 고정 소수점

가격, 세금, 정산처럼 결과가 같아야 하는 계산에 맞습니다.

구분
정수형

소수 없는 값

부동소수형

근사값 허용

고정 소수점

정확한 소수 저장

대표 상황
회원 수, 주문 번호, 재고 수량
온도, 평균, 측정 결과
상품 가격, 할인율, 세금 계산
예시 값
12305
36.65
19900.00
대표 타입
Oracle NUMBER(10) MySQL INT, BIGINT PostgreSQL INTEGER, BIGINT
MySQL FLOAT, DOUBLE PostgreSQL REAL, DOUBLE PRECISION
Oracle NUMBER(10,2) MySQL DECIMAL(p,s) PostgreSQL NUMERIC(p,s)
주의점
범위를 넘기면 더 큰 정수 타입이 필요합니다.
연산 결과에 작은 오차가 생길 수 있습니다.
금액 계산은 이쪽이 기본입니다. FLOAT로 정산하지 않습니다.
DBMS마다 이름은 달라도 판단 기준은 같습니다

Oracle은 NUMBER(p,s) 계열로 자릿수를 표현하고, MySQL과 PostgreSQL은 정수형·부동소수형·고정 소수점 계열을 더 분리해서 보여 줍니다.

Oracle
NUMBER / NUMBER(p,s)
MySQL
INT / FLOAT / DECIMAL
PostgreSQL
INTEGER / REAL / NUMERIC