校对集:数据比较方式;必须在无数据前进行声明,如果有了数据再进行数据修改,那么修改无效!
其有三种格式:
- _bin:binary,二进制比较,取出二进制位,一位一位进行比较,区分大小写;
- _cs:case sensitive,大小写敏感,区分大小写;
- _ci:case insensitive,大小写不敏感,不区分大小写。
【1】查看数据库所支持的校对集
show collation
【2】对比不同校对集的效果
对比:使用utf8的_bin and _ci来验证不同校对集的效果;
① 创建两张使用不同校对集的表:
CREATE TABLE `my_collate_bin` (
`name` char(1) COLLATE utf8_bin DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
CREATE TABLE `my_collate_ci` (
`name` char(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
② 分别插入数据:
insert into my_collate_bin VALUES('a','A','B','b');
insert into my_collate_ci VALUES('a','A','B','b');
③ 比较:根据某个字段进行排序-order by 字段名[asc||desc] ;
select * from my_collate_bin ORDER BY name;
select * from my_collate_ci ORDER BY name;
可以看到图一是正常排序,图二未区分大小写(一般应用中,默认不区分大小写,使用utf8_general_ci)。