10.3.2. Набор символов и объединение базы данных

Каждая база данных имеет набор символов и объединение базы данных. Инструкции CREATE DATABASE и ALTER DATABASE имеет факультативные предложения для определения набора символов базы данных и объединения:


CREATE DATABASE db_name

[[DEFAULT] CHARACTER SET charset_name]

[[DEFAULT] COLLATE collation_name]


ALTER DATABASE db_name

[[DEFAULT] CHARACTER SET charset_name]

[[DEFAULT] COLLATE collation_name]


Ключевое слово SCHEMA может использоваться вместо DATABASE.


Все параметры базы данных сохранены в текстовом файле db.opt, который может быть найден в каталоге баз данных.


Предложения CHARACTER SET и COLLATE делают возможным создать базы данных с различными наборами символов и объединениями на том же самом сервере MySQL.


Пример:

CREATE DATABASE db_name CHARACTER SET latin1

COLLATE latin1_swedish_ci;


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


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


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


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


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


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


Набор символов и объединение для заданной по умолчанию базы данных может быть определено из значений переменных системы character_set_database и collation_database. Сервер устанавливает эти переменные всякий раз, когда заданная по умолчанию база данных изменяется. Если не имеется никакой заданной по умолчанию базы данных, переменные имеют то же самое значение, что и соответствующие переменные системы уровня сервера: character_set_server и collation_server.

Загрузка...