Spec-Zone.ru › MySQL 5.7

10.1 Наборы символов и сортировки в общем случае

Набор символов — это набор символов и их кодировок. Сортировка — это набор правил для сравнения символов в наборе символов. Давайте проиллюстрируем разницу на примере воображаемого набора символов.

Предположим, у нас есть алфавит с четырьмя буквами: A, B, a, b. Мы присваиваем каждой букве число: A = 0, B = 1, a = 2, b = 3. Буква A — это символ, число 0 — это кодировка для A, а комбинация всех четырёх букв и их кодировок образует набор символов.

Предположим, мы хотим сравнить две строковые значения, A и B. Самый простой способ — это посмотреть на кодировки: 0 для A и 1 для B. Поскольку 0 меньше 1, мы говорим, что A меньше B. Мы только что применили сортировку к нашему набору символов. Сортировка — это набор правил (в данном случае только одно правило): “сравнивать кодировки”. Мы называем эту простейшую из всех возможных сортировок бинарной сортировкой.

Но что, если мы хотим сказать, что строчные и прописные буквы эквивалентны? Тогда у нас будет как минимум два правила: (1) рассматривать строчные буквы a и b как эквивалентные A и B; (2) затем сравнивать кодировки. Мы называем это регистронезависимой сортировкой. Она немного сложнее, чем бинарная сортировка.

В реальной жизни большинство наборов символов содержат множество символов: не только A и B, но и целые алфавиты, иногда несколько алфавитов или восточные системы письма с тысячами символов, а также множество специальных символов и знаков препинания. Также в реальной жизни большинство сортировок имеют много правил, не только для того, чтобы различать регистр букв, но и для того, чтобы различать ударения (ударение — это знак, прикреплённый к символу, как в немецком Ö), и для отображения нескольких символов (например, правило, что Ö = OE в одной из двух немецких сортировок).

MySQL может сделать всё это за вас:

  • Хранить строки, используя различные наборы символов.

  • Сравнивать строки, используя различные сортировки.

  • Смешивать строки с различными наборами символов или сортировками на одном сервере, в одной базе данных или даже в одной таблице.

  • Разрешить указание набора символов и сортировки на любом уровне.

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

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/charset-general.html

Spec-Zone.ru

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