2월 08, 2024

SQL 자료형 비교하기 NUMERIC VS. BIGINT, INT

 SQL의 자료형은 간단하면서도 다양한 자료형으로 인해 자칫 잘못 사용하면 원하는 바와 다른 결과를 얻을 수 있다. 예를 들어 소수점까지 표현을 해야하는 것인데 Bigint 자료형을 쓰게 되면 반올림되면서 정수형태로 표현이 될 수 있다. 


오늘은 대표적인 SQL 자료형에 대해 알아보도록 하겠다.



1. INT 형식의 자료형 (bigint, int, smallint, tinyint)

 

Data Type Bytes 범위
bigint 8 bytes ( - 2^63 ) ~ ( 2^63 -1 )
int  4 bytes ( - 2^31 ) ~ ( 2^31 -1 )
smallint 2 bytes ( - 2^15 ) ~ ( 2^15 -1 )
tinyint 1 Byte 0 ~ 255

data type의 이름이 암시하는 것과 같이 bigint에서 tinyint로 갈수록 storage bytes의 크기도 줄어들게 되고 그에 따라 표현하는 범위에도 변동이 있다.


2. Numeric (전체 자리수 max, 소수점 아래 자리수 max)

int 형식만 표현할 수 있었던 위 bigint, int, smallint, tinyint와는 다르게 numeric 자료형을 사용하면 소수점 아래까지 표현할 수 있다. 

 

예를 들어, 

numeric(8,2)

위와 같은 자료형이 있다고 가정해보자.

 

그러면 총 8자리까지 표현할 수 있는 것이다. 중요한 것은 소수점 아래 자리까지 하여 8자리이며, 소수점 아래로는 2자리까지 표현할 수 있다는 것을 의미한다. 

 

즉 numeric(a,b)의 형식으로 일반화를 시켜보면 아래와 같은 그림으로 a와 b의 자릿수를 이해하면 된다. 



 

numeric과 유사한 데이터 형태로 decimal을 사용할 수도 있다.