23.2. 메이저 토토 사이트 Support#

메이저 토토 사이트 Feature를 사용하면 CORNT ORDER 및 문자 분류 동작을 열 당 또는 수술별로 지정할 수 있습니다. 이것은의 제한을 완화합니다.LC_COLLATEandLC_CTYPE생성 후에 데이터베이스 설정을 변경할 수 없습니다.

23.2.1. 개념#

개념적으로, Collatable 데이터 유형의 모든 표현에는 메이저 토토 사이트이 있습니다. (내장 된 Collatable 데이터 유형은입니다.텍스트, Varcharchar. 사용자 정의 기본 유형은 또한 Collatable으로 표시 될 수 있으며 물론 A도메인Collatable Data 유형을 통과 할 수 있습니다.) 표현식이 열 참조 인 경우 표현식의 정의 된 컬럼입니다. 표현식이 상수 인 경우, 메이저 토토 사이트은 상수의 데이터 유형의 기본 체계입니다. 보다 복잡한 표현의 협업은 아래에 설명 된 바와 같이 입력의 콜로레이션에서 파생됩니다.

표현의 협업은가 될 수 있습니다.기본메이저 토토 사이트, 이는 데이터베이스에 정의 된 로케일 설정을 의미합니다. 표현의 협업이 불확실해질 수도 있습니다. 그러한 경우, 주문 운영 및 콜라이트를 알아야하는 기타 작업이 실패 할 것입니다.

데이터베이스 시스템이 순서 또는 문자 분류를 수행 해야하는 경우 입력 표현식의 충돌을 사용합니다. 예를 들어와 같은 이런 일이 발생합니다.주문조항 및 기능 또는 연산자 호출<. 신청을위한 콜레이션주문 by절은 단순히 정렬 키의 충돌입니다. 기능 또는 연산자 호출을 신청하기위한 콜레이션은 아래에 설명 된대로 인수에서 파생됩니다. 비교 연산자 외에도 콜라이트는 하위 및 대문자로 변환하는 기능으로를 고려합니다.Lower, 어퍼Initcap; 패턴 일치 연산자로; 그리고 byto_char및 관련 기능.

함수 또는 연산자 호출의 경우, 인수 콜라주를 검사하여 도출 된 메이저 토토 사이트은 지정된 작업을 수행하기 위해 실행 시간에 사용됩니다. 함수 또는 운영자 호출의 결과가 Collatable Data 유형 인 경우, 메이저 토토 사이트에 대한 지식이 필요한 주변 표현식이있는 경우 기능 또는 연산자 표현식의 정의 된 메이저 토토 사이트으로 구문 분석 시간에도 콜레이션이 사용됩니다..

the메이저 토토 사이트 Devation표현식은 암시 적이거나 명시적일 수 있습니다. 이 차이점은 여러 다른 콜라이트가 표현식에 나타날 때 콜라주가 결합되는 방식에 영향을 미칩니다. 명시 적 콜레이션 파생은 A가 발생합니다.Collate조항이 사용됩니다. 다른 모든 Collation 파생물은 암시 적입니다. 예를 들어 함수 호출에서 여러 콜라주를 결합 해야하는 경우 다음 규칙이 사용됩니다.

  1. 입력 표현식에 명시 적 콜레이션 도출이있는 경우 입력 표현식 간의 모든 명시 적으로 도출 된 콜라주가 동일해야합니다. 그렇지 않으면 오류가 발생해야합니다. 명시 적으로 파생 된 협업이 존재하는 경우, 이는 메이저 토토 사이트 조합의 결과입니다.

  2. 그렇지 않으면 모든 입력 표현식은 동일한 암시 적 콜레이션 파생 또는 기본 콜레이션을 가져야합니다. 비 디폴트 콜레이션이있는 경우, 이는 Collation 조합의 결과입니다. 그렇지 않으면 결과는 기본 Collation입니다.

  3. 입력 표현식간에 비 분리 암시 적 콜라주가 충돌하는 경우 조합은 불확실한 협업을 갖는 것으로 간주됩니다. 호출되는 특정 함수가 적용 해야하는 콜라이트에 대한 지식이 필요하지 않는 한 오류 조건이 아닙니다. 그렇다면 런타임에 오류가 발생합니다.

예를 들어이 표 정의를 고려하십시오 :

테이블 생성 테스트 1 (
    텍스트는 "de_de",
    b 텍스트가 "es_es"를 수집하고
    ...
);

in

test1에서 < 'foo'를 선택하십시오.

the<비교는에 따라 수행됩니다.de_de규칙. 표현식은 암시 적으로 파생 된 Collation과 기본 충돌을 결합하기 때문입니다. 그러나에서

a <( 'foo'collate "fr_fr")에서 test1; 선택

비교는를 사용하여 수행됩니다.FR_FR규칙, 명시 적 콜레이션 파생이 암시 적 수정을 무시하기 때문입니다. 또한 주어진

test1에서 <b를 선택하십시오;

파서는 이후에 적용 할 콜라이트를 결정할 수 없습니다aandB열에는 암시 적 콜라이트가 상충됩니다. 이후로<운영자는 어떤 콜라이트를 사용할지 알아야합니다. 이로 인해 오류가 발생합니다. 명시적인 메이저 토토 사이트 지정자를 입력 표현식에 첨부하여 오류를 해결할 수 있습니다.

a <b collate "de_de"에서 test1; 선택

또는 동등하게

A a Collate "de_de"<b from test1;

반면에 구조적으로 유사한 경우

a ||를 선택하십시오 b test1;

이기 때문에 오류가 발생하지 않습니다.||운영자는 메이저 토토 사이트에 관심이 없습니다 : 결과는 콜레이션에 관계없이 동일합니다.

함수 또는 연산자의 결합 된 입력 표현식에 할당 된 콜레이션은 함수 또는 연산자가 Collatable 데이터 유형의 결과를 전달하는 경우 기능 또는 연산자의 결과에 적용되는 것으로 간주됩니다. 그래서에서

a ||에서 test1 주문 * 선택 * 'foo';

주문은에 따라 수행됩니다.de_de규칙. 하지만이 질문 :

a ||의 test1 주문 * 선택 * 비;

오류가 발생합니다.||운영자는 메이저 토토 사이트, The를 알 필요가 없습니다.주문 by조항. 이전과 마찬가지로, 분쟁은 명백한 Collation 지정자로 해결 될 수 있습니다.

선택 *에서 test1 주문에서 || b "fr_fr"; Collate

23.2.2. 콜라주 관리#

메이저 토토 사이트은 운영 체제에 설치된 라이브러리가 제공하는 로케일에 SQL 이름을 매핑하는 SQL 스키마 객체입니다. 메이저 토토 사이트 정의에는가 있습니다.제공자로케일 데이터를 공급하는 라이브러리를 지정합니다. 하나의 표준 제공자 이름은입니다.libc, 운영 체제 C 라이브러리가 제공하는 로케일을 사용합니다. 이들은 운영 체제에서 제공하는 대부분의 도구에서 사용하는 로케일입니다. 다른 제공자는ICU, 외부 ICU를 사용하는라이브러리. ICU 로케일은 PostgreSQL을 구축 할 때 ICU에 대한 지원이 구성된 경우에만 사용할 수 있습니다.

메이저 토토 사이트 객체가 제공 한LIBClc_collateandLC_CTYPE설정,.setLocale ()시스템 라이브러리 호출. (이름에서 알 수 있듯이, 콜레이션의 주요 목적은 설정하는 것입니다LC_COLLATE, 정렬 순서를 제어합니다. 그러나 실제로는 거의 필요하지 않습니다.LC_CTYPE다른 설정lc_collate, 따라서 설정을위한 다른 인프라를 만드는 것보다 하나의 개념으로 이러한 개념을 수집하는 것이 더 편리합니다LC_CTYPE표현 당.) 또한 alibc메이저 토토 사이트은 캐릭터 세트 인코딩에 묶여 있습니다 (참조PostgreSQL : 문서 : 17 : 23.3. 캐릭터 롤 토토 지원). 다른 인코딩에 대해 동일한 메이저 토토 사이트 이름이 존재할 수 있습니다.

메이저 토토 사이트 Object에서 제공하는ICUICU 라이브러리에서 제공하는 명명 된 Collator에지도. ICU는 별도의 지원을 지원하지 않습니다CollateandCTYPE설정이므로 항상 동일합니다. 또한 ICU 콜라주는 인코딩과 무관하므로 데이터베이스에는 항상 주어진 이름의 ICU 콜레이션 만 있습니다.

23.2.2.1. 표준 콜라주#

모든 플랫폼에서 다음 콜로레이션이 지원됩니다.

유니 코드

이 SQL 표준 Collation은 Default Unicode Collation 요소 테이블과 함께 Unicode Collation 알고리즘을 사용하여 정렬됩니다. 모든 인코딩에서 사용할 수 있습니다. 이 협업을 사용하려면 ICU 지원이 필요하며 Postgres가 다른 버전의 ICU로 구축 된 경우 동작이 변경 될 수 있습니다. (이 콜레이션은 ICU 루트 로케일과 동일한 동작을 가지고 있습니다. 참조UND-X-ICU(for정의되지 않은).)

UCS_BASIC

이 SQL 표준 Collation은 자연어 순서 대신 유니 코드 코드 포인트 값을 사용하여 정렬됩니다.athroughZ는 편지로 취급됩니다. 동작은 모든 버전에서 효율적이고 안정적입니다. 인코딩에만 사용 가능UTF8. (이 콜레이션은 LIBC 로케일 사양과 동일한 동작을 가지고 있습니다CinUTF8인코딩.)

PG_C_UTF8

이 Collation은 자연어 순서 대신 유니 코드 코드 포인트 값별로 정렬됩니다. 기능Lower, initcap어퍼, 유니 코드 간단한 케이스 매핑을 사용합니다. 패턴 매칭 (일반 표현식 포함)의 경우, 유니 코드의 POSIX 호환 변형을 사용합니다호환성 속성. 행동은 a 내에서 효율적이고 안정적입니다.Postgres주요 버전. 이 콜레이션은 인코딩에만 사용할 수 있습니다UTF8.

C(동등한posix)

theCandposix메이저 토토 사이트s는 기반입니다.전통적인 C행동. 자연어 순서보다는 바이트 값으로 정렬하고 ASCII 편지 만athroughZ편지로 취급됩니다. 주어진 데이터베이스 인코딩에 대해 동작은 모든 버전에서 효율적이고 안정적이지만 동작은 데이터베이스 인코딩마다 다를 수 있습니다.

기본값

the기본값메이저 토토 사이트 데이터베이스 생성 시간에 지정된 로케일을 선택합니다.

운영 체제 지원에 따라 추가 콜로레이션을 사용할 수 있습니다. 이러한 추가 콜라주의 효율성과 안정성은 Collation 제공자, 제공자 버전 및 로케일에 따라 다릅니다.

23.2.2.2. 사전 정의 된 콜라주#

운영 체제가 단일 프로그램 내에서 여러 로케일을 사용하도록 지원하는 경우 (Newlocale및 관련 함수) 또는 ICU에 대한 지원이 구성되면 데이터베이스 클러스터가 초기화되면initdb시스템 카탈로그를 채 웁니다PG_메이저 토토 사이트당시 운영 체제에서 찾은 모든 지역을 기반으로 한 콜라이트와 함께

현재 사용 가능한 로케일을 검사하려면 쿼리를 사용하십시오선택 *에서 pg_메이저 토토 사이트또는 명령\ dos+inPSQL.

23.2.2.2.1. LIBC 콜라이트#

예를 들어, 운영 체제는 이름이 지정된 로케일을 제공 할 수 있습니다.de_de.utf8. initdb그런 다음 콜로레이션을 작성합니다de_de.utf8인코딩 용UTF8두 가지 모두LC_COLLATEandLC_CTYPE설정de_de.utf8. 또한와의 콜레이션도 생성 할 것입니다..utf8태그 이름을 제거했습니다. 그래서 당신은 또한 이름으로 콜레이션을 사용할 수 있습니다de_de, 글을 쓰는 것이 덜 번거롭고 이름을 인코딩 의존적으로 덜 만듭니다. 그럼에도 불구하고 초기 콜레이션 이름 세트는 플랫폼 의존적입니다.

|LIBC운영 체제에 설치된 로케일에 직접지도를 작성하여 명령을 사용하여 나열 할 수 있습니다로케일 -A. 경우 ALIBC값이 다른 값이 필요합니다LC_COLLATEandLC_CTYPE또는 데이터베이스 시스템이 초기화 된 후 운영 체제에 새 로컬이 설치되면를 사용하여 새로운 콜레이션을 만들 수 있습니다.콜라이트 만들기명령. 새로운 운영 체제 로케일은를 사용하여 대량으로 가져올 수 있습니다.pg_import_system_메이저 토토 사이트s ()기능.

특정 데이터베이스 내에서 해당 데이터베이스의 인코딩을 사용하는 콜로레이션 만 관심이 있습니다. 의 다른 항목PG_메이저 토토 사이트무시됩니다. 따라서와 같은 제거 된 콜라이트 이름de_de는 전 세계적으로 고유하지 않더라도 주어진 데이터베이스 내에서 고유 한 것으로 간주 될 수 있습니다. 박탈 된 콜레이션 이름을 사용하는 것이 좋습니다. 다른 데이터베이스 인코딩으로 변경하기로 결정한 경우 변경해야 할 것이 하나 더 적기 때문입니다. 그러나기본값, Cposix데이터베이스 인코딩에 관계없이 메이저 토토 사이트s를 사용할 수 있습니다.

PostgreSQL동일한 속성이있는 경우에도 뚜렷한 콜레이션 객체를 호환되지 않는 것으로 간주합니다. 예를 들어,

A A Collate "C"<B Collate "Posix"에서 Test1;

에도 불구하고 오류가 발생합니다.Candposix메이저 토토 사이트s는 동일한 동작을 가지고 있습니다. 믹싱 스트리핑 및 스트립이없는 콜라이트 이름은 권장되지 않습니다.

23.2.2.2.2. ICU 콜라주#

ICU를 사용하면 가능한 모든 로케일 이름을 열거하는 것이 합리적이지 않습니다. ICU는 로케일에 특정 이름 지정 시스템을 사용하지만 실제로 별개의 로케일보다 로케일의 이름을 지정하는 더 많은 방법이 있습니다.initdbICU API를 사용하여 초기 콜라이트 세트를 채우기 위해 별개의 로케일 세트를 추출합니다. ICU가 제공하는 콜라이트는 SQL 환경에서 BCP 47 언어 태그 형식의 이름을 가진 SQL 환경에서 생성됩니다.개인 사용확장-X-ICULIBC 지역과 구별하기 위해 추가되었습니다.

다음은 작성 될 수있는 몇 가지 예제입니다.

de-x-icu #

독일어 콜레이션, 기본 변형

de-at-x-icu #

오스트리아 독일 콜라이트, 기본 변형

(또한,de-de-x-icu또는de-ch-x-icu, 그러나이 글을 쓰는 시점에서 그들은와 같습니다.de-x-icu.)

UND-X-ICU(for정의되지 않은) #

ICU루트메이저 토토 사이트. 이것을 사용하여 합리적인 언어에 대한 정렬 순서를 얻으십시오.

일부 (덜 자주 사용되는) 인코딩은 ICU에 의해 지원되지 않습니다. 데이터베이스 인코딩이 이러한 중 하나 인 경우 ICU Collation 항목 중 하나입니다.PG_메이저 토토 사이트무시됩니다. 하나를 사용하려고 시도하면 라인을 따라 오류가 발생합니다."win874"를 인코딩하기위한 "de-x-icu"는 존재하지 않습니다.

23.2.2.3. 새로운 메이저 토토 사이트 Objects 만들기#

표준 및 사전 정의 된 콜라이트가 충분하지 않은 경우 사용자는 SQL 명령을 사용하여 고유 한 콜레이션 객체를 만들 수 있습니다콜라이트 만들기.

표준 및 사전 정의 된 콜라주는 스키마에 있습니다PG_CATALOG, 모든 사전 정의 된 객체와 마찬가지로. 사용자 정의 콜라이트는 사용자 스키마에서 작성해야합니다. 이것은 또한 그들이에 의해 저장되도록 보장합니다.pg_dump.

23.2.2.3.1. LIBC 콜라이트#

새로운 LIBC 콜라이트를 만들 수 있습니다.

Complation German (제공자 = libc, locale = 'de_de');

로케일이 명령의 절은 운영 체제에 따라 다릅니다. 유닉스와 같은 시스템에서 명령로케일 -A목록을 표시합니다.

사전 정의 된 LIBC 콜라주는 이미 데이터베이스 인스턴스가 초기화 될 때 운영 체제에 정의 된 모든 콜라이트를 이미 포함하므로 새 제품을 수동으로 만들 필요는 없습니다. 다른 명명 시스템이 원하는 경우 이유가있을 수 있습니다 (이 경우 참조섹션 23.2.2.3.3) 또는 운영 체제가 새로운 로케일 정의를 제공하기 위해 업그레이드 된 경우 (이 경우 참조pg_import_system_메이저 토토 사이트s ()).

23.2.2.3.2. ICU 콜라주#

ICU 콜라이트는 다음과 같이 만들 수 있습니다.

Conection Collation German (제공자 = ICU, locale = 'de-de');

ICU 로컬은 BCP 47으로 지정됩니다.언어 태그이지만 대부분의 LIBC 스타일 로케일 이름을 허용 할 수도 있습니다. 가능하면 LIBC 스타일 로케일 이름이 언어 태그로 변환됩니다.

새로운 ICU 콜레이션은 언어 태그에 Collation 속성을 포함시킴으로써 Collation 동작을 광범위하게 사용자 정의 할 수 있습니다. 보다섹션 23.2.3세부 사항 및 예제.

23.2.2.3.3. 콜라주 복사#

명령콜라이트 만들기는 또한 기존 콜레이션에서 새로운 콜레이션을 만드는 데 사용될 수 있으며, 이는 응용 프로그램에서 운영-시스템 독립적 인 Collation 이름을 사용하거나 호환성 이름을 작성하거나보다 읽기 쉬운 이름으로 ICU- 처리 된 Collation을 사용할 수있는 데 유용 할 수 있습니다. 예를 들어:

"de_de"에서 Collation German을 작성합니다.
"FR-X-ICU"에서 프랑스어 Collation French 만들기;

23.2.2.4. 비 결정적 콜라이트#

콜레이션은결정 론또는비 결정적. 결정 론적 협력은 결정 론적 비교를 사용합니다. 즉, 문자열이 동일한 바이트 시퀀스로 구성된 경우에만 문자열이 동일하다고 간주합니다. 비 결정적 비교는 다른 바이트로 구성 되더라도 문자열이 동일하다고 결정할 수 있습니다. 전형적인 상황에는 사례에 민감한 비교, 악센트 불균형 비교, 다른 유니 코드 정상 형태의 문자열 비교가 포함됩니다. 이러한 무감각 한 비교를 실제로 구현하는 것은 Collation 제공자에게 달려 있습니다. 결정 론적 플래그는 바이트 와이즈 비교를 사용하여 유대를 깨뜨릴지 여부 만 결정합니다. 참조 참조유니 코드 기술 표준 10용어에 대한 자세한 내용은

비 결정적 협력을 만들려면 속성을 지정합니다결정 론적 = 거짓to콜라이트 만들기, 예 :

CLEATE COLLATION NDCOLL (제공자 = ICU, locale = 'und', dectiinistic = false);

이 예제는 표준 유니 코드 콜레이션을 비 결정적 방식으로 사용합니다. 특히, 이것은 다른 정상 형태의 문자열을 올바르게 비교할 수있게한다. 더 흥미로운 예는 위에서 설명한 ICU 사용자 정의 시설을 사용합니다. 예를 들어:

COLLATION CASE_INSENSENSTIVE 생성 (제공자 = ICU, locale = 'und-u-ks-level2', dectinistic = false);
collation excents 만들기 ingore_accents (provider = icu, locale = 'und-u-ks-level1-kc-true', degeministic = false);

모든 표준 및 사전 정의 된 콜라이트는 결정적이며 모든 사용자 정의 콜라주는 기본적으로 결정적입니다. 비 결정적 콜라테이션은 더 많은 것을 제공하는 동안정확한행동, 특히 유니 코드의 전체 힘과 많은 특별한 경우를 고려할 때도 몇 가지 단점이 있습니다. 가장 중요하게도, 그들의 사용은 성과 페널티로 이어집니다. 특히, B-Tree는 비 결정적 협력을 사용하는 인덱스와 중간선을 사용할 수 없음을 주목하십시오. 또한 패턴 일치 작업과 같은 비 결정적 콜라주에서는 특정 작업이 불가능합니다. 따라서 구체적으로 원하는 경우에만 사용해야합니다.

다른 유니 코드 정규화 양식에서 텍스트를 처리하려면 함수/표현식을 사용하는 옵션이기도합니다정상화and정규화비 결정적 콜라주를 사용하는 대신 문자열을 사전 처리하거나 확인합니다. 각 접근 방식마다 다른 트레이드 오프가 있습니다.

23.2.3. ICU Custom Collations#

ICU는 언어 태그의 일부로 Collation 설정을 사용하여 새로운 콜라주를 정의하여 Collation 동작을 광범위하게 제어 할 수 있습니다. 이러한 설정은 다양한 요구에 맞게 Collation Order를 수정할 수 있습니다. 예를 들어:

- 악센트와 사례의 차이를 무시하십시오
collation ingore_accent_case를 만들기 (제공자 = icu, deginisotic = false, locale = 'und-u-ks-level1');
'Å'= 'a'를 선택하여 ingore_accent_case; -- 진실
'z'= 'z'select ingore_accent_case; -- 진실

- 대문자 문자는 소문자 전에 정렬됩니다.
collation collation toppor_first 만들기 (제공자 = ICU, locale = 'und-u-kf-upper');
'b'< 'b'를 선택하십시오. -- 진실

- 숫자를 수치 적으로 취급하고 구두점을 무시하십시오
collation num_ignore_punct를 작성합니다 (제공자 = ICU, dectionistic = false, locale = 'und-u-ka-shifted-kn');
'id-45'< 'id-123'을 선택하여 num_ignore_punct; -- 진실
'w; x*y-z'= 'wxyz'collate num_ignore_punct를 선택하십시오. -- 진실

사용 가능한 많은 옵션이에 설명되어 있습니다.섹션 23.2.3.2또는 참조섹션 23.2.3.5자세한 내용은

23.2.3.1. ICU 비교 수준#

ICU에서 두 줄 (Collation) 비교는 텍스트 기능이 "레벨"으로 그룹화되는 다단계 프로세스에 의해 결정됩니다. 각 레벨의 처리는에 의해 제어됩니다.Collation 설정. 높은 레벨은 더 미세한 텍스트 특징에 해당합니다.

표 23.1주어진 수준에서 평등을 결정할 때 어떤 텍스트 기능 차이가 중요한지를 보여줍니다. 유니 코드 문자U+2063는 보이지 않는 분리기이며 테이블에서 볼 수 있듯이 모든 수준의 비교에서 무시됩니다.identic.

표 23.1. ICU Collation 레벨

레벨 설명 'f'= 'f' 'ab'= u & 'a \ 2063b' 'x-y'= 'x_y' 'g'= 'g' 'n'= 'ñ' 'y'= 'z'
level1 기본 문자 true true true true true 거짓
level2 악센트 True true true true 거짓 거짓
level3 케이스/변형 true true true 거짓 거짓 거짓
level4 구두점[A] True true false 거짓 거짓 거짓
identic all true 거짓 거짓 거짓 거짓 거짓

[A]ka-shifted; 보다표 23.2


모든 레벨에서 최대 정규화가 꺼져 있어도 기본 정규화가 수행됩니다. 예를 들어,'Á'코드 포인트로 구성 될 수 있습니다U & '\ 0061 \ 0301'또는 단일 코드 포인트U & '\ 00e1', 그리고 해당 시퀀스는에서도 동일하게 간주됩니다.identic레벨. 코드 포인트 표현의 차이를 뚜렷하게 취급하려면와 함께 생성 된 콜레이션을 사용하십시오.결정 론설정true.

23.2.3.1.1. 메이저 토토 사이트 Level 예제#
CLEATE COLLATION LEVEL3 (제공자 = ICU, 결정 론적 = 거짓, locale = 'und-u-ka-shifted-k-level3');
Collation Level4 (제공자 = ICU, Decentistic = false, locale = 'und-u-ka-shifted-k-level4');
Collation Identic 작성 (제공자 = ICU, Decentistic = False, Locale = 'und-u-ka-shifted-ks-identic');

- 보이지 않는 분리기는 동일성을 제외한 모든 수준에서 무시됩니다
'ab'= u & 'a \ 2063b'를 선택하십시오. collate level4; -- 진실
'ab'= u & 'a \ 2063b'를 선택하십시오. -- 거짓

- 구두점은 레벨 3에서 무시되지만 레벨 4에서는 그렇지 않습니다.
'x-y'= 'x_y'collate level3; -- 진실
'x-y'= 'x_y'collate level4를 선택하십시오. -- 거짓

23.2.3.2. ICU 로케일에 대한 콜레이션 설정#

표 23.246443_46555

표 23.2. ICU Collation 설정

기본값 설명
CO 이모 지, PhoneBK, 표준, ... 표준 메이저 토토 사이트 유형. 보다섹션 23.2.3.5추가 옵션 및 세부 사항은
KA Noignore, 시프트 Noignore 로 설정된 경우시프트, 일부 문자 (예 : 구두점 또는 공간)가 비교하여 무시됩니다. 열쇠KS로 설정해야합니다level3또는 낮은 발효. 키 설정KV어떤 캐릭터 클래스가 무시되는지 제어합니다.
KB true, 거짓 거짓 레벨 2 차이에 대한 뒤로 비교. 예를 들어 Localeund-u-kb정렬'àe''aé'.
KC true, 거짓 거짓

악센트와 다른 레벨 3 기능 사이에있는 "레벨 2.5"로 케이스를 분리합니다.

설정된 경우trueandKSlevel1, 악센트를 무시하지만 사례를 고려하십시오.

KF 어퍼, Lower, 거짓 거짓 로 설정된 경우어퍼, 소문자 이전의 상류 정렬. 로 설정된 경우Lower, 대문자 전의 소문자 정렬. 로 설정된 경우false, 정렬은 로케일의 규칙에 따라 다릅니다.
KN true, false false 로 설정된 경우true, 문자열 내의 숫자는 일련의 숫자가 아닌 단일 숫자 값으로 취급됩니다. 예를 들어,'ID-45'전 정렬'ID-123'.
KK true, false false

완전 정규화 활성화; 성능에 영향을 줄 수 있습니다. 기본 정규화는로 설정된 경우에도 수행됩니다.거짓. 전체 정규화가 필요한 언어의 로케일은 일반적으로 기본적으로이를 가능하게합니다.

완전 정규화는 여러 개의 악센트가 단일 문자에 적용될 때와 같은 경우에도 중요합니다. 예를 들어, 코드 포인트 시퀀스U & '\ 0065 \ 0323 \ 0302'andU & '\ 0065 \ 0302 \ 0323'대표E다른 순서로 적용되는 CILLCFLEX 및 DOT-BELOW 액센트가 포함되어 있습니다. 완전 정규화로, 이들 코드 포인트 시퀀스는 동일하게 취급된다; 그렇지 않으면 그들은 불평등합니다.

KR Space, PANCT, 기호, Currency, DIGIT, script-id

유효한 값 중 하나 이상 또는 BCP 47로 설정script-id, 예 :latn( "라틴") 또는Grek( "그리스"). 여러 값이 "로 분리됩니다.-".

문자 클래스의 순서를 재정의합니다. 목록의 이전에 클래스에 속한 캐릭터는 목록의 나중에 클래스에 속하는 문자 앞에 정렬됩니다. 예를 들어, 값Digit-Currency 공간(언어 태그와 같은의 일부로und-u-kr 자리 -Currency 공간) 숫자와 공백 전에 구두점을 정렬합니다.

KS level1, level2, level3, level4, identic level3 평등을 결정할 때 감도 (또는 "강도"),level1차이에 가장 민감한 것과identic차이에 가장 민감합니다. 보다표 23.1자세한 내용.
KV Space, PANCT, 기호, Currency PANCT 레벨 3에서 비교 중에 무시되는 문자 클래스. 이후 값으로 설정하는 데는 이전 값이 포함됩니다. 예 :기호또한 포함PANCTSpace무시할 문자에서. 열쇠KA로 설정해야합니다시프트및 키KS로 설정해야합니다level3또는 적용 할 수 있습니다.

기본값은 로케일에 따라 다를 수 있습니다. 위의 표는 완료되지 않습니다. 보다섹션 23.2.3.5추가 옵션 및 세부 사항은

Note

많은 Collation 설정의 경우와 함께 Collation을 만들어야합니다.결정 론설정거짓원하는 효과가있는 설정 (참조섹션 23.2.2.4). 또한 일부 설정은 키 일 때만 적용됩니다KA시프트(참조표 23.2).

23.2.3.3. Collation 설정 예#

CONTE COLLATION "de-u-co-phonebk-x-icu"(제공자 = ICU, locale = 'de-u-co-phonebk'); #

Phone Book 메이저 토토 사이트 유형과 독일어 콜라이트

"und-u-co-emoji-x-icu"(제공자 = ICU, locale = 'und-u-co-emoji'); #

유니 코드 기술 표준 #51 당 이모티콘 콜레이션 유형과의 루트 콜레이션

collation latinlast 만들기 (제공자 = ICU, locale = 'en-u-kr-grek-latn'); #

라틴어 편지 앞에 그리스 문자를 정렬하십시오. (기본값은 그리스 전 라틴어입니다.)

Collation Collation Collation Upperfirst (제공자 = ICU, locale = 'en-u-kf-upper'); #

소문자 문자 앞에서 상단 문자를 정렬하십시오. (기본값은 먼저 소문자 문자입니다.)

CREATE COLLATION SPECICAL (제공자 = ICU, locale = 'en-u-kf-upper-kr-grek-latn'); #

위의 옵션을 모두 결합합니다.

23.2.3.4. ICU 재단 규칙#

위에 표시된 Collation 설정에서 제공 한 옵션이 충분하지 않은 경우, 조정 규칙으로 콜레이션 요소의 순서를 변경할 수 있으며, 그의 구문이 자세히 설명되어 있습니다https : //unicode-org.github.io/icu/userguide/메이저 토토 사이트/customization/.

이 작은 예제는 재단 규칙이있는 루트 로케일을 기반으로 한 콜레이션을 만듭니다.

CLEATE COLLATION CUSTOM (Provider = ICU, locale = 'und', Rules = '& V << W <<< W');

이 규칙을 사용하여 편지W이후에 정렬됩니다V, 그러나 악센트와 유사한 2 차 차이로 취급됩니다. 이와 같은 규칙은 일부 언어의 로케일 정의에 포함되어 있습니다. (물론 로케일 정의에 이미 원하는 규칙이 포함되어 있다면 다시 명시 적으로 지정할 필요가 없습니다.)

여기 더 복잡한 예가 있습니다. 다음 진술은라는 Collation을 설정합니다.EBCDICEBCDIC 인코딩 순서대로 us-ASCII 문자를 정렬하는 규칙이 포함되어 있습니다.

collation ebcdic 만들기 (제공자 = ICU, locale = 'und',
규칙 = $$
& ''< '.' < '<'< '('< '+'<\ |
< '&'< '!' < '$'< '*'< ')'< ';'
< '-'< '/'< ','< '%'< '_'<' '<'< '?'
< '`' '<': '<'#'<'@'<\'< '='< '' " '
<*a-r < '~'<*s-z < '^'< '['< ']' '
< ''<*a-i < ''<*j-r < '\'<*s-z <*0-9
$$);

C를 선택하십시오
(값 ( 'a'), ( 'b'), ( 'a'), ( 'b'), ( '1'), ( '2'), ( '!'), ( '^')))) as x (c).
c의 주문 ebcdic;
 기음
---
 !
 에이
 비
 ^
 에이
 비
 1
 2

23.2.3.5. ICU에 대한 외부 참조#

이 섹션 (섹션 23.2.3)는 ICU 동작 및 언어 태그에 대한 간단한 개요 일뿐입니다. 기술 세부 사항, 추가 옵션 및 새로운 행동은 다음 문서를 참조하십시오.

수정 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면