page contents

MySQL区分大小写吗?

轩辕小不懂 发布于 2022-03-19 13:46
阅读 815
收藏 0
分类:数据库
3340
Nen
Nen
- 程序员

在MySQL中,一个数据库会对应一个文件夹,数据库里的表会以文件的方式存放在文件夹内,所以,操作系统对大小写的敏感性决定了数据库和表的大小写敏感性。其实,在MySQL中,有一个只读的系统变量“lower_case_file_system”,其值反映的正是当前文件系统是否区分大小写。所以,MySQL在Windows下是不区分大小写的,而在Linux下数据库名、表名、列名、别名大小写规则是这样的:

1)数据库名与表名是严格区分大小写的,但是,可以在/etc/my.cnf中添加lower_case_table_names=1,然后重启MySQL服务,这样就不区分表名的大小写了。当lower_case_table_names为0时表示区分大小写,为1时表示不区分大小写。需要注意的是,系统库information_schema及其之下的表名是不区分大小写的。

attachments-2022-03-iu8kIGS9623574a88aebe.png2)表的别名是严格区分大小写的。

3)列名与列的别名在所有的情况下均是忽略大小写的。

4)变量名也是严格区分大小写的。索引、关键字、函数名、存储过程和事件的名字不区分字母的大小写,但是触发器的名字要区分字母的大小写。例如,abs、bin、now、version、floor等函数和SELECT、WHERE、ORDER、GROUP BY等关键字不区分大小写。另外需要说明的一点是,MySQL在查询字符串时是大小写不敏感的。如果想在查询时区分字段值的大小写,那么字段值需要设置BINARY属性。

请先 登录 后评论