校对集:数据比较的方式
校对集有三种格式
_bin:binary,二进制比较,取出二进制位,一位一位的比较,区分大小写
_cs: case sensitive,大小写敏感,区分大小写
_ci: case insensitice,大小写不敏感,不区分大小写
查看数据库所支持的校对集:show collation;
校对集应用:只有当数据产生比较的时候,校对集才会生效。
对比:使用utf8的_bin和_ci来验证不同的校对集的效果
1.创建不同校对集对应的表
use mydatabase; -- 创建表使用不同的校对集 create table my_collate_bin( name char(1) )charset utf8 collate utf8_bin; create table my_collate_ci( name char(1) )charset utf8 collate utf8_general_ci;
-- 插入数据 insert into my_collate_bin values('a'),('A'),('B'),('b'); insert into my_collate_ci values('a'),('A'),('B'),('b');
3.比较:根据某个字段进行排序:order by 字段名 [asc|desc]; asc 升序,desc 降序,默认是升序
select * from my_collate_bin order by name; select * from my_collate_ci order by name;
校对集:必须再没有数据之前声明好,如果有了数据,那么再进行校对集修改:那么修改无效。
alter table my_collate_ci collate = utf8_bin; select * from my_collate_ci order by name;