[MSSQL 강좌 - 1] 데이터 타입


Study/Database  2012. 9. 30. 22:20

안녕하세요. 명월입니다.


먼저 MSSQL의 명령어를 익히기에 앞서 데이터타입에 대해 알아보겠습니다.

데이터타입이란 프로그램에서는 즉 자료형과 같은 개념으로서 프로그램에서는 데이터 자료의 흐름 즉, 처리를 중요하게 다룬다면 데이터베이스에서는 주로 데이터 상태를 더 중요하다고 생각됩니다.

프로그램에서도 자료형은 중요한 부분이나 데이터베이스에서의 데이터타입은 어찌보면 변수보다도 훨씬 중요한 비중을 차지할 지도 모르겠습니다. 데이터베이스의 데이터 타입의 종류는 엄청나게 많으나 우리는 일단 중요하고 또 자주 사용하는 데이터타입만 익히고 지나가도록 하겠습니다.

 

숫자형 데이터 타입
데이터 형식 바이트 수 숫자 범위 설명
BIT 1 0 또는 1 Boolean형인 참, 거짓으로 사용
INT 4 -21억~+21억 정수
SMALLINT 2 -32,768~32,767 정수
TINYINT 1 0~255 양의정수
BIGINT 8 -263~263

정수

DECIMAL(p,s) 5~17 N/A p는 자릿수, s는 소수점 자릿수
NUMERIC 5~17 N/A DECIMAL과 같은 형식
REAL 4 FLOAT[24]와 동일
FLOAT[p] 4~8 p가 24 이하면 4바이트 25이상이면 8바이트
MONEY 8 -263~263 화폐단위로 사용
SMALLMONEY 4 -21억~+21억 화폐단위로 사용
문자형 데이터 형식
데이터형식 바이트수 설명
CHAR[n] 0~8000 고정길이 문자형
NCHAR[n] 0~8000 유니코드 고정길이 문자형
VARCHAR[n] 0~231-1 가변길이 문자형
NVARCHAR[n] 0~231-1 유니코드 가변길이 문자형
TEXT[n] 0~231-1 VARCHAR[MAX]
NTEXT[n] 유니코드 TEXT
BINARY[n] 0~8000 고정길이 이진 데이터 값
VARBINARY[n] 0~231-1 가변길이 이진 데이터값
IMAGE 0~231-1 VARBINARY[MAX]
시간과 날짜 데이터 형식
데이터형식 바이트수 설명
DATETIME 8 1753/1/1 ~ 9999/12/31까지, 최소단위는 0.001초
SMALLDATETIME 4 1900/1/1 ~ 20791/6까지, 최소단위는 분까지
기타 데이터 형식
데이터형식 바이트수 설명
TIMESTAMP 8 SQL 내부 데이터 타입
ROWVERSION 8 SQL 내부 데이터 타입
SYSTEM 128 SQL 내부 데이터 타입
CURSOR 1 T-SQL 커서
TABLE TABLE
UNIQUEIDENTIFIER 16 GUID 값
SQL_VARIANT C#에서의 ARRAYLIST
XML XML

데이터베이스는 프로그램과 다르게 데이터타입을 정확하게 지정하는 편이 좋습니다. 프로그램이야 프로그램이 종료되고 나면 메모리를 반환하는 형식이여서 큰 프로그램이 아닌 이상이야 상관없지만 데이터베이스는 파일시스템타입이라서 데이터타입를 낭비하면 나중에는 속도가 느려질 뿐만 아니라 데이터베이스가 어마어마하게 커지기 때문입니다. 그때 가서 튜닝을한다고 하면 이미 데이터베이스가 구축된 후라서 수정하기도 힘들기 때문에 초반에 설계할 때 데이터타입도 충분히 고려하고 신중하게 설계해야 하겠습니다.