Поиск

Общие сведения о наборах символов и порядках сопоставления

Символьный набор (character set) - это набор символов и кодировок. Порядок со­поставления (collation) — это совокупность правил сравнения символов в наборе. Про­ясним разницу на примере воображаемого символьного набора.
Предположим, что у нас есть алфавит из четырех символов: 'А', 'В', 'а', СЬ\ Присво­им каждому символу номер: 'А'=0, 'В'=1, 'а'=2, 'Ь'=3. Буква СА' - это символ, число 0 -код 'а', а комбинация всех четырех символов и их кодов образует символьный набор.
Теперь предположим, что мы хотим сравнить два строковых значения, 'А' и 'В'. Про­стейший способ сделать это - посмотреть на их коды: 0 - для 'а' и 1 - для 'в'. То, что мы только что сделали - это применили порядок сопоставления к нашему символьному на­бору. Порядок сопоставления - это набор правил (в данном случае правило только одно): сравнить коды. Мы называем этот простейший из всех возможных порядков со­поставления бинарным.
Но что делать, если мы захотим сказать, что заглавные и прописные буквы эквива­лентны? В этом случае мы имеем, по крайней мере, два правила: (1) трактовать пропис­ные буквы 'а' и V как эквивалентные 'А' и 'В'; (2) сравнить коды. Мы называем это по­рядком сопоставления, не зависящим от регистра. Он немного сложнее, чем бинарный порядок.
В реальной жизни большинство символьных наборов имеют множество символов, не только 'А' и 'В', а полные алфавиты, иногда несколько алфавитов, или восточные иерог­лифические системы с тысячами символов, вместе с множеством специальных символов и знаков пунктуации. Как и в реальной жизни, большинство порядков сопоставления подчиняются множеству правил: не только нечувствительность к регистру, но также нечувствительность к диакритике (диакритика - это метка, добавляемая к символам, как в немецком 'о') и многосимвольным отображениям (таким, как правило, что 'б' = 'ОЕ' в одной из систем сравнения символов немецкого языка).
MySQL 4.1 может выполнять следующие вещи:

  1. Сохранять строки с использованием различных символьных наборов.
  2. Сравнивать строки с применением различных порядков сопоставления.
  3. Смешивать строки в различных символьных наборах или с разными порядками
    хранения на одном сервере, в одной базе данных и даже в одной таблице.
  4. Позволяет специфицировать символьные наборы и порядки сопоставления на лю­
    бом уровне.

В этих отношениях MySQL 4.1 не только намного удобнее, чем MySQL 4.0, он также впереди многих других СУБД. Однако, чтобы использовать эти новые средства эффек­тивно, вам следует изучить, какие доступны символьные наборы и порядки сопоставле­ния, как изменять их умолчания, и какие строковые операторы применять к ним.