数据库_10_校对集问题

校对集:数据比较方式

校对集有三种格式:

  _bin:binary,二进制,取出二进制位,从左向右一位一位的比较,区分大小写

  _cs:case sensitive,大小写敏感,区分大小写。(很少)(utf8不支持)

  _ci:case insensitive,大小写不敏感,不区分大小写。

-- 查看所有校对集
show collation;

校对集应用:只有当数据产生比较的时候,校对集才会生效。

对比:使用utf8的_bin和_ci来验证不同的校对集效果

  1.创建不同校对集对应的表

-- 创建表使用不同的校对集
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; -- 默认utf8_general_ci可直接写成utf8

   

  2.插入数据

-- 插入数据
insert into my_collate_bin values('a'),('A'),('B'),('b');
insert into my_collate_ci values('a'),('A'),('B'),('b');

   

  3.比较:根据某个字段进行排序:oder 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;

   

 

posted @ 2018-05-21 11:28  耐烦不急  阅读(211)  评论(0编辑  收藏  举报