Programming/데이터베이스

[MySQL] 숫자 타입

Bam_t 2022. 1. 24. 18:29
728x90

데이터들엔 타입이 존재합니다. 학번 데이터라면 정수를, 이름 데이터라면 문자열을 저장하듯이 SQL에서도 타입이 존재합니다.

오늘 포스트에서는 여러 타입 중 숫자와 관련한 타입들을 알아보도록 하겠습니다.


모든 숫자 타입은 UNSIGNED 옵션을 사용할 수 있습니다. UNSIGNED 옵션을 사용하면 0과 양수만을 표현하게 됩니다.

타입(크기)

 

1. 정수

우선 가장 기본적인 숫자라고 할 수 있는 정수 타입에 대해 알아보겠습니다.

타입명 크기 값의 범위 값의 범위 (unsigned)
TINYINT 1 byte -(2^7) ~ 2^7 - 1 0 ~ 2^8 - 1
SMALLINT 2 byte -(2^15) ~ 2^15 0 ~ 2^16 - 1
MEDIUMINT 3 byte -(2^23) ~ 2^23 0 ~ 2^24 -1
INT 4 byte -(2^31) ~ 2^31 0 ~ 2^32 - 1
BIGINT 5 byte -(2^63) ~ 2^63 0 ~ 2^64 - 1

 

 

 

2. 고정 소수점과 부동 소수점

컴퓨터의 실수 표현에는 고정 소수점과 부동 소수점 방식이 존재합니다. 지금은 SQL을 다루기 때문에 깊게는 설명할 수 없지만, 고정 소수점은 정확한 데이터를 위해, 부동 소수점은 데이터 값의 표현을 위해서 사용됩니다.

고정 소수점 방식에는 DECIMAL 또는 NUMERIC 키워드를 사용합니다. 이 키워드는 크기 표현란에, 정밀도와 스케일을 넣습니다.

DECIMAL(정밀도, 스케일)

정밀도(precision)은 총 자릿수를 의미하고, 스케일(scale)은 소수점 자릿수를 의미합니다. 만약 DECIMAL(3, 1)과 같은 표현식이 온다면 해당 컬럼의 표현가능한 고정 소수점 수는 -99.9 ~ 99.9가 됩니다.

 

부동 소수점 방식에는 FLOAT와 DOUBLE이 사용됩니다. 부동 소수점에는 단정도 형식(single-precision)과 배정도 형식(double-precision)이 존재합니다. 부동 소수점 방식은 다음과 같이 사용하고, 표시한 정밀도에 따라서, FLOAT, DOUBLE이 자동 선택됩니다.

FLOAT(정밀도)

단정도 형식은 FLOAT 키워드가 선택됩니다. FLOAT는 0~23 사이의 정밀도를 가지며, 4 byte 크기를 갖습니다.

배정도 형식은 DOUBLE 키워드가 선택됩니다. DOUBLE은 0~53사이의 정밀도를 가지며, 8 byte 크기를 갖습니다.

 

 

 

3. 비트

비트는 0/1의 binary 값을 저장하는 타입입니다. 비트 타입에는 1 ~ 64 비트의 범위가 올 수 있으며, 생략시 기본값인 1이 적용됩니다.

BIT(비트수)

비트는 지정된 비트수보다 적은 크기의 값이 들어가면 자동으로 앞을 0으로 채워줍니다. BIT(4)의 컬럼에 01이라는 값을 넣으면 자동으로 0001로 변환되어 저장됩니다.

728x90