📗 Do it! SQL 입문

[SQL 입문] SQL Server에서 다루는 자료형 정리하기

harveydent 2023. 6. 21. 21:56
728x90

03 - 7 SQL Server에서 다루는 자료형 정리하기

SQL Server는숫자형, 문자형, 날짜형, 지리형, 공간형 등 다양한 자료형을 제공합니다.

숫자형 알아보기

숫자형은 정수, 실수 등의 숫자를 말합니다.

자료형 데이터 크기
(byte)
숫자 범위 설명
bit 1 0, 1, NULL 불리언(Boolean) 형식으로 참(True, 1) 또는 거짓(False, 0)으로 사용
tinyint 1 0 ~ 255 정수 데이터를 사용하는 정확한 숫자 자료형으로 숫자를 저장할 때 가장 많이 사용
smallint 2 -32,768 ~ 32,767
int 4 -2^31(약 -21억) ~ 2^31-1(약 21억)
bigint 8 -2^63 ~ 2^63-1
decimal(p,s) 5 ~ 17 -10^38+1 ~ 10^38-1 전체 자릿수와 소수 자릿수가 고정된 숫자로, 최대 38자리 사용
numberic(p,s) 5 ~ 17 -10^38+1 ~ 10^38-1
float(n) 4 ~ 8 -1.79E+308 ~ 1.79E+308
real 4 -3.40E+38 ~ 3.40E+38 부동 소수점 숫자 데이터에 사용하는 근사 숫자 자료형
smallmoney 4 약 -21억 ~ 21억 통화 단위에 주로 사용하며 1/10000까지 정확하게 표현 가능
money 8 -2^63 ~ 2^63-1

SQL Server가 제공하는 숫자형 정보

숫자형 데이터를 사용할 때는 형 변환(type casting)에 주의해야 합니다. 형 변환이란 암시적, 명시적으로 자료형을 변경하는 것입니다. 암시적 형 변환이란 직접 자료형을 변경하지 않아도 실행환경에서 자동으로 자료형을 변경하는 것을 말하고, 명시적 형 변환이란 사용자가 직접 자료형을 변경하는 것을 말합니다.

-- 숫자형 데이터의 형 변환 : 정수, 실수
SELECT 10/3 -- 3
SELECT 10/3.0 -- 3.3333
순위 자료형
(...생략...)
6 datetime
(...생략...)
10 float
11 real
12 decimal
13 money
14 smallmoney
15 bigint
16 int
17 smallint
18 tinyint
(...생략...)
25 nvarchar (including nvarchar(max))
26 nchar
27 varchar (including varchar(max))
28 char
(...생략...)

자료형 우선순위

숫자형 데이터는 합, 평균, 나누기 등 집계 함수에서 자주 사용합니다.

문자형 알아보기

문자형은 다양한 문자를 저장할 수 있는 자료형입니다. 문자형은 크게 고정 길이와 가변 길이로 구분할 수 있습니다. 고정 길이는 실젯값을 입력하지 않아도 지정한 만큼의 저장 공간을 사용하며, 가변 길이는 실제 입력한 값의 크기만큼만 저장 공간을 사용합니다. 유니코드는 한글이나 특수문자 등을 저장할 때 사용하며 한 글자에 2바이트입니다. 그래서 유니코드의 경우 자료형에서 지정한 데이터 크기의 50% 정도만 저장할 수 있습니다.

자료형 데이터 크기
(byte)
설명
char(n) 0 ~ 8000 ● 고정 길이 문자열
nchar(n) 0 ~ 8000 ● 유니코드 고정 길이 문자열로 4000자 입력 가능
varchar(n|max) 0 ~ 2^31-1 (2GB) ● 가변 길이 문자열로 n만큼의 크기 지정 가능
● max를 지정하면 2GB까지 가능
nvarchar(n|max) 0 ~ 2^31-1 ● 유니코드 가변 길이 문자열
binary(n) 0 ~ 8000 ● 고정 길이의 이진 데이터값
varbinary(n|max) 0 ~ 2^31-1 ● 가변 길이 이진 데이터값
● N을 사용하면 1 ~ 8000까지 크기를 지정할 수 있고,
    max를 지정하면 2GB까지 크기 지정 가능
● 동영상 이미지 등 저장에 사용

SQL Server가 제공하는 문자형 정보

날짜형과 시간형 알아보기

날짜와 시간 자료형에는 날짜 또는 시간만 저장하는 타입도 있고, 날짜와 시간을 함께 저장하는 타입도 있습니다. 정확도에 따라 데이터 크기와 형식이 조금씩 다릅니다.

자료형 데이터 크기
(byte)
정확도 설명
time 3 ~ 5 100나노초 00:00:00.0000000 ~ 23:59:59.9999999까지 저장
date 3 1일 0001-00-01 ~ 9999-12-31까지 저장되며 날짜만 저장
smalldatetime 4 1분 1900-01-01 00:00:00 ~ 2079-06-06 23:59:59까지 저장
datetime 8 0.00333초 1753-01-01 00:00:00.000 ~ 999-12-31 23:59:59.997까지 저장
datetime2 6 ~ 8 100나노초 DATETIME 형식에서 확장된 형식
0001-01-01 00:00:00.0000000 ~ 9999-12-31 23:59:59.9999999까지 저장
datetimeoffset 8 ~ 10 100나노초 0001-01-01 00:00:00.0000000 ~ 9999-12-31 23:59:59.9999999까지 저장
타임존 시간을 함께 저장

SQL Server가 제공하는 날짜형/시간형 정보

문자와 날짜 형식도 형 변환을 할 수 있습니다.

  to → DATATIME FLOAT DECIMAL INT BIT NVARCHAR VARCHAR
from
               
DATETIME     X X X O O O
FLOAT   O   O O O O O
DECIMAL   O O   O O O O
INT   O O O   O O O
BIT   O O O O   O O
NVARCHAR   O O O O O   O
VARCHAR   O O O O O O  

문자 형 변환을 할 수 있는 데이터 유형

728x90