史上最简单的 MySQL 教程(八)「校对集问题」

温馨提示:本系列博文已经同步到 GitHub,地址为「mysql-tutorial」,欢迎感兴趣的童鞋StarFork,纠错。

校对集问题

校对集,其实就是数据的比较方式。

校对集,共有三种,分别为:

  • _bin:binary,二进制比较,区分大小写;
  • _cs:case sensitive,大小写敏感,区分大小写;
  • _ci:case insensitive,大小写不敏感,不区分大小写。

查看(全部)校对集 --> 基本语法:show collation;

10

如上图所示,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;
11

如上图所示,咱们创建了两张表,分别为my_collate_binmy_collate_ci,其校对集分别为_bin_ci. 然后,分别向这两张表中添加数据:

-- 向表中添加数据
insert into my_collate_bin values ('a'),('A'),('B'),('b');
insert into my_collate_ci values ('a'),('A'),('B'),('b');

再分别查看两张表中的数据:

-- 查看表中的数据
select * from my_collate_bin;
select * from my_collate_ci;
13

下面,咱们根据表中的某个字段(在这里my_collate_binmy_collate_ci都仅有一个字段)进行排序,其基本语法为:

order by + 字段名 + [asc/desc];

其中,asc表示升序,desc表示降序,默认为升序。执行如下 SQL 语句:

-- 排序比较
select * from my_collate_bin order by name;
select * from my_collate_ci order by name;
14

如上图所示,显然校对集生效啦!

此外,咱们需要特别注意的是:校对集必须在没有数据之前声明好,如果有了数据之后,再进行校对集的修改,则修改无效。


温馨提示:用符号[]括起来的内容,表示可选项;符号+,则表示连接的意思。


———— ☆☆☆ —— 返回 -> 史上最简单的 MySQL 教程 <- 目录 —— ☆☆☆ ————

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏武军超python专栏

2018年8月5日对之前学习python中的问题总结

问题: linux中whereis和which的区别: whereis python     which python whereis是一个文件查找命令,...

955
来自专栏程序猿

面试题目之查询优化

面试老头问你的时候,优化的问题,这些是一部分,后边的在给吧 安装MySQL后,配置文件my.cnf的路径是:../mysql_files/sha...

2785
来自专栏linux、Python学习

案例+解读,来自有道大神的17个常用Linux命令深度解析

命令后带(Mac)标记的,表示该命令在Mac OSX下测试,其它的在Debian下测试。

1356
来自专栏Python、Flask、Django

Flask使用flask_login登录时报的一个错误

1002
来自专栏C/C++基础

MySQL出现:ERROR 3 (HY000): Error writing file '/tmp/MYbEd05t' (Errcode: 28)

在执行一个有1000万条记录的MySQL查询语句时,出现了上面的错误。百度折腾了很长时间,终于解决,特此记录。

1413
来自专栏玄魂工作室

安全杂谈——linux通配符绕过文件名黑名单

linux shell下可以通过正则匹配来匹配相应的程序并且执行。 在linux下输入man 7 glob命令可以查看相关的内容。值得注意的就这些,学过正则的一...

822
来自专栏WindCoder

MySQL数据库对象与应用-MySQL程序开发单元测验

这是微专业参加单元测试后的试题及答案整理,分享出来,供大家参考,所有标红的为答案。

711
来自专栏屈定‘s Blog

Maven仓库清理脚本

工作中本地maven仓库随着项目增多会变得越来越大,看着心烦,于是想着清理. 没有发现很好的清理策略,只能从文件以及文件夹修改时间上入手,修改时间小于指定时间的...

1693
来自专栏逆向技术

远程线程注入

一丶远程线程注入的讲解 远程线程注入的原理,我会写一个远程线程开发的例子 我们总共需要几步 /*1.查找窗口,获取窗口句柄*/ /*2.根据...

23410
来自专栏黑泽君的专栏

day56_BOS项目_08

  注意1:权限数据属于比较特殊的数据,系统在上线之后,必须先把权限数据给它初始化到数据库中去,然后这个系统才可以跑起来。如果不初始化权限数据的话,那么登录上系...

912

扫码关注云+社区