본문 바로가기
컴퓨터관련/MS-SQL

[MS-SQL]유니코드로 다국적언어 사용 및 VARCHAR와 NVARCHAR 차이

by 빛과 어둠사이 2019. 7. 26.
728x90
반응형
SMALL

MS-SQL에서 유니코드를 사용하여

다국어를 입력할 수 있습니다.

유니코드를 사용하기 위해서는

앞에 N을 앞에 붙여주어야 합니다.



1. 컬럼 형식

CHAR -> NCHAR

VARCHAR -> NVARCHAR

TEXT -> NTEXT

위처럼 하면 됩니다.

즉 컬럼 타입을 선택할 때 앞에 N을 붙여주면 됩니다.




2. 쿼리

유니코드를 입력할 때도 앞에

대문자 N을 붙여주면 됩니다.

제가 샘플로 만든 쿼리는 다음과 같습니다.

11111


위 쿼리는 VARCHAR형과 NVARCHAR형 

데이터를 입력하는 것입니다.

앞에 N을 붙이면 유니코드로 입력을 하게 되는 것입니다.


3. VARCHAR와 NVARCHAR 차이

저는 개인적으로 NVARCHAR를 많이 썼습니다.

물론, CHAR이나 TEXT등도 유니코드로 쓸 수 있습니다.

하지만 저는 VARCHAR를 제일 많이 써서

이 두가지의 차이점을 정리해려고 합니다.


아시겠지만,

VARCHAR은 가변문자열입니다.

그러면 NVARCHAR은 유니코드 가변문자열입니다.

다국어(중국어, 일본어 등등)을 입력하기 위해서는

유니코드는 NVARCHAR를 써야 합니다.


그리고 한글을 기준으로 한

차이점을 보여드리도록 하겠습니다.

22222222222

위처럼 쿼리를 돌리면 결과는 다음과 같습니다.



VARCHAR를 쓸 때 숫자는 BYTE수를 얘기합니다.

그렇기 때문에 "가"한 글자만 나오게 됩니다.

한글은 2BYTE로 저장되기 때문이죠.


그리고 NVARCHAR는 글자수를 의미합니다.

그리고 유니코드의 경우,

무조건 2BYTE를 사용합니다.

그렇기 때문에 위 쿼리에서는 3글자가 저장이 되어

정상적으로 나오게 되는 것입니다.


그래서 길이도 다른것이고요.




4. 참고사항

유니코드를 사용하기 위해서는 

DB처리하는 페이지는 UTF-8로 인코딩이 되어야 합니다.

그리고 N은 national의 약자입니다.





이상으로 SQL SERVER에서 유니코드를 사용하여

다국적 언어 사용하기

그리고 VARCHAR와 NVARCHAR의 차이점이였습니다~



728x90
반응형
LIST