表字符集和校验规则
每个表都有一个表字符集和一个表校验规则。该CREATE TABLE和ALTER 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 latin1COLLATE latin1_danish_ci;
MySQL通过以下方式选择表字符集和校验规则:
- 如果同时和指定,字符集和校验规则使用。
CHARACTER SET charset_nameCOLLATE collation_namecharset_namecollation_name - 如果未指定,则使用字符集及其默认校验规则。要参见每个字符集的默认校验规则,请使用语句或查询表。
CHARACTER SET charset_nameCOLLATEcharset_nameSHOW CHARACTER SETINFORMATION_SCHEMACHARACTER_SETS - 如果不指定,则使用与和归类相关的字符集。
COLLATE collation_nameCHARACTER SETcollation_namecollation_name - 否则(既未指定,也
CHARACTER SET未COLLATE指定),将使用数据库字符集和校验规则。
如果未在单个列定义中指定列字符集和校验规则,则将表字符集和校验规则用作列定义的默认值。表字符集和校验规则是MySQL的扩展;标准SQL中没有这样的东西。
