Loading...
MySQL 9.5 Reference Manual 9.5의 12.8.6 Examples of the Effect of Collation의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
예제 1: 독일어 움라우트 정렬하기
테이블 T의 컬럼 X에 다음과 같은 latin1 컬럼 값이 있다고 가정합니다:
1Muffler 2Müller 3MX Systems 4MySQL
또한 컬럼 값을 다음 문장을 사용하여 조회한다고 가정합니다:
1SELECT X FROM T ORDER BY X COLLATE collation_name;
다음 표는 서로 다른 collation과 함께 ORDER BY를 사용할 경우 값들이 어떤 순서로 정렬되는지를 보여줍니다.
latin1_swedish_ci | latin1_german1_ci | latin1_german2_ci |
|---|---|---|
| Muffler | Muffler | Müller |
| MX Systems | Müller | Muffler |
| Müller | MX Systems | MX Systems |
| MySQL | MySQL | MySQL |
이 예제에서 서로 다른 정렬 순서를 유발하는 문자는 ü (독일어 “U-umlaut”)입니다.
첫 번째 열은 스웨덴/핀란드 정렬 규칙을 사용하는
SELECT의 결과를 보여줍니다. 이 규칙에서는 U-움라우트가 Y와 함께 정렬됩니다.
두 번째 열은 독일 DIN-1 규칙을 사용하는
SELECT의 결과를 보여줍니다. 이 규칙에서는 U-움라우트가 U와 함께 정렬됩니다.
세 번째 열은 독일 DIN-2 규칙을 사용하는
SELECT의 결과를 보여줍니다. 이 규칙에서는 U-움라우트가 UE와 함께 정렬됩니다.
예제 2: 독일어 움라우트 검색하기
사용 중인 문자 집합과 collation만 서로 다른 세 개의 테이블이 있다고 가정합니다:
1mysql> SET NAMES utf8mb4; 2mysql> CREATE TABLE german1 ( 3 c CHAR(10) 4 ) CHARACTER SET latin1 COLLATE latin1_german1_ci; 5mysql> CREATE TABLE german2 ( 6 c CHAR(10) 7 ) CHARACTER SET latin1 COLLATE latin1_german2_ci; 8mysql> CREATE TABLE germanutf8 ( 9 c CHAR(10) 10 ) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
각 테이블에는 두 개의 레코드가 있습니다:
1mysql> INSERT INTO german1 VALUES ('Bar'), ('Bär'); 2mysql> INSERT INTO german2 VALUES ('Bar'), ('Bär'); 3mysql> INSERT INTO germanutf8 VALUES ('Bar'), ('Bär');
위의 세 collation 중 두 개는 A = Ä 동등성을 가지고 있고, 하나는 그런 동등성이 없습니다
(latin1_german2_ci). 이 때문에, 비교 결과는 아래와 같습니다:
1mysql> SELECT * FROM german1 WHERE c = 'Bär'; 2+------+ 3| c | 4+------+ 5| Bar | 6| Bär | 7+------+ 8mysql> SELECT * FROM german2 WHERE c = 'Bär'; 9+------+ 10| c | 11+------+ 12| Bär | 13+------+ 14mysql> SELECT * FROM germanutf8 WHERE c = 'Bär'; 15+------+ 16| c | 17+------+ 18| Bar | 19| Bär | 20+------+
이는 버그가 아니라, latin1_german1_ci와
utf8mb4_unicode_ci의 정렬 속성 때문에 발생하는 결과입니다 (여기에서의 정렬은 독일 DIN 5007 표준에 따라 수행됩니다).
12.8.5 The binary Collation Compared to _bin Collations
12.8.7 Using Collation in INFORMATION_SCHEMA Searches