Windows和Linux平台的区别
在SQL中,关键字和函数名是不区分大小写的,不过还是要确定大小写的规范。
Windows平台默认是大小写不敏感的,Linux系统是区分大小写的。
通过如下的命令进行查看
SHOW VARIABLES LIKE '%lower_case_table_names%'
Windows下
Linux下
lower_case_table_names
参数值 | 参数值的含义 |
---|---|
默认为0 | 大小写敏感 |
1 | 大小写不敏感,创建的表、数据库都是以小写的形式存放在磁盘上,对于SQL语句都是转换为小写对表和数据库进行查找 |
2 | 创建的表和数据库依据语句格式进行存放,凡是查找都是转换为小写进行 |
两个平台上大小写的具体区别
Linux
数据库名、表名、表的别名、变量名是严格区分大小写的;
关键字、函数名称在 SQL 中不区分大小写;
列名(或字段名)与列的别名(或字段别名)在所有的情况下均是忽略大小写的;
Windows
全部不区分大小写。
Linux下的大小写规则设置
当想设置为大小写不敏感时,要修改 my.cnf 配置文件,然后重启服务器。
[mysqld]
lower_case_table_names=1
注意:
在重启数据库实例之前就需要将原来的数据库和表转换为小写,否则将找不到数据库名。
此参数适用于MySQL5.7。
在MySQL 8下禁止在重新启动 MySQL 服务时将 lower_case_table_names 设置成不同于初始化 MySQL 服务时设置的 lower_case_table_names 值。
SQL编写建议
关键字和函数名称全部大写;
数据库名、表名、表别名、字段名、字段别名等全部小写;
SQL 语句必须以分号结尾。