안녕하세요. 명월입니다.
먼저 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 |
데이터베이스는 프로그램과 다르게 데이터타입을 정확하게 지정하는 편이 좋습니다. 프로그램이야 프로그램이 종료되고 나면 메모리를 반환하는 형식이여서 큰 프로그램이 아닌 이상이야 상관없지만 데이터베이스는 파일시스템타입이라서 데이터타입를 낭비하면 나중에는 속도가 느려질 뿐만 아니라 데이터베이스가 어마어마하게 커지기 때문입니다. 그때 가서 튜닝을한다고 하면 이미 데이터베이스가 구축된 후라서 수정하기도 힘들기 때문에 초반에 설계할 때 데이터타입도 충분히 고려하고 신중하게 설계해야 하겠습니다.
'Study > Database' 카테고리의 다른 글
[MSSQL 강좌 - 7] DDL- create.alter,drop (0) | 2012.10.19 |
---|---|
[MSSQL 강좌 - 6] DML - insert, update, delete (0) | 2012.10.18 |
[MSSQL 강좌 - 5] SELECT 문 - 3 (5) | 2012.10.07 |
[MSSQL 강좌 - 4] SELECT 문 - 2 (0) | 2012.10.06 |
[MSSQL 강좌 - 3] SELECT 문 - 1 (0) | 2012.10.03 |
[MSSQL 강좌 - 2] 테이블 생성과 데이터 삽입 (0) | 2012.10.02 |
[MSSQL] MSSQL Express 설치하기. (10) | 2012.09.29 |
[MSSQL] MSSQL이란? (0) | 2012.09.29 |