文档首页
MySQL 8.4 参考手册
8.4 中文镜像

MySQL 8.4 参考手册 · 中文镜像

正文为中文,英文原文默认隐藏。点击任意中文段落即可展开 / 收起对应英文原文。

打开官方英文原文 ↗

译文由机器翻译生成,仅供理解参考;有疑问请以官方英文原文为准。

中文点击中文段落可显示 / 隐藏英文原文本页译文覆盖 100%

12.3.4 表字符集和排序规则12.3.4 Table Character Set and Collation

每个表都有表字符集和表排序规则。CREATE TABLE 和 ALTER TABLE 语句具有用于指定表字符集和排序规则的可选子句:Every table has a table character set and a table collation. The CREATE TABLE and ALTER TABLE statements have optional clauses for specifying the table character set and collation:

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]

示例:Example:

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

MySQL 以以下方式选择表的字符集和排序规则:MySQL chooses the table character set and collation in the following manner:

  • 如果同时指定了 CHARACTER SET charset_name 和 COLLATE collation_name,将使用字符集 charset_name 和校对规则 collation_name。If both CHARACTER SET charset_name and COLLATE collation_name are specified, character set charset_name and collation collation_name are used.

  • 如果指定了 CHARACTER SET charset_name 而未指定 COLLATE,则使用字符集 charset_name 及其默认排序规则。要查看每个字符集的默认排序规则,请使用 SHOW CHARACTER SET 语句或查询 INFORMATION_SCHEMA CHARACTER_SETS 表。If CHARACTER SET charset_name is specified without COLLATE, character set charset_name and its default collation are used. To see the default collation for each character set, use the SHOW CHARACTER SET statement or query the INFORMATION_SCHEMA CHARACTER_SETS table.

  • 如果指定了 COLLATE collation_name 而没有指定 CHARACTER SET,则使用与 collation_name 相关联的字符集和排序规则 collation_name。If COLLATE collation_name is specified without CHARACTER SET, the character set associated with collation_name and collation collation_name are used.

  • 否则(既未指定 CHARACTER SET,也未指定 COLLATE),将使用数据库的字符集和排序规则。Otherwise (neither CHARACTER SET nor COLLATE is specified), the database character set and collation are used.

如果在各个列定义中没有指定列的字符集和校对规则,则表的字符集和校对规则将作为列定义的默认值。表的字符集和校对规则是 MySQL 的扩展;在标准 SQL 中不存在这样的概念。The table character set and collation are used as default values for column definitions if the column character set and collation are not specified in individual column definitions. The table character set and collation are MySQL extensions; there are no such things in standard SQL.