Вход/Регистрация
MySQL: руководство профессионала
вернуться

Паутов Алексей В.

Шрифт:

[[DEFAULT] CHARACTER SET charset_name]

[COLLATE collation_name]

Пример:

CREATE TABLE t1 ( … ) CHARACTER SET latin1 COLLATE latin1_danish_ci;

MySQL выбирает набор символов таблицы и объединение следующим способом:

Если CHARACTER SET X и COLLATE Y были определены, то применяются набор символов X и объединение Y.

Если CHARACTER SET X был определен без COLLATE, то используется набор символов X и заданное по умолчанию объединение.

Если COLLATE Y был определен без CHARACTER SET, то используется набор символов, связанный с Y и объединение Y.

Иначе, используется набор символов и объединение от базы данных.

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

10.3.4. Набор символов и объединение столбца

Каждый символьный столбец (то есть, столбец типа CHAR, VARCHAR или TEXT) имеет набор символов и объединение столбца. Синтаксис определения столбца имеет факультативные предложения для определения набора символов и объединения столбца:

col_name {CHAR | VARCHAR | TEXT}

(col_length)

[CHARACTER SET charset_name]

[COLLATE collation_name]

Пример:

CREATE TABLE Table1

(column1 VARCHAR(5) CHARACTER SET latin1

COLLATE latin1_german1_ci);

MySQL выбирает набор символов столбца и объединение следующим способом:

Если были определены CHARACTER SET X и COLLATE Y, то используются набор символов X и объединение Y.

Есл был определен CHARACTER SET X без COLLATE, то используется набор символов X и заданное по умолчанию объединение.

Если COLLATE Y был определен без CHARACTER SET, то применяется набор символов, связанный с Y, и объединение Y.

Иначе, используется набор символов и объединение таблицы.

Предложения CHARACTER SET и COLLATE стандартны для SQL.

10.3.5. Набор символов и объединение символьных строковых литералов

Каждый символьный строковый литерал имеет набор символов и объединение.

Символьный строковый литерал может иметь факультативный набор символов и предложение COLLATE:

[_charset_name]'string'

[COLLATE collation_name]

Пример:

SELECT 'string';

SELECT _latin1'string';

SELECT _latin1'string' COLLATE latin1_danish_ci;

Для простой инструкции SELECT 'string', строка имеет набор символов и объединение, определенное переменными системы character_set_connection и collation_connection.

Выражение _charset_name формально названо introducer. Это сообщает синтаксическому анализатору, что строка предположительно соответствует набору символов X. Поскольку было много путаницы в прошлом, следует особо подчеркнуть, что introducer не вызывает никаких преобразований, это строго сигнал, который не изменяет значение строки. Introducer также допустим перед стандартным шестнадцатеричным литералом и числовой шестнадцатеричной литеральной записью (x'literal' и 0xnnnn)>.

Пример:

SELECT _latin1 x'AABBCC';

SELECT _latin1 0xAABBCC;

MySQL определяет набор символов литерала и объединение следующим способом:

Если были определены _X и COLLATE Y, то используется набор символов X и объединение Y.

Если определен _X, но не определен COLLATE, то используется набор символов X и заданное по умолчанию объединение.

  • Читать дальше
  • 1
  • ...
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: