SQL - char, varchar, nchar, nvarchar 차이점

 

Char / VarChar

char (Character)

  • 고정 크기 문자열 데이터
  • 문자열의 크기를 바이트 단위로 정의 (1~8000바이트)
  • 저장소 크기는 n바이트
    • n개의 문자열 저장
    • 상황에 따라 문자 수는 n보다 작을 수 있음 (1바이트 문자만 존재하는 것이 아니기 때문)
  • 특정 범위의 크기를 넘어서지 못함

varchar (Character Varying)

  • 가변 크기 문자열 데이터
  • 문자열의 크기를 바이트 단위로 정의 (1~8000바이트)
  • 저장소 크기는 n바이트 + 2바이트
    • n개의 문자열 저장
    • 상황에 따라 문자 수는 n보다 작을 수 있음 (1바이트 문자만 존재하는 것이 아니기 때문)
  • 특정 범위의 크기를 넘어 설 수 있음 (8000~)

char / varchar 사용

  • char : 컬럼의 항목들의 크기가 일치하는 경우
  • varchar : 컬럼의 항목들의 크기가 상당히 다른 경우
  • varchar(max) : 컬럼의 항목들의 크기가 상당히 다양하고 문자열 길이가 8000바이트를 초과하는 경우

nchar / nvarchar

nchar (National Character)

  • 국제 문자셋(유니코드)을 지원하는 고정 크기 문자열 데이터
  • 바이트 쌍의 문자열 크기로 정의 (1~4000바이트)
  • 저장소 크기는 바이트의 두 배
    • n개의 문자열 저장
    • 상황에 따라 문자 수는 n보다 작을 수 있음 (보조 문자가 두 바이트 쌍을 사용하기 때문)
  • 특정 범위의 크기를 넘어서지 못함

nvarchar (National Character Varying)

  • 국제 문자셋(유니코드)을 지원하는 가변 크기 문자열 데이터
  • 바이트 쌍의 문자열 크기로 정의 (1~4000바이트)
  • 저장소 크기는 n바이트 + 2바이트의 두 배
    • n개의 문자열 저장
    • 상황에 따라 문자 수는 n보다 작을 수 있음 (보조 문자가 두 바이트 쌍을 사용하기 때문)
  • 특정 범위의 크기를 넘어 설 수 있음 (4000~)

nchar / nvarchar 사용

  • nchar : 컬럼의 항목들의 크기가 일치하는 경우
  • nvarchar : 컬럼의 항목들의 크기가 상당히 다른 경우
  • nvarchar(max) : 컬럼의 항목들의 크기가 상당히 다양하고 문자열 길이가 4000바이트 쌍을 초과하는 경우

정리

문자열 데이터타입의 숫자

  • 문자열 데이터타입의 숫자는 문자의 수가 아닌 바이트를 뜻함
  • 예시 : nvarchar(10) - 10글자가 아닌 10바이트를 의미

 

char / nchar

  • n은 유니코드를 사용하는 문자열 데이터타입임을 의미

 

char / varchar

  • 고정과 가변(var)의 크기의 데이터타입 정의 유형

참고

  • Microsoft SQL 문서 - nchar 및 nvarchar

https://learn.microsoft.com/ko-kr/sql/t-sql/data-types/nchar-and-nvarchar-transact-sql?view=sql-server-ver16 

 

nchar 및 nvarchar(Transact-SQL) - SQL Server

고정 크기(nchar) 또는 가변 크기(nvarchar)인 유니코드 문자 데이터 형식입니다.

learn.microsoft.com

 

  • 위키백과 - SQL

https://ko.wikipedia.org/wiki/SQL

 

SQL - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 이 도표는 단문을 구성하는 SQL 언어 요소 몇 가지를 보여준다. SQL(,[1] 또는 , Structured Query Language[2][3][4][5], 구조화 질의어, S-Q-L[6])은 관계형 데이터베이스 관리

ko.wikipedia.org