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] view plain copy

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

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

2.一种MySQL命名规范

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

时间: 2024-08-07 04:31:30

MySQL大小写敏感问题和命名规范的相关文章

mysql基本约定与命名规范

一.约定 1.如无特殊需求,所有表使用innodb引擎 2.如无特殊需求,所有主键均为自增类型 3.如无特殊需求,所有字段均为NOT NULL,并给定默认值 4.所有字段均设置备注,枚举字段需要说明每个枚举值的意义 5.在能满足取值范围的情况下,选择占用存储空间最小的数据类型.如布尔值使用tinyint,时间类型使用timestamp 二.命名规范 1.数据库名:与系统名相同 2.表名:系统名称缩写+_+表名.表名必须描述该表的用途,由单个或多个名词组成,首字母小写,后续单词首字母大写. 3.字

MySQL运维及开发规范

一.基础规范 (1) 使用INNODB存储引擎 (2) 表字符集使用UTF8 (3) 所有表都需要添加注释 (4) 单表数据量建议控制在5000W以内 (5) 不在数据库中存储图.文件等大数据 (6) 禁止在线上做数据库压力测试 (7) 禁从测试.开发环境直连数据库 二.命名规范 (1) 库名表名字段名必须有固定的命名长度,12个字符以内 (2) 库名.表名.字段名禁止超过32个字符.须见名之意 (3) 库名.表名.字段名禁止使用MySQL保留字 (4) 临时库.表名必须以tmp为前缀,并以日期

【转】python变量命名规范

python源码和其他一些书籍,命名各种个性,没有一个比较统一的命名规范.于是总结了一些,供参考. 模块名: 模块应该使用尽可能短的.全小写命名,可以在模块命名时使用下划线以增强可读性.同样包的命名也应该是这样的,虽然其并不鼓励下划线. 主要是考虑模块名是与文件夹相对应的,因此需要考虑文件系统的一些命名规则的,比如Unix系统对大小写敏感,而过长的文件名会影响其在Windows\Mac\Dos等系统中的正常使用. 通常是小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样 类

MySQL大小写敏感问题

在 MySQL 中,数据库和表其实就是数据目录下的目录和文. 因而,操作系统的敏感性决定数据库和表命名的大小写敏感.这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix/Linux 系统中是大小写敏感的. MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制. WINDOWS: 编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小

Puppet主机、模块、类、资源、变量、参数、标签命名规范

Puppet命名规范: 约定说明: 小写字母:"a-z" 大写字母:"A-Z" 数字: "0-9" 句号: "." 下划线: "_" 连字符: "-" 冒号: ":" 1.主机命名: 规范:/\A[a-z0-9._-]+\Z/ 推荐:角色-运营商-机房-IP.系统.域名   web-cnc-bj-174.129.158.192.centos.linuxtone.org

主机名命名规范

定义规范: hostname命名宗旨:可视化高,精简,FQDN 线上服务器主机名命名规范(FQDN表现形式):{IDC}-{业务bu}-[{项目名}[{编号}]]-{应用名}{机器编号}.vivo.lan 字段解释:[]中的是可选项,根据具体业务场景选择 器名:4个字段标准{IDC}:表示机房名称,eg: bjthq,bjjxq{业务bu}:业务线(或组),eg: op,bigdata,商城等{项目名}:具体项目名称,eg: cmdb,cdn,api等或者lanmon(或public,多个项目公

标识符命名规范

标识符命名规范 硬性规定: 1.标识符必须以字母,下划线或者美元符号开头 2.其他部分必须是字母,数字,下划线或者美元符号,但是不能出现特殊符号 3.标识符大小写敏感 4.不能是java的关键字或者保留字(留给系统使用的表示特殊含义的字符串) 常规建议: 1.驼峰标识 1.类名,接口名称在命名的时候要首字符大写 2.方法,变量命名的时候首字符要小写 3.多个单词拼接表示一个标识符的时候,每个单词的首字符都大写 2.见名知义 通过标识符的名称能知道代表的含义 千万不要写拼音 public clas

java04eclipse常见设置和java的第一个程序、命名规范、编码规范

一.java的第一个程序 *所有的java程序是写在.java为后缀的文本 *所有的java程序一定是写在class中   即写在类里面的 *所有的java程序的入口一定是main方法 *写代码 二.新建一个java项目 <1>新建一个java工程 <2>在src下建包 <3>在包下面新建java文件 <4>所有java代码是在写类里面的 <5>hello word  运行 <6>命名规范 *标识符:类名.包名.方法的名字,首字母.$

MySQL_数据库命名规范及约定

操作规范 如无说明,建表时一律采用innodb引擎: 如无说明,数据库表编码集(utf8,utf8_bin)ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin 如无备注,则表中的第一个id字段一定是主键且为自动增长: 如无备注,则数值类型的字段请使用UNSIGNED属性: 如无备注,排序字段order_id在程序中默认使用降序排列: 如无备注,所有字段都设置NOT NULL,并设置默认值: 如无备注,所有的布尔值字段,如is_hot.is_de