본문 바로가기
IT/MSSQL

[MSSQL] nvarchar, varchar, nchar, char 차이점 (문자 데이터 형식)

by 베베야 2022. 1. 14.
728x90

데이터베이스의 테이블 생성시 데이터 형식을 설정해야합니다.
문자 형식일 경우 nvarchar, varchar, nchar, char 형식을 사용하는데요.
이번 시간에는 4가지 데이터 타입의 특징과 차이점에 대해서 알아보겠습니다.


 

문자형 테이터 타입

[문자 데이터 형식]

1. CHAR[(N)] : 고정길이 문자형

- char(10)에 문자 abc를 입력 시 3비트만 사용하고 나머지 7비트는 낭비가 될 수 있음.
- 성별(M/F), 주민번호, 등 변하지 않는 고정된 값이 입력될 경우 사용하면 효율적



2. VARCHAR[(N | MAX)] : 가변 길이 문자형. N을 사용하면 1~8000까지 크기를 지정 가능, MAX로 지정하면 최대 2GB크기를 지정 가능 

- VARCHAR(10)에 문자 abc를 입력 시 가변적으로 3비트만 사용되어 
  낭비되는 공간이 없기 때문에 공간을 효율적으로 사용가능.
  
- 대용량 데이터베이스를 운영할 경우 4글자 미만의 값은 
  char형식으로 지정하는 것이 INSERT/UPDATE 시에 더 좋은 성능을 보임.



3. NCHAR[(N)] : 글자 0~4000자. 유니코드 고정 길이 문자형 

-  한글(유니코드)를 저장하기 위해서는 기본적으로 2bit가 필요하다. 

-  한글 3글자를 저장하는 경우 6bit로 NCHAR(6)이 필요하다. 
   하지만 앞에 N을 선언해서 NCHAR(3)으로 지정하면 한글 3글자 입력이 가능하게 된다.
   
-  다른 설명은 위의 CHAR[(N)]와 동일하다.



4. NVARCHAR[(N | MAX)] : 유니코드 가변 길이 문자형. N을 사용하면 1~4000까지 크기를 지정 가능, MAX를 지정하면 최대 2GB크기를 지정 가능

-  한글(유니코드)를 저장하기 위해서는 기본적으로 2bit가 필요하다. 

-  한글 3글자를 저장하는 경우 6bit로 NVARCHAR(6)이 필요하다. 
   하지만 앞에 N을 선언해서 NVARCHAR(3)으로 지정하면 한글 3글자 입력이 가능하게 된다.
   
-  다른 설명은 위의 NVARCHAR[(N)]와 동일하다.

[추가참고]

BINARY[(N)] : 고정길이의 이진 데이터 값

VARBINARY[(N | MAX)] : 가변길의이 이진 데이터 값. N을 사용하면 1~8000까지 크기를 지정 가능,  MAX로 지정하면 최대 2GB크기를 지정 가능. 이미지/동영상 등을 저장하기 위해 사용된다. 

반응형
그리드형

댓글