12.3.9 Примеры назначения набора символов и сортировки
В следующих примерах показано, как MySQL определяет значения по умолчанию для набора символов и сортировки.
Пример 1: Определение таблицы и столбца
CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci
) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin;
Здесь у нас столбец с набором символов latin1 и сортировкой latin1_german1_ci. Определение явное, поэтому всё очевидно. Обратите внимание, что нет проблем с хранением столбца latin1 в таблице latin2.
Пример 2: Определение таблицы и столбца
CREATE TABLE t1
(
c1 CHAR(10) CHARACTER SET latin1
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
На этот раз у нас столбец с набором символов latin1 и сортировкой по умолчанию. Хотя это может показаться естественным, сортировка по умолчанию не берется с уровня таблицы. Вместо этого, поскольку сортировка по умолчанию для latin1 всегда latin1_swedish_ci, столбец c1 имеет сортировку latin1_swedish_ci (а не latin1_danish_ci).
Пример 3: Определение таблицы и столбца
CREATE TABLE t1
(
c1 CHAR(10)
) DEFAULT CHARACTER SET latin1 COLLATE latin1_danish_ci;
У нас есть столбец с набором символов и сортировкой по умолчанию. В этом случае MySQL проверяет уровень таблицы, чтобы определить набор символов и сортировку столбца. Следовательно, набор символов для столбца c1 — latin1, а его сортировка — latin1_danish_ci.
Пример 4: Определение базы данных, таблицы и столбца
CREATE DATABASE d1
DEFAULT CHARACTER SET latin2 COLLATE latin2_czech_cs;
USE d1;
CREATE TABLE t1
(
c1 CHAR(10)
);
Мы создаём столбец без указания его набора символов и сортировки. Мы также не указываем набор символов и сортировку на уровне таблицы. В этом случае MySQL проверяет уровень базы данных, чтобы определить параметры таблицы, которые после этого становятся параметрами столбца. Следовательно, набор символов для столбца c1 — latin2, а его сортировка — latin2_czech_cs.
© 2025 Oracle
Licensed under the GPLv2 License.