SQL 데이터 형식

데이터베이스를 모델링할때 저장될 자료에 대한 특성과 크기를 파악해야 할 때가 있습니다.

넉넉하게 생각해서 미리 크기가 큰 데이터 형으로 설정 할 수 있겠지만  적절한 설계를 통하여 가급적 자원의 소모를 줄이는 방법이 좋을 듯 합니다.

각 형마다 바이트 한자리 수까지 외우고 있는 분도 봤었지만 저 같이 우둔한 사람들은 이렇게 레퍼런스 형식으로 찾아 볼 수 있으면 충분할 것 같습니다.

형식 범위 설명
Bit  0~1 0 또는 1을 받아들일 수 있는 논리 형식으로 가장 크기가 작다.
Tinyint  0~255 정수형으로 1바이트 크기의 0 부터 255까지 입력이 가능하다.
Smallint  -32,768~32767 2바이트 크기의 정수형 숫자를 입력할 수 있다.
int  -2,147,483,648~2,147,483,647 4바이트 크기의 정수형 숫자를 입력할 수 있다.
Bigint -9,223,372,036,854,775,808~
9,223,372,036,854,775,807
int의 확장판으로 8바이트 크기의  매우 큰 정수형 숫자를 입력할 수 있다.
Smallmoney  -2,147,483,648~2,147,483,647 4바이트 크기의 통화 단위 숫자를 입력할 수 있다. 숫자형과 거의 차이가 없음.
Money  -922,337,203,685,477.5808~
922,337,203,685,477.5807
Smallmoney 보다 큰 8바이트의 통화 단위 숫자를 입력할 수 있으며 소수점을 포함 할 수 있다.
Decimal([n,s]) -1E+38 + 1~1E+38 – 1 통화 단위 숫자형으로 [전체숫자 개수, 소수숫자 자리수] 파라미터 형식으로 전체자리수가 1~9 까지 5바이트, 10~19까지 9바이트, 20~28까지 13바이트, 29~38까지 17바이트를 차지한다.
Numeric([n,s]) -1E+38 + 1~1E+38 – 1 Decimal와 기능적으로 동일하다.
Float[(n)] -1.79E+308~1.79E+308 부동 소수점 숫자를 입력받을 수 있는 형식으로 파라미터 n 값이 1~24까지는 4바이트이며 25~53까지는 8바이트이다.
Real  -3.40E+38~3.40E+38 Float (24)와 동일한 부동 소수점 형으로 4바이트 크기를 가지고 있다.
Smalldatetime 1900년1월1일~2079년6월6일 4바이트의 날짜형 타입으로 분단위까지 입력할 수 있다.
Datetime 1753년1월1일~9999년12월31일 Datetime 형 보다 정밀하고 범위도 더 넓게 입력받을 수 있는 형식으로 밀리초 단위까지 입력 할 수 있는 8바이트의 날짜형식이다.
Date 기원전 4712년12월1일~4712년12월31일 날짜와 시간을 초단위까지 입력받 수 있고 날짜 범위가 가장 넓은 날짜 형식.
Char[(n)] 최대 n = 8000 고정길이 문자열 형식으로 파라미터 n에 해당 되는 문자 갯수를 담을 수 있으며 n를 생략할 경우 하나의 문자만 입력 받을 수 있다. Char(10)으로 설정 한 후에 5개의 문자만 입력할 경우 나머지 5개의 공간은 공백으로 채워진다.
Nchar[(n)] 최대 n = 4000 유니코드 고정길이 문자열 형식으로  Char와 다른 점은 유니코드를 입력받을 수 있어 한글, 영문 상관없이 파라미터에 설정한 개수 만큼 글자를 입력 할 수 있다.
Varchar[(n)] 최대 n = 8000 길이가 변경 될 수 있는 문자열 형식이며 Char와 다르게 빈 문자 공간을 채워넣지 않고 값이 있는 부분만 크기로 지정한다. 숫자나 기호, 영문은 한 글자에 1바이트, 한글이나 한자는 2바이트를 차지한다.
Nvarchar[(n)] 최대 n = 4000 Nchar와 같이 Varchar와 다르게 유니코드를 입력받을 수 있다.
Text 최대 2,147,483,647 문자 Char 나 Varchar를 초과하는 문자를 입력 받을 때 사용하는 형식.
Image 최대 2,147,483,647 바이너리 Text 형식은 문자만 입력하는 반면에 Image는 그림, 데이터 등 모든 자료를 입력 받을 수 있는 형식이다.

댓글 남기기