概念说明
1、字符集( Set)
定义了字符和二进制的对应关系,为字符分配了唯一的编号。
2、字符编码( )
字集码,规定了字符的编号存储到计算机中。如:ASCII、IOS-8859-1、GB2312、GBK,既表示了字符集又表示了对应的字符编码。
3、校对规则()
也可称为排序规则,在同一个字符集内字符之间的比较规则,字符集和校对规则是一对多的关系,每个字符集都有一个默认的校对规则,字符集和校对规则相辅相成,相互依赖关联。
4、总结
字符集定义了MySQL存储字符串的方式,校对规则定义了MySQL比较字符串的方式。
字符集( Set)
1、查询支持的字符集以及默认的校对规则
show set;
2、查询当前MySQL使用的字符集
show like '%%'
3、MySQL字符编码转换原理
①MySQL Server收到请求时将请求数据从转换为tion。
②进行内部操作前将请求数据从tion转换为内部操作字符集。
校对规则()
1、查询支付的校对规则
show ;
2、查询当前MySQL使用的校对规则
show like '%%';
3、校对规则特征
①两个不同的字符集不能有相同的校对规则。
②每个字符集有一个默认校对规则。
③存在校对规则命名约定:以其相关的字符集名开始,中间包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。
4、说明总结
系统使用utf8字符集,若使用校对规则执行SQL查询时区分大小写,使用不区分大小写(默认的utf8字符集对应的校对规则是)。
实战常用
1、创建数据库指定编码及校对规则
create database demo1 character set=gbk collate=gbk_bin;
2、创建表指定编码及校对规则
create table demo2(
id int,
name varchar(20)
)
character set=gbk,collate=gbk_bin;
3、创建表字段指定编码及校对规则
create table demo3(
id int,
name varchar(20),
email varchar(100) collate gbk_bin,
mobile varchar(100) collate utf8mb4_unicode_ci
)
character set=gbk,collate=gbk_bin;
*请认真填写需求信息,我们会在24小时内与您取得联系。