Поиск

Примеры назначения символьного набора и порядка сопоставления

Следующие примеры демонстрируют, как MySQL определяет наборы символов и порядки сопоставления по умолчанию.
Пример 1:таблица +определениестолбца
CREATE TABLE tl (
cl CHAR(10) CHARACTER SET latinl COLLATE latinl_germanl_ci ) DEFAULT CHARACTER SET Iatin2 COLLATE Iatin2__bin;
Здесь мы имеем столбец с набором символов latinl и порядком сопоставления latinl_germanl_ci. Определение явное, поэтому прямое. Следует отметить, что нет ни­каких проблем с сохранением столбца с Iatin2 в таблице с latinl.
Пример 2:таблица +определениестолбца
CREATE TABLE tl
(
cl CHAR(10) CHARACTER SET latinl
) DEFAULT CHARACTER SET latinl COLLATE latinl_danish_ci;
На этот раз мы имеем столбец с набором символов latinl и порядком сопоставления по умолчанию. Здесь, несмотря на то, что это может показаться естественным, порядок сопоставления по умолчанию не берется с уровня таблицы. Вместо этого порядок сопос­тавления по умолчанию для latinl всегда принимается latinl_swedish_ci; столбец cl будет иметь порядок сопоставления latinl_swedish_ci (а не latinl_danish_ci).
Пример 3:таблица +определениестолбца
CREATE TABLE tl (
cl CHAR(IO) } DEFAULT CHARACTER SET latinl COLLATE latinl_danish_ci;
Имеем столбец с набором символов по умолчанию. При таких обстоятельствах MySQL обращается на уровень таблицы в поисках набора символов и порядка сопостав­ления для столбца. Поэтому символьным набором для столбца cl будет latinl, а поряд-комсопоставления-latinl_danish__ci.
Пример 4:базаданных +таблица +определениестолбца
CREATE DATABASE dl
DEFAULT CHARACTER SET Iatin2 COLLATE Iatin2_czech_ci; USE dl;
CREATE TABLE tl (
Cl CHAR(IO) );
Мы определяем столбец без указания набора символов и порядка сопоставления. Мы также не указываем их на уровне таблицы. В этом случае MySQL обращается на уровень базы данных. (Установки базы данных становятся установками таблицы, и, как следст­вие, установками для столбца.) Поэтому символьным набором для столбца cl будет Iatin2, а порядком сопоставления - Iatin2 czech ei.