10.1. Наборы символов и объединения вообще

10.1. Наборы символов и объединения вообще

Набор символов представляет собой множество символов и их кодов. Объединение задает набор правил для сравнения символов в наборе символов. Давайте сделаем различие явным с помощью примера.

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

Предположите, что мы хотим сравнивать два строковых значения, A и B. Самый простой способ сделать это состоит в том, чтобы рассмотреть кодирование: 0 = A и 1 = B. Поскольку 0 меньше чем 1, мы говорим, что A меньше чем B. Что мы только что сделали? Применили объединение к нашему набору символов. Объединение задает набор правил (только одно правило в этом случае). Самым простым из всех возможных объединений является двоичное объединение.

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

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

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

Хранить строки, использующие ряд наборов символов.

Сравнивать строки, использующие ряд объединений.

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

Позволяет спецификацию набора символов и объединения в любом уровне.

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

10.3.7. Примеры назначения набора символов и объединения

Из книги автора

10.3.7. Примеры назначения набора символов и объединения Следующие примеры показывают, как MySQL определяет заданные по умолчанию набор символов и объединение.Пример 1: определение таблицы и столбца CREATE TABLE t1 (c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci)DEFAULT CHARACTER SET latin2COLLATE latin2_bin;Здесь мы


10.10. Наборы символов и объединения, которые поддерживает MySQL

Из книги автора

10.10. Наборы символов и объединения, которые поддерживает MySQL MySQL поддерживает свыше 70 объединений для более 30 наборов символов. Этот раздел указывает, которые наборы символов MySQL поддерживает. Имеется один подраздел для каждой группы связанных наборов символов. Для


10.10.1. Наборы символов Unicode

Из книги автора

10.10.1. Наборы символов Unicode MySQL имеет два набора символов Unicode. Вы можете сохранять текст приблизительно для 650 языков, используя эти наборы символов.Объединения ucs2 (UCS-2 Unicode):ucs2_bin ucs2_czech_ci ucs2_danish_ci ucs2_esperanto_ci ucs2_estonian_ci ucs2_general_ci (default) ucs2_hungarian_ci ucs2_icelandic_ci ucs2_latvian_ci ucs2_lithuanian_ci ucs2_persian_ci


10.10.2. Западноевропейские наборы символов

Из книги автора

10.10.2. Западноевропейские наборы символов Западноевропейские наборы символов покрывают большинство западноевропейских языков, типа French, Spanish, Catalan, Basque, Portuguese, Italian, Albanian, Dutch, German, Danish, Swedish, Norwegian, Finnish, Faroese, Icelandic, Irish, Scottish и English.Объединения ascii (US ASCII):ascii_bin ascii_general_ci (значение по


10.10.3. Центральноевропейские наборы символов

Из книги автора

10.10.3. Центральноевропейские наборы символов MySQL обеспечивает поддержку для наборов символов, используемых в Czech Republic, Slovakia, Hungary, Romania, Slovenia, Croatia и Poland.Объединения cp1250 (Windows Central European):cp1250_bin cp1250_croatian_ci cp1250_czech_cs cp1250_general_ci (значение по умолчанию) cp1250_polish_ciОбъединения cp852 (DOS Central


10.10.4. Южноевропейские и ближневосточные наборы символов

Из книги автора

10.10.4. Южноевропейские и ближневосточные наборы символов Южныоевропейские и ближневосточные наборы символов, обеспечиваемые MySQL, включают Armenian, Arabic, Georgian, Greek, Hebrew и Turkish.Объединения armscii8 (ARMSCII-8 Armenian):armscii8_bin armscii8_general_ci (значение по умолчанию)Объединения cp1256 (Windows Arabic):cp1256_bin


10.10.5. Балтийские наборы символов

Из книги автора

10.10.5. Балтийские наборы символов Балтийские наборы символов охватывают Estonian, Latvian и Lithuanian.Объединения cp1257 (Windows Baltic):cp1257_bin cp1257_general_ci (значение по умолчанию) cp1257_lithuanian_ciОбъединения latin7 (ISO 8859-13 Baltic):latin7_bin latin7_estonian_cs latin7_general_ci (значение по умолчанию)


10.10.6. Наборы символов кириллицы

Из книги автора

10.10.6. Наборы символов кириллицы Наборы символов и объединения кириллицы для использования с Belarusian, Bulgarian, Russian и Ukrainian.Объединения cp1251 (Windows Cyrillic):cp1251_bin cp1251_bulgarian_ci cp1251_general_ci (значение по умолчанию) cp1251_general_cs cp1251_ukrainian_ciОбъединения cp866 (DOS Russian): cp866_bin cp866_general_ci (значение по


10.10.7. Азиатские наборы символов

Из книги автора

10.10.7. Азиатские наборы символов Азиатские наборы символов, которые поддерживает пакет, включают Chinese, Japanese, Korean и Thai. Они могут быть усложнены. Например, китайские наборы должны учесть тысячи различных символов.Объединения big5 (Big5 Traditional Chinese):big5_bin big5_chinese_ci (значение по


Наборы символов и последовательность сортировки

Из книги автора

Наборы символов и последовательность сортировки Набор символов, выбранный для хранения текстовых данных, определяет:* символы, которые могут быть использованы в столбцах CHAR, VARCHAR и BLOB SUB_TYPE | (текст);* число байтов, выделяемых для каждого символа;* последовательность


Специальные наборы символов

Из книги автора

Специальные наборы символов Основное правило для наборов символов то, что каждый байт (пара или тройка байтов в случае многобайтовых наборов) специально определен по стандарту его реализации. Существует четыре особых исключения - NONE, OCTETS, ASCII и UNICODE FSS. В табл. 11.1 показаны


Наборы, совместимые для объединения

Из книги автора

Наборы, совместимые для объединения Для каждой операции SELECT, создающей входной поток для UNION, спецификация должна содержать список столбцов, одинаковый для всех других операций (количество и порядок столбцов) с соответствующими типами данных. Предположим, мы имеем