MySQL存储的字段为什么是不区分大小写的


下面一起来了解下MySQL存储的字段为什么是不区分大小写的,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL存储的字段为什么是不区分大小写的这篇短内容是你想要的。
之前写过一篇关于mysql 对表大小写敏感的问题,其实在mysql中字段存储的内容是不区分大小写的,本篇进行简单的总结。想回顾一下:MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:1、数据库名与表名是严格区分大小写的;2、表的别名是严格区分大小写的;3、列名与列的别名在所有的情况下均是忽略大小写的;4、字段内容默认情况下是大小写不敏感的。简单例子:使用 查询语句查询 username 为 全部小写的user 的用户,结果查询出这个三条记录全部都查询到了。通过这个例子简单说明,字段内容默认情况下是大小写不敏感的。**因为默认情况下字段内容是不区分大小写的,也即大小写不敏感。**所以解决方案就是要新增字段内容的校验规则。使用mysql 的BINARY 关键字使搜索区分大小写。在查询的sql中加入BINARY 关键字这种方式相对较简单,不用改动表结构,只需在需要区分查询的字段前加上关键字。这种方式也是有缺点的,每次写查询的时候都要注意加关键字,并可能需要改开发云主机域名动的代码较多。在创建表的时候进行限制或者 使用使用 NGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin会将字段中varchar类型的全部设置区分大小写。这两种查看表的详情,本质上都是 在字段上 加上了 COLLATE utf8_bin。字段值的大小写由mysql的校对规则来控制。提到校对规则,就不得不说字符集。字符集是一套符号和编码,校对规则是在字符集内用于比较字符的一套规则。 一般而言,校对规则以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束 。比如 utf8字符集,,如下表:1)utf8_bin:utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。2)utf8_general_ci:utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。3)utf8_general_cs:utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感。注:我本机使用5.7 版本不支持 utf8_general_cs 字符集,创建报错。看完MySQL存储的字段为什么是不区分大小写的这篇文章后,很多读者朋友肯定会想要了解更多的相关内容,如需获取更多的行业信息,可以关注我们的行业资讯栏目。

相关推荐: mysql查询表信息流程讲析

本文主要给大家介绍mysql查询表信息流程讲析,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以开发云主机域名持续在开发云行业资讯里面关注我的更新文章的。SHOW COLUMNS FROM 数据表:显示数据表的属性,属性类型,主键信息,是否为NULL…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/09 08:09
下一篇 06/09 08:09

相关推荐