博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL中的排序规则
阅读量:6857 次
发布时间:2019-06-26

本文共 927 字,大约阅读时间需要 3 分钟。

hot3.png

MySQL中的排序规则。在新建MySQL或表的时候经常会选择字符集和排序规则。数据库用的字符集大家都知道是怎么回事,那排序规则是什么呢?

排序规则:是指对指定字符集下不同字符的比较规则。其特征有以下几点:
1、 两个不同的字符集不能有相同的排序规则
2、 两个字符集有一个默认的排序规则
3、 有一些常用的命名规则。如_ci结尾表示大小写不敏感(caseinsensitive),_cs表示大小写敏感(case sensitive),_bin表示二进制的比较(binary).
在MySQL数据库中,可以使用show collation来查看支持的各种排序呢规则

utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。

utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会造成不良后果
utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容

utf8_general_ci校对速度快,但准确度稍差。

utf8_unicode_ci准确度高,但校对速度稍慢。

 

\

为了易于数据扩展,一般我们创建数据库都会选择utf8字符集,那么utf8字符集的默认排序规则是什么呢?我们可以通过“show charset like 'utf8%' ”进行查看。

\

Utf8的默认排序规则是“utf8_general_ci”,上文已经说了以“_ci”结尾的表示大小写不敏感,我们可以来测试一下。

use test;drop table if EXISTS test;create table test(    a varchar(1) not null)COLLATE utf8_general_ci;insert into test select 'a';insert into test select 'A';  select * from test where a ='a';

通过运行结果可以看到,使用这种排序规则确实是不区分大小写的。

大小写敏感的需求还是要是应用程序的需求而定的。

转载于:https://my.oschina.net/robslove/blog/3055255

你可能感兴趣的文章
java.sql.SQLException: Field 'id' doesn't have a default value解决方案
查看>>
设置更改root密码 连接mysql mysql常用命令
查看>>
基于 Token 的身份验证
查看>>
C#从证书存储区读取证书
查看>>
NE555
查看>>
Docker 删除所有无名称的镜像(悬空镜像)
查看>>
URI -URL-URN区别
查看>>
Java 8 lambda表达式示例
查看>>
洛谷P3382 【模板】三分法(三分)
查看>>
简单了解JS中的几种遍历
查看>>
少走弯路的10条忠告
查看>>
一个多maven项目聚合的实例
查看>>
Mac终端解压命令集合
查看>>
事务日志已满,原因为“ACTIVE_TRANSACTION”
查看>>
linux 按照端口一句命令杀死进程,按照进程名称一句命令杀死进程
查看>>
The last packet sent successfully to the server was 0 milliseconds ago.[nutch---mysql ]
查看>>
win10初期版本administrator的限制
查看>>
使用LVS实现负载均衡原理及安装配置详解
查看>>
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
查看>>
linux异步IO--aio
查看>>