MSSQL, nvarchar와 nchar 차이
- Database
- 2023. 4. 10.
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을 사용하는 경우 해당 컬럼이 어떤 목적을 가지고 있고, 어떤 형태로 저장되는지 쉽게 유추할 수 있습니다.
반응형
'Database' 카테고리의 다른 글
JDBC란? (ojdbc, mysql-connector, mssql-jdbc) (0) | 2023.04.11 |
---|---|
MSSQL, 비클러스터형 인덱스 만드는 방법 (0) | 2023.04.10 |
MSSQL, nvarchar(max) 사용하는 이유 (0) | 2023.04.10 |
오라클, 소유자가 아닌 테이블 조회 (스키마) (0) | 2023.04.06 |
오라클, dual 테이블이란? (0) | 2023.04.05 |