Microsoft SQL Server의 데이터 정렬 및 문자 세트
이 주제에서는 Amazon RDS에서 Microsoft SQL Server의 데이터 정렬 및 문자 세트를 관리하는 방법에 대한 지침을 제공합니다. 데이터베이스 생성 중에 데이터 정렬을 구성하고 나중에 수정하여 언어 및 로캘 요구 사항에 따라 텍스트 데이터를 적절하게 처리하는 방법을 설명합니다. 또한 Amazon RDS의 SQL Server 환경에서 호환성 및 성능을 유지하기 위한 모범 사례를 다룹니다.
SQL Server는 여러 수준에서 콜레이션을 지원합니다. DB 인스턴스를 생성할 때 기본 서버 콜레이션을 설정합니다. 데이터베이스, 테이블 또는 열 수준에서 콜레이션을 재정의할 수 있습니다.
Microsoft SQL Server의 서버 수준 콜레이션
Microsoft SQL Server DB 인스턴스를 생성할 때 사용하려는 서버 콜레이션을 설정할 수 있습니다. 다른 콜레이션을 선택하지 않으면 서버 수준 콜레이션이 SQL_Latin1_General_CP1_CI_AS으로 기본 설정됩니다. 모든 데이터베이스 및 데이터베이스 객체에 서버 콜레이션이 기본적으로 적용됩니다.
참고
DB 스냅샷에서 복원할 때 데이터 정렬을 변경할 수 없습니다.
현재 Amazon RDS에서는 다음과 같은 서버 콜레이션을 지원합니다.
콜레이션 | 설명 |
---|---|
Arabic_CI_AS |
아랍어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Chinese_PRC_BIN2 |
중국어-중화인민공화국어, 이진 코드 포인트 비교 정렬 |
Chinese_PRC_CI_AS |
중국어-중화인민공화국어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Chinese_Taiwan_Stroke_CI_AS |
중국어-대만어-스트로크, 소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Danish_Norwegian_CI_AS |
덴마크어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Finnish_Swedish_CI_AS |
핀란드어, 스웨덴어, 스웨덴어(핀란드), 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
French_CI_AS |
프랑스어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Hebrew_BIN |
히브리어, 이진 정렬 |
Hebrew_CI_AS |
히브리어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Japanese_BIN |
일본어, 이진 정렬 |
Japanese_CI_AS |
일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Japanese_CS_AS |
일본어, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Japanese_XJIS_140_CI_AS |
일본어, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 |
Japanese_XJIS_140_CI_AS_KS_VSS |
일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 |
Japanese_XJIS_140_CI_AS_VSS |
일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 |
일본어_XJIS_140_CS_AS_KS_WS |
일본어, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 |
Korean_Wansung_CI_AS |
한국어-완성형, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Latin1_General_100_BIN |
라틴어1-일반-100, 이진 정렬 |
Latin1_General_100_BIN2 |
라틴어1-일반-100, 이진 코드 포인트 비교 정렬 |
Latin1_General_100_BIN2_UTF8 |
Latin1-General-100, 이진 코드 포인트 비교 정렬, UTF-8 인코딩 |
Latin1_General_100_CI_AS |
라틴어1-일반-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Latin1_General_100_CI_AS_SC_UTF8 |
Latin1-General-100, 대소문자 비구분, 액센트 구분, 보조 문자, UTF-8 인코딩 |
Latin1_General_BIN |
라틴어1-일반, 이진 정렬 |
Latin1_General_BIN2 |
라틴어1-일반, 이진 코드 포인트 비교 정렬 |
Latin1_General_CI_AI |
라틴어1-일반, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 |
Latin1_General_CI_AS |
라틴어1-일반, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Latin1_General_CI_AS_KS |
라틴어1-일반, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 |
Latin1_General_CS_AS |
라틴어1-일반, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Modern_Spanish_CI_AS |
현대-스페인어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Polish_CI_AS |
폴란드어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
SQL_1xCompat_CP850_CI_AS |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 49 |
SQL_Latin1_General_CP1_CI_AI |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 54 |
SQL_Latin1_General_CP1_CI_AS(기본값) |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 52 |
SQL_Latin1_General_CP1_CS_AS |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 51 |
SQL_Latin1_General_CP437_CI_AI |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 34 |
SQL_Latin1_General_CP850_BIN |
라틴어1-일반, 유니코드 데이터의 경우 이진 정렬 순서, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 40 |
SQL_Latin1_General_CP850_BIN2 |
라틴어1-일반, 유니코드 데이터의 경우 이진 코드 포인트 비교, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 40 |
SQL_Latin1_General_CP850_CI_AI |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 44 |
SQL_Latin1_General_CP850_CI_AS |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 42 |
SQL_Latin1_General_CP1256_CI_AS |
라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1256의 SQL Server 정렬 순서 146 |
SQL_Latin1_General_CP1255_CS_AS |
Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1255의 SQL Server 정렬 순서 137 |
Thai_CI_AS |
프랑스어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
Turkish_CI_AS |
터키어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 |
콜레이션을 선택하려면 다음을 수행하세요.
-
Amazon RDS 콘솔을 사용하는 경우 새 DB 인스턴스를 생성할 때 Additional configuration(추가 구성)을 선택한 다음 Collation(데이터 정렬) 필드에 데이터 정렬을 입력합니다. 자세한 내용은 Amazon RDS DB 인스턴스 생성 단원을 참조하십시오.
-
AWS CLI를 사용하는 경우
--character-set-name
명령과 함께create-db-instance
옵션을 사용합니다. 자세한 내용은 create-db-instance를 참조하세요. -
Amazon RDS API를 사용하는 경우
CharacterSetName
작업과 함께CreateDBInstance
파라미터를 사용합니다. 자세한 내용은 CreateDBInstance를 참조하세요.
Microsoft SQL Server의 데이터베이스 수준 콜레이션
새로운 데이터베이스 또는 데이터베이스 객체를 생성하면서 데이터 정렬을 무시하면 데이터베이스, 테이블 또는 열을 기준으로 기본 데이터 정렬을 변경할 수도 있습니다. 예를 들어 기본 서버 콜레이션이 SQL_Latin1_General_CP1_CI_AS인 경우, Mohawk 콜레이션 지원을 위해 이를 Mohawk_100_CI_AS로 변경할 수 있습니다. 모든 쿼리 인수는 필요에 따라 타입캐스트를 통해 다른 데이터 정렬을 사용할 수 있습니다.
예를 들어 다음 쿼리는 AccountName 열의 기본 콜레이션을 Japanese_CI_AS로 변경합니다.
CREATE TABLE [dbo].[Account] ( [AccountID] [nvarchar](10) NOT NULL, [AccountName] [nvarchar](100) COLLATE Mohawk_100_CI_AS NOT NULL ) ON [PRIMARY];
Microsoft SQL Server DB 엔진은 기본적인 NCHAR, NVARCHAR 및 NTEXT 데이터 유형에 따라 Unicode를 지원합니다. 이를 테면 CJK 지원이 필요할 경우 문자 스토리지에 이 세 가지 Unicode 데이터 유형을 사용하면 데이터베이스 및 테이블 생성 시 기본 서버 데이터 정렬을 무시할 수 있습니다. SQL Server에 대한 데이터 정렬 및 Unicode 지원을 설명한 Microsoft 링크를 몇 가지 소개합니다.