前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL大小写敏感总结

MySQL大小写敏感总结

作者头像
MySQL轻松学
发布2018-12-05 10:57:52
3.4K0
发布2018-12-05 10:57:52
举报

在MySQL中,数据库、表、triggers实际上都对应了datadir目录(或子目录)下的文件,因此,这些对象的名字是否大小写敏感主要是依赖于操作系统和文件系统的,因此这些内容在Windows中是大小写是不敏感的,而在大多数类Unix系统中是敏感的(Mac OS X除外),当然对于建立在这些类Unix系统上的MySQL,敏感性可以在一定程度上通过参数的修改来设定。

1、column(包括别名)、 index、routine和 event names在所有平台上大小写都是不敏感的;

2、logfile groups名称在所有平台上都是大小写敏感的;

3、database、table(包括别名)的大小写敏感性可以通过系统参数lower_case_table_names来配置(修改参数的值需要重启数据库);

  1. lower_case_table_names =0(Unix default):大小写敏感,数据按照CREATE 语句中的定义存储在磁盘,且在查询的时候是区分大小写的; 注意:不要在大小写不敏感的系统上使用此设置,因为容易导致像MyISAM引擎表的索引崩溃;
  2. lower_case_table_names =1(Windows default):大小写不敏感,MySQL将数据全部转化为小写形式存储在磁盘上,而且在查询的时候也是全部转化为小写进行比较;
  3. lower_case_table_names =2(MAC OS X default):大小写不敏感,大多数引擎是将数据按照CREATE 语句中的定义存储在磁盘上(Innodb是小写存储),但是在查询的时候全部转化为小写进行比较;这种设置仅适用于大小写不敏感的操作系统;

4、trigger identifiers的大小写敏感性不受lower_case_table_names参数影响,在Windows和MAC OS X上是不敏感的,在其他类Unix系统上是不敏感的;

5、数据敏感性:由Mysql的校对字符集规则来控制(Collation),默认大小写不敏感;

  1. 每一个字符型column都有一个“字符集属性(character set)”和一个“校对集属性(collation set)”,其中character set影响列的存储编码,collation影响列数据的排序规则(或者说比较规则);
  2. 可以通过“show collation”命令查看当前版本DB支持的所有collation,其中“_ci”代表case-insensitive大小写不敏感,“_cs”代表case-sensitive大小写敏感,“_bin”的大小写敏感依赖于character的二进制编码;
  3. collation可以在数据库对象(server、database、table、column)的定义中指定,也可以在SQL语句中使用;可以通过“show variables like 'collation%'”查看数据库级别设置的各种collation规则,分为connection、database和server;
  4. collation的声明需要和字符集一一对应,例如utf8_general_ci不能和latin1同时使用;

例如有如下2条记录,如果我们只想查询小写的'a'怎么办?MySQL root@[test]>select * from t1 where name ='a'; +------+------+ | id | name | +------+------+ | 1 | a | | 2 | A | +------+------+可以在字段name前加个binary,使其区分大小写:MySQL root@[test]>select * from t1 where binary name ='a';+------+------+| id | name |+------+------+| 1 | a |+------+------+

如果不调参数,各种类型大小写敏感如下:

类型

敏感

不敏感

database

table

index

column

value

routine

trigger

event

MYSQL轻松学

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-10-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MYSQL轻松学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档