728x90
반응형
SQL 에는 다양한 데이터 타입이 있는데 아마도 값의 범위를 이용한 해킹을 방지하거나
데이터를 잘못 다루는 실수로 인한 피해를 줄이기 위해서 그런 것 같다.
다 사용하지는 않고 대표적인 것 몇 개만 외우면 된다.
정확한 수 타입 (Exact Numeric Data Types)
bigint | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
int | -2,147,483,648 | 2,147,483,647 |
smallint | -32,768 | 32,767 |
tinyint | 0 | 255 |
bit | 0 | 1 |
decimal | -10^38 +1 | 10^38 -1 |
numeric | -10^38 +1 | 10^38 -1 |
money | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 |
smallmoney | -214,748.3648 | +214,748.3647 |
big/small/tiny/regular int 정수 값
bit 비트 연산할 때 아니면 기계어 직접 다룰 때 핀 번호 당 값을 알기 위해 주로 사용
decimal 는 소수점 가능( money, smallmoney와 같이 회계에 주로 사용)
대략적 값 타입 (Approximate Numeric Data Types)
float | -1.79E + 308 | 1.79E + 308 |
real | -3.40E + 38 | 3.40E + 38 |
float 는 소수점 가능 (과학적계산 값에 주로 사용)
날짜/시간 타입 (Date and Time Data Types)
datetime | Jan 12, 1823 | Dec 21, 9345 |
smalldatetime | Jan 17, 1932 | Jun 15, 2672 |
date | June 20, 1391 같은 거 저장 | |
time | 06:05 P.M. 같은 거 저장 |
datetime은 3.33 밀리 초의 정확도,
smalldatetime 1분 단위의 정확도를 가짐
문자열 값 타입 (Character Strings Data Types)
1 | char 최대 8,000 자.( 유니코드가 아닌 길이 고정 데이터) |
2 | varchar 최대 8,000 자.(유니코드가 아닌 가변 길이 데이터) |
3 | varchar(max) 최대 2E + 31 자 입력 가능. 유니코드가 아닌 가변 길이 데이터 (SQL Server 2005 only) |
4 | text 최대 2,147,483,647 자. 유니코드가 아닌 가변 길이 데이터 |
char vs text
char는 비교적 짧다. 고정 값
text는 비교적 길다. 가변 값
var- 접두어가 가변 값임
유니코드 문자열 값 타입 (Unicode Character Strings Data Types)
1 | nchar 최대 4,000 자.(길이 고정 데이터) |
2 | nvarchar 최대 4,000 자.(가변 길이 데이터) |
3 | nvarchar(max) 최대 2E + 31 자 (가변 길이 데이터)(SQL Server 2005 only) |
4 | ntext 최대 1,073,741,823 자. (가변 길이 데이터) |
유니코드만 넣을 수 있다.
n- 접두어가 유니코드를 나타냄
바이너리 값 타입 (Binary Data Types)
1 | binary 최대 8,000 바이트.(길이 고정 데이터) |
2 | varbinary 최대 8,000 바이트.(가변 길이 데이터) |
3 | varbinary(max) 최대 2E + 31바이트(가변 길이 데이터)(SQL Server 2005 only) |
4 | image 최대 2,147,483,647 바이트. (가변 길이 데이터) |
바이너리 값만 넣을 수 있다.
기타 값 타입 (Misc Data Types)
sql_variant 다양한 "SQL Server 지원" 데이터 형식의 값을 저장 (text, ntext 및 timestamp를 제외. 이유는 모름) |
timestamp |
uniqueidentifier 고유식별자(GUID) 저장 |
xml XML 데이터 저장. (SQL Server 2005 에서만 가능) |
cursor 커서 객체에 대한 데이터 저장 (좌표값 등) |
table 추후에 연산하기 위해 결과 집합만 저장 |
반응형
'개발 > DB' 카테고리의 다른 글
SQL 종류와 활용 (0) | 2022.02.20 |
---|---|
SQLite로 배우는 SQL 표준의 기초 (0) | 2022.02.04 |