一、排序规则概念

在mysql数据库中,排序规则是依赖字符集编码的,他们在mysql中经常是捆绑的存在。

排序规则一般指对字符集中字符串之间的比较、排序制定的规则。一种字符集可以对应多种排序规则,但是一种排序规则只能对应指定的一种字符集,两个不同的字符集不能有相同的排序规则

上图中utf8mb4字符集对应多个排序规则。每种字符集都有一个默认的排序规则。比如上图中utf8mb4默认的排序规则就是utf8mb4_general_ci。

排序规则和字符集一样,在实例,schema,表,字段级别都可以设置,优先级如下:
字段>表>schema>实例

也就是说,如果字段上设置了字符集和排序规则,那么就采用字段上的字符集和排序规则,如果没有设置就使用表的,如果表上也没有设置,那就是默认使用schema上的,如果schema上也没有设置,那么就使用实例上的字符集和排序规则。

排序规则前缀是字符集编码,中间是排序规则名称,后缀有特殊意义如下(常用的):

_ci : 不区分大小写, Case-insensitive的缩写_cs : 区分大小写,Case-sensitive的缩写_ai : 不区分重音,Accent-insensitive的缩写_as : 区分重音,Accent-sensitive的缩写_bin : 二进制

例:utf8mb4_general_ci这个排序规则中,utf8mb4是字符集编码,general是排序规则名称,ci意味着不区分大小写。

二、排序规则的影响

**排序规则最重要的影响就是如果多表关联查询时,如果表上关联的字段排序规则不一样,则无法进行关联查询。**会抛出如下错误:

Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '='

这个时候,必须要把关联字段的排序规则修改成一样才可以进行联合查询。
第二个影响就是在对两个不同排序规则的字段进行字符串比较或者排序时会产生不同的结果。
所以为了避免上述两种情况,需要在建表,建库时使用正确的字符集编码和排序规则。

MySQL学习笔记3:排序规则和排序规则的影响相关推荐

  1. Hadoop学习笔记—11.MapReduce中的排序和分组

    Hadoop学习笔记-11.MapReduce中的排序和分组 一.写在之前的 1.1 回顾Map阶段四大步骤 首先,我们回顾一下在MapReduce中,排序和分组在哪里被执行: 从上图中可以清楚地看出 ...

  2. Mysql学习笔记(三)运算符和控制流函数

    原文:Mysql学习笔记(三)运算符和控制流函数 本章学习内容: 1.操作符 2.控制流程函数 操作符: i.圆括号.. 简单的介绍一下圆括号,圆括号的使用的目的是规定计算表达式的顺序...这个想必大 ...

  3. MySQL学习笔记-基础篇1

    MySQL 学习笔记–基础篇1 目录 MySQL 学习笔记--基础篇1 1. 数据库概述与MySQL安装 1.1 数据库概述 1.1.1 为什么要使用数据库 1.2 数据库与数据库管理系统 1.2.1 ...

  4. MySQL学习笔记(1)——高可用组复制

    MySQL学习笔记(1)--高可用组复制 积土成山,风雨兴焉.积水成渊,蛟龙生焉. 一.概念 组复制(MySQL Group Replication,MGR)是MySQL官方在MySQL 5.7.17 ...

  5. JavaEE 企业级分布式高级架构师(六)MySQL学习笔记(6)

    MySQL学习笔记 性能优化篇 性能优化的思路 慢查询日志 慢查询日志介绍 开启慢查询功能 演示一 演示二 分析慢查询日志 MySQL自带的mysqldumpslow 使用percona-toolki ...

  6. MySQL学习笔记(三)查询

    写在前面:本篇为作者自学总结,学习内容为课堂所学和网络学习笔记汇总,对于内容引用部分在文中和文末注明. 文章仅供参考,如需深入了解,请查阅MySQL参考手册.附上下载链接: 链接:https://pa ...

  7. MySQL 学习笔记②

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 视频链接:https://www.bilibili.com/video/BV1Kr4y1i7ru 资料链接 ...

  8. 献给入门小白的MySQL学习笔记+案例

    MySQL学习笔记 目录 MySQL学习笔记 1.SQL概述 1.1:数据库的好处 1.2:数据库管理系统 1.3:SQL语言概述 1.4:SQL语言的分类 2.安装与使用 2.1:MySql数据库产 ...

  9. Mysql 学习笔记(快速复习)

    Mysql 学习笔记(快速复习) 一.MySQL 基础 1.数据库连接工具 1.1.Navicat 使用教程 2.DDL 操作数据库 2.1.创建新数据库 2.2.删除数据库 2.3.使用数据库 3. ...

  10. mysql 学习笔记--存储引擎、索引、sq优化

    全面的 mysql学习笔记–通用语法.函数.数据类型.约束.多表查询.事务 全面的 mysql学习笔记–存储引擎.索引.sql优化 全面的mysql学习笔记–视图/存储过程/触发器.锁.InnoDB引 ...

最新文章

  1. 操作无法完成后台打印程序无法运行
  2. qt android 开发之wifi开发篇
  3. python现在第几版-多版本Python共存的配置方法
  4. 大家都在看的公众号是哪几个?
  5. python模块学习(1)
  6. 马上工作了,想问下要注意哪些问题?
  7. awk输出指定行,awk如何取反
  8. python2.7输出语句_python2.7入门---模块(Module)
  9. chrome charset使用_使用JWT保护你的Spring Boot应用 Spring Security实战
  10. android 中如何监听按键的长按事件
  11. 机器学习-笔试题总结1
  12. 巧用MacOS的勿扰模式,解决广告弹窗
  13. WordPress 速度优化的完整指南
  14. 小米6无限重启无服务器,网友投诉小米手机无限重启 官方客服已回复
  15. UML用例图之寻找参与者与用例
  16. 从键盘上输入以下的数据:TOM:89|JERRY:90|TONY:95,数据格式为“姓名:成绩|姓名:成绩|姓名:成绩”,对输入的内容按成绩进行排序,并将结果按成绩由高到低排序。
  17. choice数据股票量化接口是什么?
  18. Excel函数SUMIFS和COUNTIFS详解
  19. 嵌入式 配置arm工具链
  20. 中国中型皮卡市场趋势报告、技术动态创新及市场预测

热门文章

  1. rx6800m是什么级别显卡 RX6800m显卡什么水平
  2. 基于单片机开发的电子体温计方案
  3. 在线食物卡路里计算器html源码,卡路里计算器微信小程序前后端交互
  4. 在腾讯云服务器Linux系统中安装MySQL【完美解决】
  5. 计算机毕业设计Java小动物领养网站(源码+系统+mysql数据库+Lw文档)
  6. 最新电商之推荐系统要诀~
  7. Idea设置:注释模板
  8. nginx升级1.20.1版本
  9. 剑侠情缘测试版网络验证
  10. C4D致富经典入门到精通(一)