Spec-Zone.ru › MySQL 9.2

12.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-8.4-en/charset-general.html

Spec-Zone.ru

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