10.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.