Выбрать главу

| gbk | GBK Simplified Chinese | gbk_chinese_ci | 2 |

| utf8 | UTF-8 Unicode | utf8_general_ci | 3 |

| ucs2 | UCS-2 Unicode | ucs2_general_ci | 2 |

| cp932 | SJIS for Windows Japanese | cp932_japanese_ci | 2 |

| eucjpms | UJIS for Windows Japanese | eucjpms_japanese_ci | 3 |

+---------+---------------------------+---------------------+--------+

9.28. MySQL 5 FAQ INFORMATION_SCHEMA

9.28.1: Имеется ли форум для обсуждения INFORMATION_SCHEMA?

Да. http://forums.mysql.com/list.php?101.

9.28.2: Где я могу найти спецификацию ANSI SQL 2003 для INFORMATION_SCHEMA?

К сожалению, официальные спецификации недоступны свободно. ANSI делает их доступными только за денежку. Однако, имеются доступные книги, например, SQL-99 Complete, Really by Peter Gulutzan and Trudy Pelzer, которые дают всесторонний краткий обзор стандарта, включая INFORMATION_SCHEMA.

9.28.3: Каково различие между Oracle Data Dictionary и MySQL INFORMATION_SCHEMA?

Oracle и MySQL обеспечивают метаданные в таблицах. Однако, Oracle и MySQL используют различные имена таблиц и столбцов. Реализация MySQL более подобна DB2 и SQL Server, которые также поддерживают INFORMATION_SCHEMA как определено в стандарте SQL.

9.28.4: Я могу изменять таблицы, найденные в базе данных INFORMATION_SCHEMA?

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

Глава 10. Поддержка наборов символов

MySQL включает поддержку набора символов, которая дает возможность Вам сохранить данные, использующие ряд наборов символов и выполнять сравнения согласно ряду объединений. Вы можете определять наборы символов на уровне сервера, базы данных, таблицы и столбца. MySQL поддерживает использование наборов символов для типов хранения MyISAM, MEMORY, NDBCluster и InnoDB.

Эта глава обсуждает следующие темы

Что является наборами символов и объединениями?

Заданная по умолчанию система с многоими уровнями для назначения набора символов.

Синтаксис для определения наборов символов и объединений.

Функции и операции с символами.

Поддержка стандарта Unicode.

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

Проблемы набора символов воздействуют на хранение данных, но также и на связь между программами пользователя и сервером MySQL. Если Вы хотите, чтобы программа пользователя связалась с сервером, использующим набор символов, отличный от значения по умолчанию, вы должны будете указать, который именно. Например, чтобы использовать utf8 Unicode, выдайте эту инструкцию после соединения с сервером:

SET NAMES 'utf8';

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