史上最简单的 MySQL 教程(八)「校对集问题」
程序员文章站
2022-06-29 11:31:33
...
校对集问题
校对集,其实就是数据的比较方式。
校对集,共有三种,分别为:
-
_bin
:binary,二进制比较,区分大小写; -
_cs
:case sensitive,大小写敏感,区分大小写; -
_ci
:case insensitive,大小写不敏感,不区分大小写。
查看(全部)校对集 –> 基本语法:show collation;
如上图所示,MySQL 数据库支持百多种校对集。
接下来,咱们在一起看看校对集的应用,因为只有当数据进行比较的时候,校对集才会生效。在这里,咱们用utf8
的_bin
和_ci
两种校对集进行比较:
-- 创建两张使用不同校对集的表
create table my_collate_bin(
name char(10)
)charset utf8 collate utf8_bin;
create table my_collate_ci(
name char(10)
)charset utf8 collate utf8_general_ci;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
如上图所示,咱们创建了两张表,分别为my_collate_bin
和my_collate_ci
,其校对集分别为_bin
和_ci
. 然后,分别向这两张表中添加数据:
-- 向表中添加数据
insert into my_collate_bin values ('a'),('A'),('B'),('b');
insert into my_collate_ci values ('a'),('A'),('B'),('b');
- 1
- 2
- 3
再分别查看两张表中的数据:
-- 查看表中的数据
select * from my_collate_bin;
select * from my_collate_ci;
- 1
- 2
- 3
下面,咱们根据表中的某个字段(在这里my_collate_bin
和my_collate_ci
都仅有一个字段)进行排序,其基本语法为:
order by + 字段名 + [asc/desc];
- 1
其中,asc
表示升序,desc
表示降序,默认为升序。执行如下 SQL 语句:
-- 排序比较
select * from my_collate_bin order by name;
select * from my_collate_ci order by name;
- 1
- 2
- 3
如上图所示,显然校对集生效啦!
此外,咱们需要特别注意的是: 校对集必须在没有数据之前声明好,如果有了数据之后,再进行校对集的修改,则修改无效。
上一篇: 基于pygame实现的飞机大战游戏
下一篇: 对于MySql的一些梳理之优化篇