2.2 SQL语言规则与规范
规则是必须遵循,否则报错。规范是建议遵循,方便阅读和提升效率。
2.2.1 基本规则
-
SQL可以分行写,尤其是当查询语句变得很复杂时,一条查询语句占7~8行都是很常见的。如下代码所示:
SELECT * FROM employees;
-
SQL命令在使用子查询 (类似于嵌套循环) 时,子查询语句需要缩进,以增加可读性。
-
SQL命令只能以分号
;
、\g
、\G
结尾,否则有可能会报错。其中,\g
\G
的作用是使查询结果特别长的表格转置一下,以增加可读性,在高级篇中会经常用到。 -
SQL中的关键字不能缩写也不能换行。
-
字符串、日期时间类型的变量需要使用一对
''
表示。 -
列的别名,尽量使用双引号
" "
来表示,而且不建议省略as
。
2.2.2 SQL大小写规范 (建议遵守)
- MySQL在Windows系统下是大小写不敏感的;
- **MySQL在Linux操作系统下是大小写敏感的!**因为后端系统程序绝大部分都运行在Linux系统上,因此强烈要求严格区分大小写。其实对于 Java 程序员来说,这已经是养成习惯了。
- 数据库名、表名、表的别名、变量名是严格区分大小写的;
- 关键字、函数名、列名 (或字段名) 、列的别名 (或字段别名) 是忽略大小写的。
- 推荐的统一代码规范:
- 数据库名、表名、表的别名、字段名、字段别名等都小写;
- SQL关键字、函数名、绑定变量等都大写。
2.2.3 注释
单行注释:#这是一个单行注释 (MySQL特有的注释方式,其他数据库系统不通用)
单行注释:-- 这也是一个单行注释 (SQL通用的单行注释,杠后面必须加一个空格)
多行注释:/*
多行注释1
多行注释2
*/
2.2.4 命名规则 (必须遵守)
- 数据库、表名不得超过30个字符,变量名限制为29个;
- 只能包含A-Z,a-z,0-9,
-
共63个字符; - 数据库名、表名、字段名等对象名中间不要包含空格;
- 同一个MySQL软件中,数据库不能同名;同一个库中,表不能重名;同一个表中,字段不能重名;
- 必须保证字段没有和保留字、数据库系统或常用方法冲突。如果坚持使用,请在SQL语句中使用 `` (着重号) 引起来;
- 保持字段名和类型的一致性,在命名字段并为其指定数据类型时,一定要保证一致性。假如字段在一个表里是整数,那在另一个表里就不能变成字符型了。