首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于MySQL大小写问题

1.决定大小写是否敏感的参数 在 MySQL 中,数据库与 data 目录中的目录相对应。数据库中的每个都对应于数据库目录中的至少一个文件(可能是多个文件,具体取决于存储引擎)。...因此,操作系统的大小写是否敏感决定了数据库大小写是否敏感,而 Windows 系统是对大小写敏感的,Linux 系统对大小写敏感。...下面再来看下各个值的具体含义: Value Meaning 0 库以创建语句中指定的字母大小写存储在磁盘上,名称比较区分大小写。 1 库以小写形式存储在磁盘上,名称比较不区分大小写。...MySQL 在存储和查找时将所有转换为小写。此行为也适用于数据库名称和别名。 2 库以创建语句中指定的字母大小写存储在磁盘上,但是 MySQL 在查找时将它们转换为小写。...通过以上实验我们发现 lower_case_table_names 参数设为 0 时,MySQL是严格区分大小写的,而且别名同样区分大小写但列名不区分大小写,查询时也需要严格按照大小写来书写

7K32

MySQL大小写敏感总结

MySQL中,数据库、、triggers实际上都对应了datadir目录(或子目录)下的文件,因此,这些对象的名字是否大小写敏感主要是依赖于操作系统和文件系统的,因此这些内容在Windows中是大小写是不敏感的...,而在大多数类Unix系统中是敏感的(Mac OS X除外),当然对于建立在这些类Unix系统上的MySQL敏感性可以在一定程度上通过参数的修改来设定。...):大小写敏感,数据按照CREATE 语句中的定义存储在磁盘,且在查询的时候是区分大小写的; 注意:不要在大小写敏感的系统上使用此设置,因为容易导致像MyISAM引擎的索引崩溃; lower_case_table_names...=1(Windows default):大小写敏感MySQL将数据全部转化为小写形式存储在磁盘上,而且在查询的时候也是全部转化为小写进行比较; lower_case_table_names =2(...5、数据敏感性:由Mysql的校对字符集规则来控制(Collation),默认大小写敏感; 每一个字符型column都有一个“字符集属性(character set)”和一个“校对集属性(collation

3.5K40
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL中的大小写敏感

今天同事问了一个问题,是关于MySQL大小写敏感的。 如果根据关键字case来搜索,会发现有两个参数。...大小写敏感问题,在MySQL大体会分为两种类别,在Linux和Windows平台。...MySQL在Linux下数据库、列名、别名大小写规则是这样的:    1、数据库是严格区分大小写的;    2、的别名是严格区分大小写的;    3、列名与列的别名在所有的情况下均是忽略大小写的...;    4、变量也是严格区分大小写的; 而Windows下的MySQL却是大小写敏感的,所有和数据库都会变成小写。...| aa | | 2 | newtest | +------+---------+ 2 rows in set (0.00 sec)如果要修改大小写敏感的设置,比如设置为大小写敏感,需要设置参数值

2.4K60

mysql大小写敏感与校对规则

那么mysql大小写敏感是如何控制的;数据库,字段名这些字典对象以及字段值的大小敏感是如何控制的;以及校验规则与索引的关系,这是本文要讨论的内容。...mysql中控制数据库大小写敏感由参数lower_case_table_names控制,为0时表示区分大小写,为1时,表示将名字转化为小写后存储,不区分大小写。...在mysql中,数据库对应数据目录中的目录。数据库中的每个至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎)。因此,所使用操作系统的大小写敏感性决定了数据库大小写敏感性。...1:在硬盘上以小写保存,名称比较对大小写敏感MySQL将所有转换为小写在存储和查找上。该行为也适合数据库的别名。该值为Windows的默认值。...2:和数据库在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母进行保存,但MySQL将它们转换为小写在查找上。

4.9K10

小白学习MySQL - 大小写敏感问题解惑

MySQL中的数据库对应到操作系统上存储的数据文件,因此像数据库、触发器名称等,是否大小写敏感就取决于他所在的操作系统。...MySQL中的列、索引、存储过程、事件等在任何操作系统上都是大小写敏感的,但是列的别名则是例外。日志文件组的名称是大小写敏感的。...数据库和的存储和使用受到了MySQL参数lower_case_table_names的控制(此参数不可以动态修改,必须重启数据库),该值描述如下, P.S. https://dev.mysql.com...如果你只是在一个操作系统上使用MySQL,不用关注参数值的不同带来的差异,但如果你需要在不同大小写敏感的平台之间迁移数据,就得关注这个参数了,举个例子,Unix下可以创建两张,一个叫TBL,一个叫tbl...缺点就是需要确保在Windows中引用正确大小写的数据库和

1.2K10

MySQL中识别符大小写敏感性学习--MySql语法

本文学习是MySQL中识别符大小写敏感性学习,在MySQL中,数据库对应数据目录中的目录。数据库中的每个至少对应数据库目录中的一个文件(也可能是多个,取决于存储引擎)。...因此,所使用操作系统的大小写敏感性决定了数据库大小写敏感性。这说明在大多数Unix中数据库大小写敏感,而在Windows中对大小写敏感。...注释:尽管在某些平台中数据库大小写敏感,不应在同一查询中使用不同的大小写来引用给定的数据库或。...1 在硬盘上以小写保存,名称比较对大小写敏感MySQL将所有转换为小写以便存储和查找。该行为也适合数据库的别名。该值为Windows和Mac OS X系统中的默认值。...2 和数据库在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写进行保存,但MySQL将它们转换为小写以便查找。名称比较对大小写敏感

97330

mysql 大小写敏感的一个解决方案

今天,有同事告诉我,我们游戏登陆的时候,账号和密码没有区分大小写,后来又发现创建账号和角色也没有区分大小写。思考登陆流程之后,应该是Mysql没有区分大小写敏感的问题。      ...在网上查了一下资料,Mysql支持大小写敏感的解决方案。发现了几种方案。      ...第一、修改数据库的设置,让Mysql支持大小写敏感,这个方案太激进了,数据库数据太多,这样改保不准会出什么问题。      第二、修改结构和字符集,和第一种方案差不多,但是风险小一点。      ...体方法是,使用mysql的binary关键字。      BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写。      ...测试如下:      mysql> select binary 'ABCD'='abcd' ret1, 'ABCD'='abcd' ret2;      +--------+--------+

96210

linux mysql 修改_Linux下mysql怎么设置?「建议收藏」

Linux下mysql可以通过“ALTER TABLE 旧表 RENAME [TO] 新;”语句来修改;还可以通过配置my.cnf文件,修改“lower_case_table_names”选项的值为...“1”来设置不区分大小写。...Linux下mysql设置MySQL 中,可以使用 ALTER TABLE 语句来实现的修改。...在 MySQL 中可以使用 ALTER TABLE 语句来改变原有的结构,例如增加或删减列、更改原有列类型、重新命名列或等。...用户可以使用 DESC 命令查看修改后的结构, Linux下Mysql设置不区分大小写 Linux下的MySQL默认是区分大小写的 通过如下设置,可以让MySQL不区分大小写: 1、用root

8.9K10

mysql linux环境下表区分大小写问题

在linux环境下表是区分大小写的 问题 执行SHOW VARIABLES LIKE '%lowercasetable_names%' 输出结果: ?...其中 0:区分大小写,1:不区分大小写 解决办法 在mysql的配置文件中添加 lowercasetable_names=1 实际解决方式 先查找mysql使用的配置文件 添加配置 重启mysql 查看是否生效...order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf...datadir=/work1/soft/mysql/data socket=/work1/soft/mysql/mysql.sock #设置忽略大小写(简单来说就是sql语句是否严格),默认库名表保存为小写..., 不区分大小写 lower_case_table_names=1 # 开启ip绑定 #bind-address = 0.0.0.0 [mysqld_safe] log-error=/var/log/mysqld.log

2.3K20

在Linux下管理MySQL大小写敏感

1 理解MySQL中的大小写敏感性 默认情况下,MySQL在Windows上是大小写敏感的,但在Linux上是大小写敏感的。这种差异可能导致不一致性,特别是在迁移数据库或开发跨平台应用程序时。...MySQL中的大小写敏感行为由lower_case_table_names系统变量控制。 lower_case_table_names = 0:按指定存储,比较是大小写敏感的。...lower_case_table_names = 1:在磁盘上以小写存储,比较不是大小写敏感的。 lower_case_table_names = 2:按指定存储,但比较不是大小写敏感的。...2 MySQL 5.7大小写敏感设置 在MySQL 5.7中,默认在Linux上的设置是lower_case_table_names = 0,这意味着大小写敏感的。...mysql 3 MySQL 8.0大小写敏感设置 在MySQL 8.0中,大小写敏感行为与MySQL 5.7保持一致。

9300
领券