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

MySQL大小写敏感总结

作者头像
MySQL轻松学
发布于 2018-12-05 02:57:52
发布于 2018-12-05 02:57:52
3.7K0
举报
文章被收录于专栏:MYSQL轻松学MYSQL轻松学

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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
mysql大小写敏感与校对规则
模糊匹配 jg%,结果以JG开头的字符串也出现在结果集中,大家很自然的认为是大小写敏感的问题。那么mysql中大小写敏感是如何控制的;数据库名,表名,字段名这些字典对象以及字段值的大小敏感是如何控制的;以及校验规则与索引的关系,这是本文要讨论的内容。
我的小碗汤
2018/08/22
5.2K0
mysql大小写敏感与校对规则
在Linux下管理MySQL的大小写敏感性
当开发与Linux环境下MySQL数据库交互的Java应用程序时,理解MySQL中的大小写敏感性可以避免潜在的错误和问题。本指南深入探讨了MySQL中的大小写敏感设置,比较了5.7和8.0版本,并为Java开发者提供了最佳实践。
JavaEdge
2024/05/25
5900
小白学习MySQL - 大小写敏感问题解惑
《Oracle中大小写敏感的问题》这篇文章介绍了Oracle数据库中对大小写的敏感问题。不同的数据库有不同的设计思路,有的可能偏灵活,有的可能偏严谨,这就需要使用者,能够了解她们的联系和区别,才可以准确运用数据库提供给我们的特性和功能。
bisal
2021/09/06
1.3K0
小白学习MySQL - 大小写敏感问题解惑
MySQL中识别符大小写敏感性学习--MySql语法
本文学习是MySQL中识别符大小写敏感性学习,在MySQL中,数据库对应数据目录中的目录。数据库中的每个表至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎)。因此,所使用操作系统的大小写敏感性决定了数据库名和表名的大小写敏感性。这说明在大多数Unix中数据库名和表名对大小写敏感,而在Windows中对大小写不敏感。一个显著的例外情况是Mac OS X,它基于Unix但使用默认文件系统类型(HFS+),对大小写不敏感。然而,Mac OS X也支持UFS卷,该卷对大小写敏感,就像Unix一样。
用户1289394
2021/07/30
1K0
MySQL如何设置不区分大小写
本文将深入探讨MySQL数据库中如何设置不区分大小写,并针对不同操作系统以及使用Navicat等工具的情况进行详细介绍。通过了解如何设置不区分大小写,您可以更好地管理MySQL数据库,提高工作效率。
默 语
2024/11/20
3040
MySQL中的大小写敏感
今天同事问了一个问题,是关于MySQL大小写敏感的。 如果根据关键字case来搜索,会发现有两个参数。 mysql> show variables like '%case%'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | lower_case_file_system | OFF | | lower_case_table_names |
jeanron100
2018/03/21
2.6K0
MySQL 字符集与大小写敏感性解析
MySQL 字符集搭配不同的排序规则(Collation)可能会影响查询的大小写敏感性。
沈唁
2025/02/26
1200
MySQL 字符集与大小写敏感性解析
MySQL 面试选择题15道(单选)
1、MySQL数据库四种特性,不包括() A.原子性 B.事务性 C.一致性 D.隔离性 2、MySQL报错error 1062 的意思是() A.连接数据库失败,没有连接数据库的权限 B.字段值重复,入库失败 C.未定义用户对数据表的访问权限 D.删除数据库文件失败 3、MySQL主从架构如下: 主库 从库 192.169.1.1 192.168.1.2 需要在从库上采用mysqldump备份并记录主库binlog、Position点,需要加哪个参数(不考虑其
MySQL轻松学
2018/03/09
9.5K0
LOWER_CASE_TABLE_NAMES 转
http://blog.csdn.net/jesseyoung/article/details/40617031
双面人
2019/05/21
1K0
关于MySQL库表名大小写问题
一般在数据库使用规范中,我们都会看到这么一条:库名及表名一律使用小写英文。你有没有思考过,为什么推荐使用小写呢?库表名是否应该区分大小写呢?带着这些疑问,我们一起来看下本篇文章。
MySQL技术
2021/07/05
7.8K0
MySQL的大小写在drop或create触发器时的不同影响
mysql> source crt_xxx_trigger.sql ERROR 1360 (HY000): Trigger does not exist ERROR 1359 (HY000): Trigger already exists
星哥玩云
2022/08/18
1K0
mysql表名忽略大小写问题记录
问题描述: 一开发同事在linux下调一个程序老是报错说找不到表,但是登陆mysql,show tables查看明明是已经创建了这张表的!!如下: mysql> show tables; +-------------------------------------------+ | Tables_in_huan_db | +-------------------------------------------+ | advertisement
洗尽了浮华
2018/01/23
6.7K2
MySql查询不区分大小写解决方案
当我们输入不管大小写都能查询到数据,例如:输入 lingyejun 或者Lingyejun ,LingYeJun都能查询同样的结果,说明查询条件对大小写不敏感。 CREATE TABLE NAME(name VARCHAR(10));
翎野君
2023/05/12
2.5K0
mysql大小写踩坑
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_lower_case_table_names
阿超
2022/08/21
1.6K0
将现有MySQL数据库改为大小写不敏感
用过MySQL的应该都会注意到,默认情况下,Linux下安装的MySQL是大小写敏感的,也就是说Table1和table1可以同时存在。而Windows下的MySQL却是大小写不敏感的,所有表名和数据库名都会变成小写。
深蓝studyzy
2022/06/16
1.6K0
MySQL存储的字段是不区分大小写的,你知道吗?
之前写过一篇关于mysql 对表大小写敏感的问题(你有遇到过MySQL因大小写敏感导致的问题吗),其实在mysql中字段存储的内容是不区分大小写的,本篇进行简单的总结。
全栈程序员站长
2022/07/20
5K0
ClickHouse 数据类型、函数大小写敏感性
ClickHouse是一种高性能、分布式的列式数据库管理系统,被广泛应用于大数据领域。在使用ClickHouse进行数据存储和处理时,了解其数据类型和函数大小写敏感性是非常重要的。本文将深入探讨ClickHouse的数据类型以及函数在不同情况下的大小写敏感性。
大盘鸡拌面
2023/11/03
1.2K0
如何把MysSQL设置为大小写敏感
MySQL在windows下是不区分大小写的,将script文件导入MySQL后表名也会自动转化为小写,结果再 想要将数据库导出放到linux服务器中使用时就出错了。因为在linux下表名区分大小写而找不到表,查了很多都是说在linux下更改MySQL的设置使其也不区分大小写,但是有没有办法反过来让windows 下大小写敏感呢。其实方法是一样的,相应的更改windows中MySQL的设置就行了。 具体操作: 在MySQL的配置文件my.ini中增加一行: lower_case_table_names = 0 其中 0:区分大小写,1:不区分大小写 MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:    1、数据库名与表名是严格区分大小写的;    2、表的别名是严格区分大小写的;    3、列名与列的别名在所有的情况下均是忽略大小写的;    4、变量名也是严格区分大小写的; MySQL在Windows下都不区分大小写
葆宁
2019/04/19
1.6K0
Ambari Hive 无法正常查询的解决
$ beeline -u "jdbc:hive2://hostname.domain.cn:10000/default;principal=hive/_HOST@domain.com;" Connecting to jdbc:hive2://hostname.domain.cn:10000/default;principal=hive/_HOST@domain.com; Connected to: Apache Hive (version release-1.2.1-EDH-1.1.2) Driver: Hive JDBC (version release-1.2.1-EDH-1.1.2) Transaction isolation: TRANSACTION_REPEATABLE_READ Beeline version release-1.2.1-EDH-1.1.2 by Apache Hive 0: jdbc:hive2://hostname.domain.cn:10000> show databases;
星哥玩云
2022/08/16
1.5K0
Ambari Hive 无法正常查询的解决
故障分析 | 库表名-大小写不规范,运维两行泪
客户需要做一套库的迁移,因为库的数据量不大,40G左右,并且需要到远程机器上去做全量恢复。所以第一时间想到的自然是 mysqldump 工具来做。但是没想到会发生这种“惨案”。
爱可生开源社区
2023/01/17
7460
相关推荐
mysql大小写敏感与校对规则
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文