1.注释
不换行的简单注释,在注释文字前用" -- "
多行的注释用 " /* .... */"
2.大小写规范
SQL语句中的所有保留字均需大写,且不要使用缩写
例: ALL, AS,CASE,CREATE,JION,LEFT,RIGHT,NOT, ON,OUT,SCELECT,TABLE,VIEW等
3.缩进与换行
将SQL语句按照子句分行编写,以SELECT、FROM、WHERE、UPDATE、INSERT为起始另起一行,尽量 对齐各子句的起始位置
1. 逗号放在每行字段的开头。
2. 分号放在SQL语句的末尾。
3. 每行宽度不超过120字符(每个字符为8个点阵宽),超过行宽的代码应换行并与上行对齐编排。
4. 把AS部分和相应字段放在同一行。
5. 当多个字段包含“AS”时,建议尽量将各“AS”对齐在同一列上。
6. 同一子句中,应排齐“WHERE”、“AND”、“OR”这三个单词的末尾。
注:缩进时不建议使用Tab,建议使用4个空格。
4. 子查询嵌套
对于复杂语句,代码的分层编排非常重要,一般对嵌套语句的格式有以下两点要求:
1. 对应的括号应尽量排在同一列。
2. 同一级别的子句内部要对齐。
5. 表别名
1. 表别名建议以简单字符命名。
2. 多层次的嵌套子查询别名需体现层次关系。
3. 对于同一层的多个子句,建议别名采用相同前缀附加不同数字后缀(1、2、3…)的形式,以便识别与区
分子句关系。
4. 在需要的情况下对表别名添加注释
6. 运算符前后间隔要求
算术运算符、逻辑运算符的前后至少保留一个空格。
7. 临时表
在语句中尽量使用可变临时表,通过临时表的使用体现逻辑和加工的流程
8. GROUP BY / ORDER BY
在查询语句的ORDER BY和GROUP BY操作中,允许用户用字段序号代表字段,例如“group by[第一个字段]”
可以写为“group by 1”。但是不允许字段名和序号同时出现,应保证采用一种模式时,不出现另一种模
式。
group by和order by的示例中的两种写法是等价的,但不能混用。
9. 字段类型
字段在做比较或转换的时候应该使用显式的写法对数据做处理,以防止因字段格式的差异导致执行失败,
如:
• 文本:在访问文本字段时建议做trim()处理,去除多余空格。例如,table_A.name的某值
为’Lucy',table_B.name的某值为’Lucy ',若不进行处理,在做name等值匹配时这两条的比较结果将
是false。
• 日期: 执行日期相关运算时,必要时应用形如“CAST(‘20121231’AS DATE FORMAT ‘YYYYMMDD’)”的
语句做格式转化,防止录入数据时以STRING类型保存的日期字段,在计算时被视为表达时间的特有类型
(如date、timestamp)处理,导致结果异常。