MySQL 5.7版本说明
下面的示例展示MySQL如何确定默认字符集和排序规则值。
例1:表和列定义
CREATE TABLE t1 (c1 CHAR(10) CHARACTER SET latin1 COLLATE latin1_german1_ci) DEFAULT CHARACTER SET latin2 COLLATE latin2_bin
这里有一列有alatin1
字符集和latin1_german1_ci
排序。定义是明确的,所以很直接。注意,存储一个latin1
列latin2
表格
例2:表和列定义
CREATE TABLE t1 (c1 CHAR(10) CHARACTER SET latin1)
这次我们有一个列latin1
字符集和默认排序规则。尽管这看起来很自然,但默认排序规则并不是来自表级。相反,因为默认的排序规则latin1
总是latin1_swedish_ci
、列c1
有整理的latin1_swedish_ci
(不latin1_danish_ci
).
例3:表和列定义
CREATE TABLE t1 (c1 CHAR(10)) DEFAULT CHARACTER SET latin1;
我们有一个具有默认字符集和默认排序规则的列。在这种情况下,MySQL检查表级别以确定列字符集和排序规则。因此,列的字符集c1
是latin1
它的排序是latin1_danish_ci
.
例4:数据库、表和列定义
CREATE DATABASE d1 DEFAULT CHARACTER SET latin2使用d1;CREATE TABLE t1 (c1 CHAR(10));
创建列时不指定其字符集和排序规则。我们也没有在表级别指定字符集和排序规则。在这种情况下,MySQL检查数据库级别以确定表设置,表设置随后成为列设置。)因此,列的字符集c1
是latin2
它的排序是latin2_czech_ci
.