编码区别

在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的区别相关推荐

  1. mysql general bin区别_MySQL_Mysql常见问题集锦,1,utf8_bin跟utf8_general_ci的区别 - phpStudy...

    Mysql常见问题集锦 1,utf8_bin跟utf8_general_ci的区别 ci是 case insensitive, 即 "大小写不敏感", a 和 A 会在字符判断中会 ...

  2. mysql general bin区别_MySQL中几种常见的日志

    前言: 在 MySQL 系统中,有着诸多不同类型的日志.各种日志都有着自己的用途,通过分析日志,我们可以优化数据库性能,排除故障,甚至能够还原数据.这些不同类型的日志有助于我们更清晰的了解数据库,在日 ...

  3. 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将字符串中的每一个字符用二进制数据存储 ...

  4. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

    2019独角兽企业重金招聘Python工程师标准>>> 用了这么长时间,发现自己竟然不知道utf_bin和utf_general_ci这两者到底有什么区别.. ci是 case in ...

  5. Mysql中各种与字符编码集(character_set)有关的变量含义

    mysql涉及到各种字符集,在此做一个总结. 字符集的设置是通过环境变量来设置的,环境变量和linux中的环境变量是一个意思.mysql的环境变量分为两种:session和global.session ...

  6. Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别

    utf8_unicode_ci和utf8_general_ci对中.英文来说没有实质的差别. utf8_general_ci 校对速度快,但准确度稍差. utf8_unicode_ci 准确度高,但校 ...

  7. php指定编码创建,MYSQL创建数据库时指定编码

    mysql 创建 数据库时指定编码很重要,很多开发者都使用了默认编码,但是我使用的经验来看,制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题. 我们遵循的标准是,数据库,表,字段和页面或文本的 ...

  8. mysql中utf8和utf8mb4的详解用法与区别

    一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...

  9. 用utf-8完全解决jsp mysql多国语言文字编码问题_用UTF-8完全解决JSP+MYSQL多国语言文字编码问题...

    用UTF-8完全解决JSP+MYSQL多国语言文字编码问题 此问题这是本人经过数天努力,查遍网上所有此类文章最后自己解决的.转载请务必注明出处: http://blog.donews.com/rali ...

最新文章

  1. 抓取网页的脚本 【修复】
  2. android的UDC功能,Android实现搜索历史功能
  3. 【工具】统计jar包和apk中的java方法数
  4. json中{}和[]的区别
  5. 《Spark快速大数据分析》—— 第三章 RDD编程
  6. ios上架图片在线制作_不同风格gif在线制作,公众号动态图片制作方法
  7. apache camel_REST与Apache Camel
  8. java web与android互通的aes算法
  9. centos 7用ss命令来查看端口占用和对应进程
  10. ES5 和ES6 继承机制
  11. k-means算法原理及实战
  12. java线程的状态有几种_Java线程的几种可用状态
  13. 轻松学习理解ACL访问控制列表(转)
  14. 数字图像处理学习 matable
  15. 软件开发中需求分析的过程、层次、阶段、重点都在这里
  16. android nfc P2P模式
  17. java写入文件中文乱码问题_解决 JAVA 写入文本文件时中文乱码
  18. 【转载】Confluence(wiki)配置数据库及修改数据库地址
  19. 《斩魔问道》突破传统玩法,实时强战PK,爆裂高清画质的仙侠手游巨作
  20. Linux-进程调度(CFS)

热门文章

  1. Hadoop 面试,来看这篇就够了
  2. stm32串口空闲中断接收不定长数据
  3. 实践GoF的设计模式:单例模式
  4. “数”驰天下,华为云DRS 高效支撑T3出行平稳迁移
  5. 鸿蒙轻内核定时器Swtmr:不受硬件和数量限制,满足用户需求
  6. 【华为云技术分享】#探索鲲鹏#之“在鲲鹏上使用编程语言——C语言
  7. mysql 匹配所有记录_如何记录mysql中所有的查询
  8. 现代图论笔记(二)树与二分图
  9. mysql5.6 in走索引吗_MySQL5.6 单列、多列索引以及IN语句的优化(翻译)
  10. 从WordCount看Spark大数据处理的核心机制(1)