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