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