MSSQL, nvarchar와 nchar 차이

nchar VS nvarchar

nchar와 nvarchar는 SQL Server에서 유니코드 문자열을 저장하는 데 사용되는 두 가지 데이터 형식입니다. 두 형식 모두 유니코드 문자를 저장할 수 있지만, 각각 특성이 다릅니다.

 

nchar

  • 고정 길이 문자열을 저장합니다. 모든 데이터가 동일한 길이로 저장되어야 할 때 유용합니다. 예를 들어, 각각의 항목이 정확히 1자인 값이 insert되는 경우 nchar(1)을 사용할 수 있습니다.
  • 고정 길이를 가진 nchar는 데이터 길이가 일정하기 때문에 검색 성능이 더 좋을 수 있습니다.

 

nvarchar

  • 가변 길이의 문자열을 저장합니다. 데이터 길이가 다양하게 insert되는 경우 사용합니다. 문자열을 저장하는 컬럼에는 대부분 nvarchar이 사용됩니다.
  • nvarchar는 실제로 사용되는 문자 수에 따라 저장 공간을 할당합니다. 더 짧은 문자열이 저장될수록 필요한 공간이 적습니다.

 

nvarchar 대신 nchar 사용하는 이유

nchar(1)로 저장할 수 있는 문자열은 nvarchar(1)로도 저장이 가능합니다. 그러나 nvarchar(1)로 사용하는 경우는 별로 없습니다. 이는 nchar가 데이터의 일관성과 무결성을 유지하는데 더 적합하기 때문이 아닐까 싶습니다.

 

예를 들어, 국가 코드나 성별이 들어가는 컬럼에 nchar를 적용하기 좋습니다.

CREATE TABLE Users (
    UserID int PRIMARY KEY,
    FirstName nvarchar(50),
    LastName nvarchar(50),
    CountryCode nchar(2), -- 2자리 국가 코드 (예: US, KR, JP 등)
    GenderCode nchar(1)   -- 성별 코드 (예: M = 남성, F = 여성)
);

 

또 이렇게 nchar을 사용하는 경우 해당 컬럼이 어떤 목적을 가지고 있고, 어떤 형태로 저장되는지 쉽게 유추할 수 있습니다.

반응형

댓글

Designed by JB FACTORY