Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


12.3.4 表字符集和排序规则

每个表都有一个表字符集和表排序规则。CREATE TABLEALTER TABLE 语句都有可选的子句,用于指定表字符集和排序规则:

CREATE TABLE tbl_name (column_list)
    [[DEFAULT] CHARACTER SET charset_name]
    [COLLATE collation_name]]

ALTER TABLE tbl_name
    [[DEFAULT] CHARACTER SET charset_name]
    [COLLATE collation_name]

示例:

CREATE TABLE t1 ( ... )
CHARACTER SET latin1 COLLATE latin1_danish_ci;

MySQL 按照以下方式选择表字符集和排序规则:

  • 如果同时指定了 CHARACTER SET charset_nameCOLLATE collation_name,则使用字符集 charset_name 和 排序规则 collation_name

  • 如果只指定了 CHARACTER SET charset_name,则使用字符集 charset_name 和其默认排序规则。要查看每个字符集的默认排序规则,可以使用SHOW CHARACTER SET 语句或查询 INFORMATION_SCHEMA CHARACTER_SETS 表。

  • 如果指定了COLLATE collation_name,那么与collation_name相关的字符集和排序规则将被使用。

  • 否则(既没有指定CHARACTER SET也没有指定COLLATE),将使用数据库字符集和排序规则。

如果在列定义中未指定列字符集和排序规则,表格字符集和排序规则将被用作默认值。表格字符集和排序规则是 MySQL 扩展;标准 SQL 中没有这样的概念。