Mysql 字符集及排序规则
字符集:就是用来定义字符在数据库中的编码的集合。
常见的字符集:utf8、Unicode、GBK、GB2312(支持中文)、ASCCI(不支持中文)
作者本人用的是utf8_general_ci
后缀ci (case insensitive)意味不区分大小写(大小写不敏感),后缀cs (case sensitive)区分大小写(大小写敏感)
utf8_bin 规定每个字符串用二进制编码存储,区分大小写,可以直接存储二进制的内容
如ci情况下:select name,age from userinfo; 等价于SELECT NAME,AgE FROM userinfo; 大小写字符判断是一样的
而在cs情况下:假设字段名严格为name, age,表名:UserInfo。那么就必须:select name,age from UserInfo; 大小写字符判断有区分
而bin意思是二进制,所以小写u和大写U会被区别
例如你运行:
SELECT name FROM UserInfo WHERE name = 'Lina'
那么在utf8_bin中你就找不到 name = 'lina' 的那一行, 在utf8_general_ci 下可以.
1. utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
2. utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果
3. utf8_bin:字符串每个字符串用二进制数据编译存储。 区分大小写,而且可以存二进制的内容

utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。
utf8_unicode_ci准确度高,但校对速度稍慢。
utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了
总结:
排序规则,就是指字符比较时是否区分大小写,以及是按照字符编码进行比较还是直接用二进制数据比较。
Mysql 字符集及排序规则的更多相关文章
- MySQL字符集与排序规则总结
字符集与排序规则概念 在数据库当中都有字符集和排序规则的概念, 很多开发人员甚至包括有些DBA都会将这个混淆,当然这个情况也有一些情有可原的原因.一来两者本来就是相辅相成,相互依赖关联: 另外一方 ...
- MySql字符集与排序规则详解
前段时间往MySQL中存入emoji表情或生僻字.繁体字时,报错无法添加,研究后发现这是字符集编码的问题,今天就来分析一下各个字符集与排序规则 一.字符集 先说字符,字符是各种文字和符号的总称,包括各 ...
- 2021-2-18:请你说说MySQL的字符集与排序规则对开发有哪些影响?
任何计算机存储数据,都需要字符集,因为计算机存储的数据其实都是二进制编码,将一个个字符,映射到对应的二进制编码的这个映射就是字符编码(字符集).这些字符如何排序呢?决定字符排序的规则就是排序规则. 查 ...
- 数据库字符集与排序规则(Character Set And Collation)
数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). (注意:Collation原意为校对,校勘,但是根据实际使用场景 ...
- MySQL 字符集与比较规则
MySQL 字符集与比较规则 由于 MySQL 客户端与服务端之间通信时需要将字符串编码传输,所以不可避免会产生编码转换 字符集 MySQL 中 utf8 就是 utf8mb3,只使用 1-3 个字节 ...
- Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题
Mysql数据库表排序规则不一致导致联表查询,索引不起作用问题 表更描述: 将mysql数据库中的worktask表添加ishaspic字段. 具体操作:(1)数据库worktask表新添是否有图片字 ...
- MySql数据库字段排序规则不一致产生的一个问题
最近项目向MySql迁移,迁移完毕后,在获取用户权限时产生了一个异常,跟踪进去获取执行的语句如下, SELECT PermissionId FROM spysxtPermission WHERE (R ...
- Mysql中的排序规则utf8_unicode_ci、utf8_general_ci总结
Mysql中utf8_general_ci与utf8_unicode_ci有什么区别呢?在编程语言中,通常用unicode对中文字符做处理,防止出现乱码,那么在MySQL里,为什么大家都使用utf8_ ...
- MySQL 查看编码 排序规则
查看数据库的排序规则 mysql> show variables like 'collation%'; +----------------------+-------------------+ ...
随机推荐
- Windows 快捷方式(*.link)打开方式关联错误
1.Win+r 组合键打开 “运行”,输入 “regedit” 打开 注册表 2.依次打开注册表,定位到以下位置: HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDO ...
- M码小黄衫买家秀=w=
M码小黄衫买家秀=w= 17°的天气穿不了短袖polo..就只能这样强行上图啦~ 因为我一直耿耿于大一面向对象课上拿到的那件XL码小黄衫,长到能穿到膝盖,拍小黄衫全家福时候只能很凄凉的借了件小号的穿, ...
- Spring的AOP开发入门,Spring整合Junit单元测试(基于ASpectJ的XML方式)
参考自 https://www.cnblogs.com/ltfxy/p/9882430.html 创建web项目,引入jar包 除了基本的6个Spring开发的jar包外,还要引入aop开发相关的四个 ...
- 1.tushare模块的应用
tushare模块的应用 今日概要 TuShare简介和环境安装 TuShare的应用 今日详情 一.TuShare简介和环境安装 TuShare是一个著名的免费.开源的python财经数据接口包.其 ...
- n阶方阵的最值问题和对角线的和问题
如题! package 矩阵2; public class JuZheng { public static void main(String args[]) { int array[][] = { { ...
- Eclipse debug 断点不能调试 ,Eclipse Unable to install breakpoint in 解决办法
解决:[1]项目工程名 ,右键 --> properties --> java compiler -->class file Generation 位置 Add line numb ...
- C#深度学习の委托深度解析
一.我们在使用C#的过程中,不可避免的用到了委托. 委托的本质是什么呢? 从语法上看,委托是对方法的抽象封装,例如:public void print1(),public void print2(), ...
- centos7下kubernetes(1。kubernetes---start)
kubernetes官网:https://kubernetes.io/docs/home/ 也是怀着不情愿的心情,要开始kubernetes了,本身是非常热爱技术,尤其是容器技术,可能是最近有点累和懈 ...
- docker 2 docker介绍
docker是基于go语言实现的云开源项目 docker的主要目标是‘build ,ship and run any app,anywhere’,也就是说通过对应用程序组件的封装,分发,部署,运行等生 ...
- Android-App性能测试工具GT的使用方法
参考链接: https://www.cnblogs.com/syw20170419/p/7228145.html?utm_source=itdadao&utm_medium=referral ...