Spec-Zone.ru › MySQL 5.7

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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/charset-examples.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API