Spec-Zone .ru
спецификации, руководства, описания, API

10.1.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"но целые алфавиты, иногда многократные алфавиты или восточные системы письменности с тысячами символов, наряду со многими специальными символами и знаками препинания. Также в действительности, у большинства сопоставлений есть много правил, не только для того, отличить ли lettercase, но также и для того, отличить ли диакритические знаки ("диакритический знак" является меткой, присоединенной к символу как на немецком языке"Ö"), и для многократно-символьных отображений (таких как правило это"Ö" = "OE"в одном из двух немецких сопоставлений).

MySQL может сделать эти вещи для Вас:

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