Heim >Datenbank >MySQL-Tutorial >MySQL大小写敏感问题和命名规范_MySQL

MySQL大小写敏感问题和命名规范_MySQL

WBOY
WBOYOriginal
2016-06-01 13:40:291165Durchsuche

bitsCN.com
MySQL大小写敏感问题和命名规范 注:本文大部内容参考自互联网相关文章 1.MySQL大小写敏感规则   MySQL中,一个库会对应一个文件夹,库里的表会则以文件的方式存放在文件夹内,所以,操作系统对大小写的敏感性决定了数据库和表的大小写敏感(MySQL有一个只读的系统变量lower_case_file_system,其值反映的正是当前文件系统是否区分大小写)因此:在Windows下Mysql的数据库和表名是大小写不敏感的,而在大多数类型的Unix系统中是大小写敏感的。 以下是MySQL详细的大小写区分规则: 在Linux下: 1、数据库名与表名是严格区分大小写的;2、表的别名是严格区分大小写的;3、列名与列的别名在所有的情况下均是忽略大小写的;4、变量名也是严格区分大小写的;  在Windows下: 全部不区分大小写   补充:1.MySQL中有一个系统变量:lower_case_table_names,专门用来配置是否区分据库名与表名的大小写。 如果你的系统是Windows,而你又希望mysql能够区分大小写,那么你可以在my.ini文件中,在[mysqld]一节的最后,加入如下部分:
 [plain]#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。
  bitsCN.com

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn