DBMS_SQL/Oracle
SQL - 4. 자료형
onivv
2023. 12. 23. 12:25
#1 숫자형
자료형 | 데이터 크기 (byte) | 숫자 범위 | 설명 |
bit | 1 | 0, 1, NULL | 불린(boolean) 형식으로 참(True,1) 또는 거짓(False,0)으로 사용 |
tinyint | 1 | 0 ~ 255 | 정수 데이터를 사용하는 정확한 숫자 자료형으로 숫자를 저장할 때 가장 많이 사용 |
smalint | 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 |
▶ 숫자형 데이터의 형 변환(type casting)
- 자동 형 변환 : 연산 대상의 자료형이 다를 경우 데이터 우선순위에 따라 시스템이 상위 자료형으로 변경하는 것
- 강제 형 변환 : 사용자가 직접 자료형을 변경하는 것 (CATST, CONVERT, ...)
- 자료형 우선순위
- ... datetime ... > float > real > decimal > money > smallmoney > bigint > int > smallint > tinyint ...
- > nvarchar > nchar > varchar > char ...
#2 문자형
- 고정 길이 : 실젯값을 입력하지 않아도 지정한 만큼의 저장 공간을 사용
- 가변 길이 : 실제 입력한 값의 크기만큼만 저장 공간을 사용
- 유니코드 : 한글||특수문자... 저장할 때 사용 (1글자에 2byte) , 자료형에서 지정한 데이터 크기의 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까지 크기 지정 가능 - 동영상 이미지 등 저장에 사용 |
#3 날짜형 & 시간형
자료형 | 데이터 크기 (byte) | 정확도 | 설명 |
time | 3 ~ 5 | 100나노초 | 00:00:00.0000000 ~ 23:59:59.9999999 |
date | 3 | 1일 | 0001-01-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 ~ 9999-12-31 23:59:59.997 |
datetime2 | 6 ~ 8 | 100나노초 | 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 |