博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL大小写敏感问题和命名规范
阅读量:6828 次
发布时间:2019-06-26

本文共 1263 字,大约阅读时间需要 4 分钟。

hot3.png

注:本文大部内容参考自互联网相关文章

1.MySQL大小写敏感规则

MySQL中,一个库会对应一个文件夹,库里的表会则以文件的方式存放在文件夹内,所以,操作系统对大小写的敏感性决定了数据库和表的大小写敏感(MySQL有一个只读的系统变量,其值反映的正是当前文件系统是否区分大小写)因此:在Windows下Mysql的数据库和表名是大小写不敏感的,而在大多数类型的Unix系统中是大小写敏感的。

以下是MySQL详细的大小写区分规则:
在Linux下:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
在Windows下:
全部不区分大小写
补充:

1.MySQL中有一个系统变量:,专门用来配置是否区分据库名与表名的大小写。 如果你的系统是Windows,而你又希望mysql能够区分大小写,那么你可以在my.ini文件中,在[mysqld]一节的最后,加入如下部分:

#If set to 0, table names are stored as specified and comparisons are case sensitive. #If set to 1, table names are stored in lowercase on disk and comparisons are not case sensitive. #If set to 2, table names are stored as given but compared in lowercase. This option also applies to database names and table aliases.lower_case_table_names=0

2.MySQL在查询字符串时是大小写不敏感的。如某字段值需要区分大小写,可在定义该字段时指定BINARY属性。

2.一种MySQL命名规范

为了避免大小写引发的问题,一种推荐的命名规则是:在定义数据库、表、列的时候全部采用小写字母加下划线的方式,不使用任何大写字母。
3.关于Hibernate/JPA数据库schema自动映射的问题

使用Hibernate/JPA的工程可以自动生成数据库的schema,由于java有着自己的类与字段命名规则,这与mysql推荐的命名规则不太相符,于是出现了follow哪一种命名规范的问题。一般来说这会由团队和DBA协商确定,使用mysql的命名规范不会出现大小写带来的问题,对于DBA来说可能也更加友好,而使用java的命名规范则对开发人员来说无疑是更加友好的,这将省去列名的映射配置,同时也方便开发人员查看数据库。如果你的项目使用了后者,你最好像上面讲到的,设置一下lower_case_table_names=0

转载于:https://my.oschina.net/pangzhuzhu/blog/327043

你可能感兴趣的文章
最常用的四种大数据分析方法
查看>>
ajax https请求返回json数据
查看>>
convenience - 便利构造函数
查看>>
golang 碎片整理之 结构体
查看>>
Linux常用命令(个人博客)
查看>>
查看oracle查看当前连接以及修改最大连接数
查看>>
docker安装mysql镜像
查看>>
java中的IO整理
查看>>
我的linux学习决心书
查看>>
网站静态化处理
查看>>
python 之多线程加锁
查看>>
网卡聚合&磁盘配额
查看>>
我的友情链接
查看>>
exchange快速将断开的邮箱显示出来
查看>>
linux 下查找文件或者内容常用命令
查看>>
Linux常用系统调用表
查看>>
linux x86_64要注意的问题
查看>>
批处理中的call与start的个人学习心得
查看>>
BGP反射(RR)
查看>>
×××运算取ceiling
查看>>