Spec-Zone.ru › MariaDB

Обзор наборов символов и правил сортировки

Что такое наборы символов и правила сортировки

Набор символов — это множество символов, а правила сортировки — это правила сравнения и сортировки конкретного набора символов.

Например, подмножество набора символов может состоять из букв A, B и C. Значения по умолчанию могут определять их упорядочение по возрастанию A, B, C.

Если мы рассмотрим символы с разными регистрами, сложность возрастает. Бинарные правила сортировки будут оценивать символы A и a по-разному, упорядочивая их определённым образом. Нечувствительные к регистру правила сортировки будут оценивать A и a одинаково, в то время как правила сортировки немецкого телефонного справочника будут оценивать символы ue и ü одинаково.

У набора символов может быть много связанных с ним правил сортировки, но каждое правило сортировки связано только с одним набором символов. В MariaDB имя набора символов всегда является частью имени правила сортировки. Например, правила сортировки latin1_german1_ci применяются только к набору символов latin1. Каждый набор символов также имеет одно правило сортировки по умолчанию. Правило сортировки latin1 по умолчанию — это latin1_swedish_ci.

Например, по умолчанию символ y стоит между x и z, а в литовском языке — между i и k. Аналогично, порядок немецкого телефонного справочника отличается от порядка немецкого словаря, поэтому, хотя у них и одинаковый набор символов, правила сортировки разные.

Просмотр наборов символов и правил сортировки

В MariaDB набор символов по умолчанию — latin1, а правило сортировки по умолчанию — latin1_swedish_ci (однако это может отличаться в некоторых дистрибутивах, см., например, Отличия MariaDB в Debian). Вы можете просмотреть полный список наборов символов и правил сортировки, поддерживаемых MariaDB, по адресу Поддерживаемые наборы символов и правила сортировки, или посмотреть, что поддерживается на вашем сервере, с помощью команд SHOW CHARACTER SET и SHOW COLLATION.

По умолчанию A предшествует Z, поэтому следующее выражение истинно:

 SELECT "A" < "Z";
+-----------+
| "A" < "Z" |
+-----------+
|         1 |
+-----------+

По умолчанию сравнения нечувствительны к регистру:

SELECT "A" < "a", "A" = "a";
+-----------+-----------+
| "A" < "a" | "A" = "a" |
+-----------+-----------+
|         0 |         1 |
+-----------+-----------+

Изменение наборов символов и правил сортировки

Наборы символов и правила сортировки могут быть установлены на уровне сервера, на уровне столбца, а также для взаимодействия клиент-сервер.

Например, ue и ü по умолчанию оцениваются по-разному.

SELECT 'Mueller' = 'Müller';
+----------------------+
| 'Müller' = 'Mueller' |
+----------------------+
|                    0 |
+----------------------+

Используя системную переменную collation_connection для изменения набора символов соединения на latin1_german2_ci, или немецкого телефонного справочника, те же два символа будут оцениваться как эквивалентные.

SET collation_connection = latin1_german2_ci;

SELECT 'Mueller' = 'Müller';
+-----------------------+
| 'Mueller' = 'Müller'  |
+-----------------------+
|                     1 |
+-----------------------+

Дополнительную информацию см. в разделе Установка наборов символов и правил сортировки.

Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки в MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают взгляды MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/character-set-and-collation-overview/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API