mysql general bin区别_MySQL_编码utf8_bin和utf8_general_ci的区别
编码区别
在mysql中存在着各种utf8编码格式,如下(新建数据库时一般选用utf8_general_ci就可以):
utf8_bin:将字符串中的每一个字符用二进制数据存储,区分大小写(在二进制中 ,小写字母 和大写字母 不相等.即 a !=A)。
utf8_genera_ci:不区分大小写,ci为case insensitive的缩写(insensitive ; 中文解释: adj. 感觉迟钝的,对…没有感觉的),即大小写不敏感。
utf8_general_cs:区分大小写,cs为case sensitive的缩写(sensitive 中文解释:敏感事件;大小写敏感;注重大小写;全字拼写须符合),即大小写敏感
utf8_unicode_ci:不能完全支持组合的记号。
应用上的差别
utf8_general_ci与utf8_unicode_ci
一句话概况:utf8_unicode_ci比较准确,utf8_general_ci速度比较快。
utf8_general_ci与utf8_bin
用utf8_genera_ci没有区分大小写,导致这个字段的内容区分大小写时出问题:
作为密码时就会出现不合理的方面;
而验证码则一般不区分大小写,所以用这个就合理
utf8_general_cs这个选项一般不用,所以使用utf8_bin区分大小写
修改编码
两种修改方案:
通过SQL(结构化查询语言(Structured Query Language))来修改
alter table emp modify ename varchar(30) collate utf8_general_ci
直接通过设计表,点击需要修改字段,直接可修改utf8_general_ci为utf8_bin。
示例
CREATE TABLE `t_bin` (
`id`int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
UNIQUE KEY `uk_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `t_ci` (
`id`int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
UNIQUE KEY `uk_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
CREATE TABLE `t_default` (
`id`int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
UNIQUE KEY `uk_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
执行以下语句
insert into t_bin values (1, 'Alex');
insert into t_bin values (2, 'alex');
insert into t_ci values (1, 'Alex');
insert into t_ci values (2, 'alex');
insert into t_default values (1, 'Alex');
insert into t_default values (2, 'alex');
结果如下:
insert into t_bin values (1, 'Alex')> Affected rows: 1
> 时间: 0.067s
insert into t_bin values (2, 'alex')> Affected rows: 1
> 时间: 0.031s
insert into t_ci values (1, 'Alex')> Affected rows: 1
> 时间: 0.098s
insert into t_ci values (2, 'alex')> 1062 - Duplicate entry 'alex' for key 'uk_name'
> 时间: 0.024s>
结果分析
编码为utf8_bin时,Alex和alex被认为是两个不同的值,区分大小写;
编码为utf8_general_ci时,即默认的编码时,Alex和alex被认为是相同的值,不区分大小写。
所以在选择编码的时候应该注意区分。
mysql general bin区别_MySQL_编码utf8_bin和utf8_general_ci的区别相关推荐
- mysql general bin区别_MySQL_Mysql常见问题集锦,1,utf8_bin跟utf8_general_ci的区别 - phpStudy...
Mysql常见问题集锦 1,utf8_bin跟utf8_general_ci的区别 ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会 ...
- mysql general bin区别_MySQL中几种常见的日志
前言: 在 MySQL 系统中,有着诸多不同类型的日志.各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据.这些不同类型的日志有助于我们更清晰的了解数据库,在日 ...
- mysql _bin编码_mysql中utf8_bin、utf8_general_ci、utf8_general_cs编码区别
在mysql中存在着各种utf8编码格式,如下表: 1)utf8_bin 2)utf8_general_ci 3)utf8_general_cs utf8_bin将字符串中的每一个字符用二进制数据存储 ...
- Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结
2019独角兽企业重金招聘Python工程师标准>>> 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case in ...
- Mysql中各种与字符编码集(character_set)有关的变量含义
mysql涉及到各种字符集,在此做一个总结. 字符集的设置是通过环境变量来设置的,环境变量和linux中的环境变量是一个意思.mysql的环境变量分为两种:session和global.session ...
- Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别
utf8_unicode_ci和utf8_general_ci对中.英文来说没有实质的差别. utf8_general_ci 校对速度快,但准确度稍差. utf8_unicode_ci 准确度高,但校 ...
- php指定编码创建,MYSQL创建数据库时指定编码
mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的 ...
- mysql中utf8和utf8mb4的详解用法与区别
一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...
- 用utf-8完全解决jsp mysql多国语言文字编码问题_用UTF-8完全解决JSP+MYSQL多国语言文字编码问题...
用UTF-8完全解决JSP+MYSQL多国语言文字编码问题 此问题这是本人经过数天努力,查遍网上所有此类文章最后自己解决的.转载请务必注明出处: http://blog.donews.com/rali ...
最新文章
- 抓取网页的脚本 【修复】
- android的UDC功能,Android实现搜索历史功能
- 【工具】统计jar包和apk中的java方法数
- json中{}和[]的区别
- 《Spark快速大数据分析》—— 第三章 RDD编程
- ios上架图片在线制作_不同风格gif在线制作,公众号动态图片制作方法
- apache camel_REST与Apache Camel
- java web与android互通的aes算法
- centos 7用ss命令来查看端口占用和对应进程
- ES5 和ES6 继承机制
- k-means算法原理及实战
- java线程的状态有几种_Java线程的几种可用状态
- 轻松学习理解ACL访问控制列表(转)
- 数字图像处理学习 matable
- 软件开发中需求分析的过程、层次、阶段、重点都在这里
- android nfc P2P模式
- java写入文件中文乱码问题_解决 JAVA 写入文本文件时中文乱码
- 【转载】Confluence(wiki)配置数据库及修改数据库地址
- 《斩魔问道》突破传统玩法,实时强战PK,爆裂高清画质的仙侠手游巨作
- Linux-进程调度(CFS)
热门文章
- Hadoop 面试,来看这篇就够了
- stm32串口空闲中断接收不定长数据
- 实践GoF的设计模式:单例模式
- “数”驰天下,华为云DRS 高效支撑T3出行平稳迁移
- 鸿蒙轻内核定时器Swtmr:不受硬件和数量限制,满足用户需求
- 【华为云技术分享】#探索鲲鹏#之“在鲲鹏上使用编程语言——C语言
- mysql 匹配所有记录_如何记录mysql中所有的查询
- 现代图论笔记(二)树与二分图
- mysql5.6 in走索引吗_MySQL5.6 单列、多列索引以及IN语句的优化(翻译)
- 从WordCount看Spark大数据处理的核心机制(1)