SQL 语句的大小写规则与语句组成元素、引用内容和服务器所使用的操作系统有关。

1) SQL 关键字和函数名

SQL 的关键字和函数名不区分大小写。例如,下面这些语句都是等价的:

SELECT NOW();
select now();
sElEcT nOw();

2) 数据库名、表名和视图名

MySQL 用服务器主机的底层文件系统所包含的目录和文件来表示数据库和表。因此,数据库名和表名的默认大小写取决于服务器主机的操作系统在命名方面的规定。

比如 Windows 系统的文件名不区分大小写,所以运行在 Windows 系统上面的 MySQL 服务器也不用区分数据库名和表名的大小写。Linux 系统的文件名区分大小写,所以运行在 Linux 系统上的 MySQL 服务器需要区分数据库名和表名的大小写。对于 Mac OS X 平台,其文件系统中的名字是个例外,它们不区分大小写。

MySQL 会使用一个文件来表示一个视图,所以以上与表有关的也同样适用于视图。

3) 存储程序的名字

存储函数、存储过程和事件的名字都不区分大小写。触发器的名字要区分大小写,这一点与标准 SQL 的行为有所不同。

4) 列名和索引名

在 MySQL 里,列名和索引名都不区分大小写。例如,下面这些语句都是等价的:

SELECT name FROM student ;
SELECT NAME FROM student ;
SELECT nAmE FROM student ;

5) 别名的名字

默认情况下,表的别名要区分大小写。SQL 语句中可以使用任意的大小写(大写、小写或大小写混用)来指定一个别名。如果需要在同一条语句里多次用到同一个别名,则必须让它们的大小写保持一致。

下表总结了 SQL 元素在 Windows 和 Linux 系统是否区分大小写。


在 Linux 服务器下创建数据库和表时,应该认真考虑大小写的问题,比如它们以后是否会迁移到 Windows 服务器上。

假设你在 Linux 服务器上创建了 abc 和 ABC 两个表,当把这两个表迁移到 Windows 服务器上时,就会出现问题;因为 Windows 系统并不区分大小写,abc 和 ABC 无差别。如果把表从 Linux 服务器迁移到 Windows 服务器时,也同样会遇到问题。

想要避免大小写问题,可以先选定一种大小写方案,然后一直按照该方案去创建数据库和表。

【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。
通俗的说就是,MySQL 在 Windows 系统下不区分大小写,但在 Linux 系统下默认区分大小写。因此,数据库名、表名和字段名,都不允许出现任何大写字母,避免节外生枝。

一般建议统一使用小写字母,并且 InnoDB 引擎在其内部都是以小写字母方式来存储数据库名和表名的。这样可以有效的防止 MySQL 产生大小写问题。

9、MySQL中SQL语句的大小写规则相关推荐

  1. Mysql中SQL语句不使用索引的情况

    Mysql中SQL语句不使用索引的情况 MySQL查询不使用索引汇总 众所周知,增加索引是提高查询速度的有效途径,但是很多时候,即使增加了索引,查询仍然不使用索引,这种情况严重影响性能,这里就简单总结 ...

  2. mysql数据库语句分类_细数MySQL中SQL语句的分类

    1:数据定义语言(DDL) 用于创建.修改.和删除数据库内的数据结构,如:1:创建和删除数据库(CREATE DATABASE || DROP  DATABASE):2:创建.修改.重命名.删除表(C ...

  3. java中sql语句_java中sql语句的编写规则

    java中sql语句的编写规则 发布时间:2020-06-26 15:11:11 来源:亿速云 阅读:143 作者:Leah 这期内容当中小编将会给大家带来有关java中sql语句的编写规则,文章内容 ...

  4. Java中SQL语句的拼接规则

    拼接规则示例 java中的字符串只能双引号,如果字符串中需要拼接变量,该变量用单引号括起来,然后加两个双引号再加两个加号,中间就是变量. 例如:查询数据库中的用户名和密码. 注:为和sql表中的use ...

  5. 检测mysql中sql语句的效率

    1.通过查询日志 启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql MySQL 自带 slow log 的分析工具 mysqldum ...

  6. mysql中sql语句有if_Sql中的if函数学习

    今天,在修改项目bug时遇到一些需要计算的功能实现,虽然可以用java代码写,但是由于时间较为充裕,有尝试用sql写一下,学习到了if函数 if(o.containerSendNet>0 and ...

  7. MySQL中SQL语句——DQL(数据查询语句)

    前言: 首先对于数据库有一定的了解,会对于Mysql的学习有一定的帮助: 数据库主要分为 DB(数据库),DBMS(数据库管理系统),SQL(结构化查询语言,用于和DBMS通信的语言):这篇要讲的DQ ...

  8. MySQL总结(四)——MySQL中sql语句的执行过程

    MySQL 基本架构 连接器: 身份认证和权限相关(登录 MySQL 的时候). 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用). 分析器: 没有 ...

  9. 查看mysql中sql语句执行时间

    查看mysql版本:select version(); 方法一: show profiles. 1. Show profiles是5.0.37之后添加的,要想使用此功能,要确保版本在5.0.37之后. ...

最新文章

  1. 二十八、动态分区分配算法
  2. 从 AlphaGo 到具有人类智慧的 AI 究竟有多远?Keras之父François Chollet告诉你
  3. Java 洛谷 P1307 数字反转
  4. php json 不转义,php json_encode中文不转义
  5. 今日腊八节,祝福送上!
  6. PyCharm集成Anaconda3环境下安装 腾讯优图报错 ERROR: Could not install packages due to an EnvironmentError
  7. I00036 盈数(Abundant number)
  8. Android 仿网易新闻底部Tab
  9. CSDN博客 不登录不能复制粘贴
  10. 爬虫实战(二)之登录百度云盘
  11. 实习连载日记4.1-每天都是愚人节
  12. 正太分布函数 oracle,Oracle随机函数
  13. uefi装完系统后无法引导_不重装系统修改引导方式为UEFI模式
  14. 某三位数除以10余9、除以9余8、除以8余7
  15. 零基础怎么学c语言,如何零基础学习c语言?
  16. protobuf官方文档学习
  17. 【JWT】什么是JWT?
  18. android 组件可见,android界面控件可见性方法setVisibility()3个可选参数(visible,invisible,gone)的区别...
  19. 一个轻巧强大的模拟服务器接口桌面软件
  20. SSMS使用基础及实验数据准备

热门文章

  1. qt5 + vs2015自定义控件错误:undefend interface
  2. 国内大公司的开源项目( 阿里 腾讯 百度 新浪 搜狐 豆瓣 大众点评)
  3. 敲点JavaScript代码
  4. 如何捕获和分析 JavaScript Error
  5. 导入新的一个android项目抱错
  6. Win32窗体控件方法与消息
  7. 基于FTP的Nordic nRF51822 OTA 教程一之修改boot区大小
  8. ST17H26只pwm波形特征
  9. LeetCode6-Z字形变换
  10. C++ Primer 5th笔记(chap 10)泛型算法 :特定容器算法list