본문 바로가기
DB/MSSQL

MSSQL 'N' 의 의미

by 애플 로그 2021. 1. 15.
반응형

MSSQL 'N' 의 의미


'N'은 유니코드를 말하는것입니다. 아래는 온라인설명서에서 해당 부분의 내용을 발췌하였으며 자세한 내용은 온라인설명서를 참고하세요.

 

유 니 코 드 란?

유니코드 사양은 전세계의 비즈니스에서 널리 사용되는 대부분 문자의 단일 인코딩 방법을 정의합니다. 모든 컴퓨터는 지속적으로 단일 유니코드 지정을 사용하여 유니코드 데이터에 있는 비트 패턴을 문자로 변환합니다.  이를 통해 동일한 비트 패턴은 항상 모든 컴퓨터에서 동일한 문자로 변환됩니다. 받는 시스템에서 비트 패턴을 문자로 제대로 변환하지 못할 것이라는 우려 없이 하나의 데이터베이스나 컴퓨터에서 다른 데이터베이스나 컴퓨터로 데이터를 자유롭게 전할 수 있습니다.

각 문자를 인코딩하기 위해 1바이트를 사용하는 데이터 형식의 문제점은 데이터 형식이 256개의 서로 다른 문자만 표현할 수 있다는 것입니다. 그러므로 비교적 작은 유럽의 알파벳과 같은 서로 다른 알파벳에 여러 인코딩 지정(또는 코드 페이지)을 강제로 사용합니다. 또한 수천 개의 문자가 들어 있는 일본의 간지 또는 우리 나라의 한글과 같은 시스템 을 처리할 수 없습니다.

각 Microsoft® SQL Server™ 데이터 정렬에는 각 문자를 char, varchar 및 text 값으로 표현하는 비트 패턴을 정의하는 코드 페이지가 있습니다. 각 열과 문자 상수를 다른 코드 페이지에 할당할 수 있습니다. 클라이언트 컴퓨터는 운영 체제 로케일에 연결된 코드 페이지를 사용하여 문자 비트 패턴을 해석합니다. 코드 페이지에는 여러 가지가 있습니다. 일부 문자는 일부 코드 페이지에만 나타나고 다른 페이지에는 나타나지 않습니다. 일부 문자는 일부 코드 페이지에서 1비트 패턴으로 정의되는 반면 다른 코드 페이지에서는 다른 비트 패턴으로 정의됩니다. 여러 언어를 처리해야 하는 국가별 시스템을 만들어야 하는 경우 여러 나라의 언어 요구 사항을 만족시키는 모든 컴퓨터의 코드 페이지를 선 택하기 어렵습니다. 다른 코드 페이지를 사용하여 시스템과 인터페이스할 때 모든 컴퓨터에서 올바로 변환할 수 있도록 보장하는 것 또한 어렵습니다. 유니코드 지정은 각 문자를 인코드할 때 2바이트를 사용하여 이 문제를 처리합니다. 대부분의 일반 비즈니스 언어를 포함하는 단일 지정에 대해 2바이트에는 서로 다른 패턴(65,536)이 충분히 있습니다. 모든 유니코드 시스템은 지속적으로 동일한 비트 패턴을 사용하여 모든 문자를 나타내므로 하나의 시스템에서 다른 시스템으로 이동할 때 제대로 변환되지 않는 문자가 생기지 않습니다. 시스템 전체에서 유니코드 데이터 형식을 사용하여 문자 변환 문제를 최소화할 수 있습니다.

 

Microsoft SQL Server에서 다음 데이터 형식은 유니코드 데이터를 지원합니다.
nchar  nvarchar  ntext

참고   이러한 데이터 형식의 n 접두사는 National(유니코드) 데이터 형식의 SQL-92
표준에서 나옵니다. nchar, nvarchar 및 ntext의 사용 방법은 다음을 제외하면 char, varchar 및 text과 같습니다.
유니코드는 더 큰 범위의 문자를 지원합니다.

유니코드 문자를 저장하기 위해 더 많은 공간이 필요합니다. nchar 및 nvarchar 열의 최대 크기는 4,000자이며 char 및 varchar와 같이 8000자가 아닙니다. 유니코드 상수는 N'유니코드 문자열' 같이 앞에 N이 지정됩니다.

모든 유니코드 데이터는 같은 유니코드 코드 페이지를 사용합니다. 데이터 정렬은 유니코드 열에서사용되는 코드 페이지를 제어하지 않으며 비교 규칙 및 대소문자 구분 등의 특성만 제어합니다.  직접 아래 일어문자를 select 해보면, N을 붙이지 않은 즉 유니코드 형식으로  select 하지 않은  일어문자는 깨진다.

 

select N'サー' 



select 'サー'  

 

위쪽에 N 을 붙인 값은 제대로 출력이 되지만, 밑에 글자는 깨져서 보인다.!! 

'DB > MSSQL' 카테고리의 다른 글

MSSQL 계정 모든 테이블 조회 하기  (0) 2021.10.29

댓글