본문 바로가기
🎪 놀고있네/MS SQL

[SQL Server] varchar, nvarchar 뭘 사용해야 하죠?

by 냥장판 2019. 12. 6.

목표: varchar, nvarchar 차이점 파악하기

요약: 지원하는 Language Block의 차이

 

 

2019/11/14 - [놀고있네/MS SQL] - [SQL Server] 테이블 컬럼 추가

2019/11/15 - [놀고있네/MS SQL] - [SQL Server] Collation, 언어별 정렬하기

 

 

varchar 데이터 형식을 갖는 컬럼을 추가했다.

 

 

 

nvarchar 데이터 형식을 갖는 컬럼을 추가했다.

 

 

각 컬럼의 character set, collation 정보를 확인하기 위해 아래와 같이 쿼리를 작성했다.

 

 

 

 

varchar 데이터 형식은 iso_1 인코딩을 따르고,

nvarchar 데이터 형식은 Unicode 인코딩을 따르는 것을 확인할 수 있다.

 

 

이 문자를 입력해봤다.

문자가 입력은 됐는데, ? 모양으로 처리되었다.

 

 

혹시 모르니까 이모지까지 입력해봤는데,

 

varchar는 여전히 이모지가 나오지 않는다!

 

 

 

그럼 Latin 1 블럭에 있는 문자열을 모두 입력해서 비교해보겠다.

 

 

입력해보자!

 

 

출력해보자!

 

 

입력, 출력이 잘되는 것을 확인할 수 있다.

 

지원하는 Language Block의 차이인 것을 확인할 수 있다.

 

varchar 데이터 형식은 iso latin 1 영역의 값만을 커버하기 때문에 글자가 사라지게 된 것이다.

 

 

한글은 latin 계열 문자가 아니기 떄문에 데이터 형식 사용 시 Unicode를 지원하는 nvarchar 데이터 형식을 사용하기 바란다.

 

2019/12/03 - [놀고있네/i18n] - [Unicode] Unicode 란? (문자세트, 인코딩, 코드 포인트, 평면, 정규화) 🤪

 

[Unicode] Unicode 란? (문자세트, 인코딩, 코드 포인트, 평면, 정규화) 🤪

목표: Unicode란 무엇이고, Unicode에서 알아두어야 할 용어들을 파악하자 문자 세트(Character set) 문자 인코딩(Character encoding) 코드 포인트(Code point) 유니코드 평면(Unicode Planes) 유니코드 정규화(U..

miaow-miaow.tistory.com

 


 

 

 

댓글