# 10.3.4 表格字符集和排序规则
每个表都有一个表字符集和一个表排序规则。这创建表
和更改表
语句具有用于指定表字符集和排序规则的可选子句:
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 以下列方式选择表字符集和排序规则:
如果两者
字符集 *
字符集名称*
和整理 *
collation_name*
已指定,字符集*字符集名称
和整理collation_name
*被使用。如果
字符集 *
字符集名称*
没有指定整理
, 字符集*字符集名称
*并使用其默认排序规则。要查看每个字符集的默认排序规则,请使用显示字符集
声明或查询INFORMATION_SCHEMA
CHARACTER_SETS
桌子。如果
整理 *
collation_name*
没有指定字符集
, 与相关的字符集*collation_name
和整理collation_name
*被使用。否则(两者都不
字符集
也不整理
指定),使用数据库字符集和排序规则。如果未在单个列定义中指定列字符集和排序规则,则表字符集和排序规则将用作列定义的默认值。表字符集和排序规则是 MySQL 的扩展;标准 SQL 中没有这样的东西。