토토 사이트 기능을 사용하면 CORND 순서 및 문자 분류 동작 또는 개수 별 수술을 지정할 수 있습니다. 이것은의 제한을 완화합니다.LC_COLLATE
및LC_CTYPE
생성 후에 데이터베이스 설정을 변경할 수 없습니다.
개념적으로, Collatable 데이터 유형의 모든 표현에는 토토 사이트이 있습니다. (내장 된 Collatable 데이터 유형은입니다.텍스트
, Varchar
및char
. 사용자 정의 기본 유형은 또한 Collatable으로 표시 될 수 있으며 물론 A도메인Collatable Data 유형을 통과하는 경우는 Collatable입니다.) 표현식이 열 참조 인 경우, 표현식의 정의는 열의 정의 된 정의입니다. 표현식이 상수 인 경우, 토토 사이트은 상수의 데이터 유형의 기본 체계입니다. 보다 복잡한 표현의 협업은 아래에 설명 된 바와 같이 입력의 콜로레이션에서 파생됩니다.
표현의 협업은가 될 수 있습니다.“기본값”토토 사이트, 이는 데이터베이스에 정의 된 로케일 설정을 의미합니다. 표현의 협업이 불확실해질 수도 있습니다. 그러한 경우, 주문 운영 및 콜라이트를 알아야하는 기타 작업이 실패 할 것입니다.
데이터베이스 시스템이 순서 또는 문자 분류를 수행 해야하는 경우 입력 표현식의 충돌을 사용합니다. 예를 들어와 같은 이런 일이 발생합니다.주문 by
조항 및 기능 또는 연산자 호출<
. 신청을위한 콜레이션주문 by
절은 단순히 정렬 키의 충돌입니다. 기능 또는 연산자 호출을 신청하기위한 콜레이션은 아래에 설명 된대로 인수에서 파생됩니다. 비교 연산자 외에도 콜라이트는 하위 및 대문자로 변환하는 기능으로를 고려합니다.Lower
, 어퍼
및initcap
; 패턴 일치 연산자로; 그리고 byto_char
및 관련 기능.
함수 또는 연산자 호출의 경우, 인수 콜라주를 검사하여 도출 된 토토 사이트은 지정된 작업을 수행하기 위해 실행 시간에 사용됩니다. 함수 또는 운영자 호출의 결과가 Collatable Data 유형 인 경우, 토토 사이트에 대한 지식이 필요한 주변 표현식이있는 경우 기능 또는 연산자 표현식의 정의 된 토토 사이트으로 구문 분석 시간에도 콜레이션이 사용됩니다..
the토토 사이트 Devation표현식은 암시 적이거나 명시적일 수 있습니다. 이 차이점은 여러 다른 콜라이트가 표현식에 나타날 때 콜라주가 결합되는 방식에 영향을 미칩니다. 명시 적 콜레이션 파생은 A가 발생합니다.Collate
조항이 사용됩니다. 다른 모든 Collation 파생물은 암시 적입니다. 예를 들어 함수 호출에서 여러 콜라주를 결합 해야하는 경우 다음 규칙이 사용됩니다.
입력 표현식에 명시 적 충전도가 도출 된 경우 입력 표현식 간의 모든 명시 적으로 도출 된 콜라주가 동일해야합니다. 그렇지 않으면 오류가 발생해야합니다. 명시 적으로 파생 된 협업이 존재하는 경우, 이는 토토 사이트 조합의 결과입니다.
그렇지 않으면 모든 입력 표현식은 동일한 암시 적 콜레이션 파생 또는 기본 콜레이션을 가져야합니다. 비 디폴트 콜레이션이있는 경우, 이는 토토 사이트 조합의 결과입니다. 그렇지 않으면 결과는 기본 토토 사이트입니다.
입력 표현식간에 비 분리 암시 적 콜라주가 충돌하는 경우 조합은 불확실한 충돌을 갖는 것으로 간주됩니다. 호출되는 특정 함수가 적용 해야하는 콜라이트에 대한 지식이 필요하지 않는 한 오류 조건이 아닙니다. 그렇다면 런타임에 오류가 발생합니다.
예를 들어이 표 정의를 고려하십시오 :
테이블 생성 테스트 1 ( 텍스트는 "de_de", b 텍스트가 "es_es"를 수집하고 ... );
in
test1에서 < 'foo'를 선택하십시오.
the<
비교는에 따라 수행됩니다.de_de
규칙. 표현식은 암시 적으로 파생 된 토토 사이트과 기본 콜레이션을 결합하기 때문입니다. 그러나에서
a <( 'foo'collate "fr_fr")에서 test1; 선택
비교는를 사용하여 수행됩니다.FR_FR
규칙, 명시 적 콜레이션 파생이 암시 적 수정을 무시하기 때문입니다. 또한 주어진
test1에서 <b를 선택하십시오.
파서는 적용 할 수있는 콜라이트를 결정할 수 없습니다.a
및B
열에는 암시 적 콜라이트가 상충됩니다. 이후로<
운영자는 어떤 콜라이트를 사용할지 알아야합니다. 이로 인해 오류가 발생합니다. 명시적인 토토 사이트 지정자를 입력 표현식에 첨부하여 오류를 해결할 수 있습니다.
a <b Collate "de_de"에서 test1; 선택
또는 동등하게
테스트 1에서 "de_de"<b Collate를 선택하십시오.
반면에 구조적으로 유사한 경우
a ||를 선택하십시오 b test1;
이기 때문에 오류가 발생하지 않습니다.||
운영자는 토토 사이트에 관심이 없습니다 : 결과는 콜라이트에 관계없이 동일합니다.
함수 또는 연산자의 결합 된 입력 표현식에 할당 된 콜레이션은 함수 또는 연산자가 Collatable 데이터 유형의 결과를 전달하는 경우 기능 또는 연산자의 결과에 적용되는 것으로 간주됩니다. 그래서에서
선택 *에서 test1 주문에서 || 'foo';
주문은에 따라 수행됩니다.de_de
규칙. 하지만이 질문 :
a ||의 test1 주문 * 선택 * 비;
오류가 발생하지만.||
운영자는 토토 사이트을 알 필요가 없습니다.주문 by
조항. 이전과 마찬가지로, 분쟁은 명백한 Collation 지정자로 해결 될 수 있습니다.
a ||의 test1 주문 * 선택 * b "fr_fr"; Collate
토토 사이트은 운영 체제에 설치된 라이브러리가 제공하는 로케일에 SQL 이름을 매핑하는 SQL 스키마 객체입니다. 토토 사이트 정의에는가 있습니다.제공자로케일 데이터를 공급하는 라이브러리를 지정합니다. 하나의 표준 제공자 이름은입니다.LIBC
, 운영 체제 C 라이브러리가 제공하는 로케일을 사용합니다. 이들은 운영 체제에서 제공하는 대부분의 도구에서 사용하는 로케일입니다. 다른 제공자는ICU
, 외부 ICU를 사용하는라이브러리. ICU 로케일은 PostgreSQL을 구축 할 때 ICU에 대한 지원이 구성된 경우에만 사용할 수 있습니다.
토토 사이트 객체가 제공하는LIBC
지도의 조합으로의지도LC_COLLATE
andLC_CTYPE
설정,.setLocale ()
시스템 라이브러리 호출. (이름에서 알 수 있듯이, 콜레이션의 주요 목적은 설정하는 것입니다lc_collate
, 정렬 순서를 제어합니다. 그러나 실제로는 거의 필요하지 않습니다.LC_CTYPE
다른 설정LC_COLLATE
, 따라서 설정을위한 다른 인프라를 만드는 것보다 하나의 개념으로 이러한 개념을 수집하는 것이 더 편리합니다LC_CTYPE
표현 당) 또한, alibc
토토 사이트은 캐릭터 세트 인코딩에 묶여 있습니다 (참조토토 사이트 순위 : 문서 : 16 : 24.3. 캐릭터 토토 사이트 순위 지원). 다른 인코딩에 대해 동일한 토토 사이트 이름이 존재할 수 있습니다.
콜레이션 객체에 의해 제공되는ICU
ICU 라이브러리에서 제공하는 명명 된 Collator에지도. ICU는 별도의 지원을 지원하지 않습니다“Collate”and“CTYPE”설정이므로 항상 동일합니다. 또한 ICU 콜라주는 인코딩과 무관하므로 데이터베이스에는 항상 주어진 이름의 ICU 콜레이션 만 있습니다.
모든 플랫폼에서 콜라이트라는 콜라이트기본값
, C
및posix
사용 가능합니다. 운영 체제 지원에 따라 추가 콜로레이션을 사용할 수 있습니다. 그만큼기본값
토토 사이트 선택LC_COLLATE
andLC_CTYPE
데이터베이스 생성 시간에 지정된 값. 그만큼C
andposix
토토 사이트s 둘 다 지정“전통적인 C”행동, ASCII 편지 만“a
”through“Z
”문자로 취급되며 정렬은 문자 코드 바이트 값에 의해 엄격하게 수행됩니다.
theC
andPOSIX
로케일은 데이터베이스 인코딩에 따라 다르게 행동 할 수 있습니다.
또한 두 개의 SQL 표준 콜라이트 이름을 사용할 수 있습니다.
유니 코드
이 Collation은 기본 유니 코드 Collation 요소 테이블과 함께 유니 코드 콜레이션 알고리즘을 사용하여 정렬됩니다. 모든 인코딩에서 사용할 수 있습니다. 이 협업을 사용하려면 ICU 지원이 필요합니다. (이 콜레이션은 ICU 루트 로케일과 동일한 동작을 가지고 있습니다. 참조UND-X-ICU
(for“정의되지 않은”).)
UCS_BASIC
이 콜레이션은 유니 코드 코드 포인트별로 정렬됩니다. 인코딩에만 사용할 수 있습니다UTF8
. (이 콜레이션은 LIBC 로케일 사양과 동일한 동작을 가지고 있습니다C
inUTF8
인코딩.)
운영 체제가 단일 프로그램 내에서 여러 로케일을 사용하도록 지원하는 경우 (Newlocale
및 관련 함수) 또는 ICU에 대한 지원이 구성되면 데이터베이스 클러스터가 초기화되면initdb
시스템 카탈로그를 채 웁니다PG_토토 사이트
당시 운영 체제에서 찾은 모든 지역을 기반으로 한 콜라이트와 함께.
현재 사용 가능한 로케일을 검사하려면 쿼리를 사용하십시오선택 * PG_토토 사이트
또는 명령\ dos+
inPSQL.
예를 들어, 운영 체제는라는 로케일을 제공 할 수 있습니다.de_de.utf8
. initdb
|de_de.utf8
인코딩 용UTF8
두 가지 모두LC_COLLATE
및LC_CTYPE
설정de_de.utf8
. 또한와의 콜레이션도 생성 할 것입니다..utf8
태그 이름을 제거했습니다. 그래서 당신은 또한 이름으로 콜레이션을 사용할 수 있습니다de_de
, which is less cumbersome to write and makes the name less encoding-dependent. Note that, nevertheless, the initial set of collation names is platform-dependent.
LIBC
운영 체제에 설치된 로케일에 직접지도를 사용하여 명령을 사용하여 나열 할 수 있습니다로케일 -A
. 경우 ALIBC
값이 다른 값이 필요합니다LC_COLLATE
andLC_CTYPE
또는 데이터베이스 시스템이 초기화 된 후 운영 체제에 새 로컬이 설치되면을 사용하여 새로운 콜레이션이 생성 될 수 있습니다.콜라이트 만들기명령. 새로운 운영 체제 로케일은를 사용하여 대량으로 가져올 수 있습니다.pg_import_system_토토 사이트s ()
함수.
특정 데이터베이스 내에서 해당 데이터베이스의 인코딩을 사용하는 콜라이트 만 관심이 있습니다. 의 다른 항목PG_토토 사이트
무시됩니다. 따라서와 같은 제거 된 콜라이트 이름de_de
전 세계적으로 고유하지는 않더라도 주어진 데이터베이스 내에서 고유 한 것으로 간주 될 수 있습니다. 박탈 된 콜레이션 이름을 사용하는 것이 좋습니다. 다른 데이터베이스 인코딩으로 변경하기로 결정한 경우 변경해야 할 것이 하나 더 적기 때문입니다. 그러나기본값
, C
및POSIX
데이터베이스 인코딩에 관계없이 토토 사이트s를 사용할 수 있습니다.
PostgreSQL동일한 속성이있는 경우에도 별개의 토토 사이트 객체를 호환되지 않는 것으로 간주합니다. 예를 들어,
a collate "c"<b Collate "posix"에서 test1; 선택
에도 불구하고 오류가 발생합니다.C
andposix
토토 사이트s는 동일한 동작을 가지고 있습니다. 믹싱 스트리핑 및 스트립이없는 콜라이트 이름은 권장되지 않습니다.
ICU를 사용하면 가능한 모든 로케일 이름을 열거하는 것이 합리적이지 않습니다. ICU는 로케일에 특정 이름 지정 시스템을 사용하지만 실제로 별개의 로케일보다 로케일의 이름을 지정하는 더 많은 방법이 있습니다.initdb
ICU API를 사용하여 초기 콜라이트 세트를 채우기 위해 별개의 로케일 세트를 추출합니다. ICU가 제공하는 콜라이트는 SQL 환경에서 BCP 47 언어 태그 형식의 이름을 가진 SQL 환경에서 생성됩니다.“개인 사용”확장-X-ICU
LIBC 지역과 구별하기 위해 추가되었습니다.
여기에 만들어 질 수있는 몇 가지 예제 콜로레이션이 있습니다.
일부 (자주 사용되지 않은) 인코딩은 ICU에서 지원되지 않습니다. 데이터베이스 인코딩이 이러한 중 하나 인 경우 ICU Collation 항목 중 하나입니다.PG_토토 사이트
무시됩니다. 하나를 사용하려고 시도하면 라인을 따라 오류가 발생합니다.“"Win874"를 인코딩하기위한 "De-X-ICU"는 존재하지 않습니다”.
표준 및 사전 정의 된 콜로레이션이 충분하지 않은 경우 사용자는 SQL 명령을 사용하여 고유 한 콜레이션 객체를 만들 수 있습니다콜라이트 만들기.
표준 및 사전 정의 된 콜라주는 스키마에 있습니다PG_CATALOG
, 모든 사전 정의 된 객체와 마찬가지로. 사용자 정의 콜라이트는 사용자 스키마에서 작성해야합니다. 이것은 또한 그들이에 의해 저장되도록 보장합니다.pg_dump
.
새로운 LIBC 콜라이트가 다음과 같이 만들 수 있습니다 :
CLEATE COLLATION GERMAN (제공자 = libc, locale = 'de_de');
로케일
이 명령의 절은 운영 체제에 따라 다릅니다. 유닉스와 같은 시스템에서 명령로케일 -A
목록을 표시합니다.
사전 정의 된 LIBC 콜라주는 이미 데이터베이스 인스턴스가 초기화 될 때 운영 체제에 정의 된 모든 콜라이트가 이미 포함되어 있으므로 수동으로 새 제품을 생성 할 필요는 없습니다. 다른 명명 시스템이 원하는 경우 이유가있을 수 있습니다 (이 경우 참조섹션 24.2.2.3.3) 또는 운영 체제가 새로운 로케일 정의를 제공하기 위해 업그레이드 된 경우 (이 경우 참조pg_import_system_토토 사이트s ()
).
ICU 콜라이트는 다음과 같이 만들 수 있습니다.
Complation German (제공자 = ICU, Locale = 'de-de');
ICU 로컬은 BCP 47으로 지정됩니다.언어 태그이지만 대부분의 LIBC 스타일 로케일 이름을 허용 할 수 있습니다. 가능하면 LIBC 스타일 로케일 이름이 언어 태그로 변환됩니다.
새로운 ICU 콜레이션은 언어 태그에 Collation 속성을 포함시킴으로써 Collation 동작을 광범위하게 사용자 정의 할 수 있습니다. 보다섹션 24.2.3세부 사항 및 예제.
콜레이션은결정 론또는nondeterministic. 결정 론적 협력은 결정 론적 비교를 사용합니다. 즉, 문자열이 동일한 바이트 시퀀스로 구성된 경우에만 문자열이 동일하다고 간주합니다. 비 결정적 비교는 다른 바이트로 구성 되더라도 문자열이 동일하다고 결정할 수 있습니다. 전형적인 상황에는 사례에 민감한 비교, 악센트 불균형 비교, 다른 유니 코드 정상 형태의 문자열 비교가 포함됩니다. 이러한 무감각 한 비교를 실제로 구현하는 것은 Collation 제공자에게 달려 있습니다. 결정 론적 플래그는 바이트 와이즈 비교를 사용하여 유대를 깨뜨릴지 여부 만 결정합니다. 참조 참조유니 코드 기술 표준 10용어에 대한 자세한 내용은
비 결정적 협력을 만들려면 속성을 지정합니다결정 론적 = 거짓
to콜라이트 만들기
, 예 :
CLEATE COLLATION NDCOLL (제공자 = ICU, locale = 'und', deginistic = false);
이 예제는 표준 유니 코드 콜레이션을 비 결정적 방식으로 사용합니다. 특히, 이것은 다른 정상 형태의 문자열을 올바르게 비교할 수있게한다. 더 흥미로운 예는 위에서 설명한 ICU 사용자 정의 시설을 사용합니다. 예를 들어:
COLLATION CASE_INSENSENSITIVE (제공자 = 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는 비 결정적 협력을 사용하는 인덱스와 중간선을 사용할 수 없음을 주목하십시오. 또한 패턴 일치 작업과 같은 비 결정적 콜라주에서는 특정 작업이 불가능합니다. 따라서 구체적으로 원하는 경우에만 사용해야합니다.
다른 유니 코드 정규화 양식에서 텍스트를 처리하려면 함수/표현식을 사용하는 옵션이기도합니다정상화
및정규화
비 결정적 콜라주를 사용하는 대신 사전 처리 또는 문자열을 확인합니다. 각 접근 방식마다 다른 트레이드 오프가 있습니다.
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를 선택하십시오. -- 진실
사용 가능한 많은 옵션이에 설명되어 있습니다.섹션 24.2.3.2또는 참조섹션 24.2.3.5자세한 내용은
ICU에서 두 줄 (Collation) 비교는 텍스트 기능이 "레벨"으로 그룹화되는 다단계 프로세스에 의해 결정됩니다. 각 레벨의 처리는에 의해 제어됩니다.Collation 설정. 높은 레벨은 더 미세한 텍스트 특징에 해당합니다.
표 24.1주어진 수준에서 평등을 결정할 때 어떤 텍스트 기능 차이가 중요한지를 보여줍니다. 유니 코드 문자U+2063
| 보이지 않는 분리기이며 표에서 볼 수 있듯이 모든 수준의 비교에서에서 볼 수 있습니다.identic
.
표 24.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 |
거짓 |
false |
level3 | 케이스/변형 | true |
true |
True |
거짓 |
false |
거짓 |
level4 | 구두점 | true |
true |
거짓 |
false |
거짓 |
거짓 |
identic | all | true |
거짓 |
거짓 |
거짓 |
거짓 |
false |
모든 레벨에서 완전 정규화가 꺼져 있어도 기본 정규화가 수행됩니다. 예를 들어,'Á'
코드 포인트로 구성 될 수 있습니다U & '\ 0061 \ 0301'
또는 단일 코드 포인트U & '\ 00e1'
,이 시퀀스는에서도 동일하게 간주됩니다.identic
레벨. 코드 포인트 표현의 차이를 뚜렷하게 취급하려면와 함께 생성 된 콜레이션을 사용하십시오.결정 론
설정true
.
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를 선택하십시오. -- 거짓
표 24.2사용 가능한 Collation 설정이 표시되며,이 사용 가능한 Collation 설정은 언어 태그의 일부로 사용할 수 있습니다.
표 24.2. ICU Collation 설정
키 | 값 | 기본값 | 설명 |
---|---|---|---|
CO |
이모 지 , PhoneBK , 표준 , ... |
표준 |
토토 사이트 유형. 보다섹션 24.2.3.5추가 옵션 및 세부 사항은 |
KA |
Noignore , 시프트 |
Noignore |
로 설정된 경우시프트 , 일부 문자 (예 : 구두점 또는 공간)가 비교하여 무시됩니다. 열쇠KS 로 설정해야합니다level3 이하가 적용됩니다. 키 설정KV 어떤 캐릭터 클래스가 무시되는지 제어합니다. |
KB |
true , 거짓 |
거짓 |
레벨 2 차이에 대한 뒤로 비교. 예를 들어 Localeund-u-kb 정렬'àe' 전'aé' . |
KC |
true , 거짓 |
거짓 |
악센트와 다른 레벨 3 기능 사이에있는 "레벨 2.5"로 케이스를 분리합니다. 로 설정된 경우 |
KF |
어퍼 , 낮은 , 거짓 |
거짓 |
로 설정된 경우어퍼 , 소문자 이전에 상반신 정렬. 로 설정된 경우Lower , 대문자 전의 소문자 정렬. 로 설정된 경우거짓 , 정렬은 로케일의 규칙에 따라 다릅니다. |
KN |
true , 거짓 |
거짓 |
로 설정된 경우true , 문자열 내의 숫자는 일련의 숫자가 아닌 단일 숫자 값으로 취급됩니다. 예를 들어,'ID-45' 전 정렬'ID-123' . |
KK |
true , 거짓 |
거짓 |
완전 정규화 활성화; 성능에 영향을 줄 수 있습니다. 기본 정규화는로 설정된 경우에도 수행됩니다. 완전 정규화는 여러 액센트가 단일 문자에 적용되는 것과 같은 경우와 같은 경우에 중요합니다. 예를 들어, 코드 포인트 시퀀스 |
KR |
Space , PANCT , 기호 , Currency , DIGIT , script-id |
유효한 값 중 하나 이상 또는 BCP 47로 설정 문자 클래스의 순서를 재정의합니다. 목록의 이전에 클래스에 속한 캐릭터는 목록의 나중에 클래스에 속하는 문자 앞에 정렬됩니다. 예를 들어, 값 |
|
KS |
level1 , level2 , level3 , level4 , identic |
level3 |
평등을 결정할 때 감도 (또는 "강도"),level1 차이에 가장 민감하지 않습니다.identic 차이에 가장 민감합니다. 보다표 24.1자세한 내용. |
KV |
Space , PANCT , 기호 , Currency |
PANCT |
레벨 3에서 비교 중에 무시되는 문자 클래스. 이후 값으로 설정하는 데는 이전 값이 포함됩니다. 예 :기호 포함PANCT 및Space 무시할 문자에서. 열쇠KA 로 설정해야합니다시프트 and keyKS 로 설정해야합니다level3 이하는 적용됩니다. |
기본값은 로케일에 따라 다를 수 있습니다. 위의 표는 완료되지 않습니다. 보다섹션 24.2.3.5추가 옵션 및 세부 사항은
많은 Collation 설정의 경우와 함께 Collation을 만들어야합니다.결정 론
설정거짓
원하는 효과가있는 설정 (참조섹션 24.2.2.4). 또한 일부 설정은 키 일 때만 적용됩니다KA
로 설정되었습니다시프트
(참조표 24.2).
Comper Collation "de-u-co-phonebk-x-icu"(제공자 = ICU, locale = 'de-u-co-phonebk');
#Phone Book 토토 사이트 Type과 독일어 콜레이션
CONTE COLLATION "UND-U-CO-EMOJI-X-ICU"(제공자 = ICU, locale = 'und-u-co-emoji');
#유니 코드 기술 표준 #51 당 이모티콘 콜레이션 유형과의 루트 콜레이션
collation latinlast 만들기 (제공자 = ICU, locale = 'en-u-kr-grek-latn');
#라틴어 편지 앞에 그리스 문자를 정렬하십시오. (기본값은 그리스 전 라틴어입니다.)
Collection Collection Collation Upperfirst (제공자 = ICU, Locale = 'en-u-kf-upper');
#소문자 문자 앞에 상단 문자를 정렬하십시오. (기본값은 먼저 소문자 문자입니다.)
CREATE COLLATION SPECICAL (제공자 = ICU, locale = 'en-u-kf-upper-kr-grek-latn');
#위의 옵션을 모두 결합합니다.
위에 표시된 Collation 설정에서 제공하는 옵션이 충분하지 않은 경우, 조정 규칙으로 Collation 요소의 순서를 변경할 수 있으며, 그의 구문이 자세히 설명되어 있습니다https : //unicode-org.github.io/icu/userguide/토토 사이트/customization/.
이 작은 예제는 재단 규칙이있는 루트 로케일을 기반으로 한 콜레이션을 만듭니다.
COLLE COLLATION CUSTOM (제공자 = ICU, locale = 'und', Rules = '& V << W <<< W');
이 규칙을 사용하여 편지“W”이후에 정렬됩니다“V”, 그러나 악센트와 유사한 2 차 차이로 취급됩니다. 이와 같은 규칙은 일부 언어의 로케일 정의에 포함되어 있습니다. (물론 로케일 정의에 이미 원하는 규칙이 포함되어 있다면 다시 명시 적으로 지정할 필요가 없습니다.)
여기 더 복잡한 예가 있습니다. 다음 진술은라는 Collation을 설정합니다.EBCDIC
EBCDIC 인코딩 순서대로 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
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면