最近写 SQL 比较多,但是 SQL 语句写得非常不规范,在编辑器中经常被 Typo 提示,因此,我重新回顾并总结了一下阿里有关于 SQL 的开发手册,以下是一些总结心得:
General
-
SQL 代码中的关键字,保留字全部使用大写或小写。
select / SELECT from / FROM where / WHERE and / AND or / OR union / UNION insert / INSERT delete / DELETE group / GROUP having / HAVING count / COUNT
-
四个空格为一个缩进量。
-
禁止使用
select *
,操作必须指定列名。 -
对应括号在同一列位置上。
SQL编码规范
字段排列要求:
- SELECT 语句字段要求每行一个字段
- 换行以及对其规则如下所示
INSERT 子句
INSERT 子句要求写在同一行。
SELECT 子句
- 换行编写
- 关键字左对齐
- 关键字小于 2 个缩进量,添加2个空格
- 关键字大于 2 个缩进量,添加1个空格
运算符
运算符前后需要保留一个空格
CASE 语句
如下图
查询嵌套编写规范
SQL语句的别名需要分层命名,从第1层次至第4层次,分别用P(Part) 、S(Segment)、 U(Unit) 和D(Detail)表示。也可以用a、b、c、d来表示第1层次到第4层次。
对于同一层次的多个子句,在字母后加1、2、3、4……区分,并根据情况对表别名添加注释。
注释
- 每条SQL语句均应添加注释说明。
- 每条SQL语句的注释单独成行,并放在语句的前面。
- 字段注释紧跟在字段后面。
最后,除了在写 code 时需要养成一个规范的习惯以外,也可以尝试将本文放进 GPT 中进行总结,让 GPT 按照规范对代码进行纠正。更多信息可以翻阅阿里sql开发规范:https://help.aliyun.com/zh/dataworks/user-guide/sql-coding-guidelines-and-specifications