> 文档中心 > SQL规范一《SQL 语法顺序与编码规范 》

SQL规范一《SQL 语法顺序与编码规范 》


SQL 语法顺序与编码规范

前言:博主目前从事的是BA数据分析师、在实际工作中需要问其他部门的同事提供SQL需求,在此过程中,SQL代码的规范与否是非常重要的,规范的代码有助于成员间交流,保证一致性、统一性。因此,以我实际工作遇到的问题进行总结。

1.1 SQL 语法顺序

FROM
# 选取表,将多个表数据通过笛卡尔积变成一个表。
ON
# 对笛卡尔积的虚表进行筛选
JOIN
# 指定join,用于添加数据到on之后的虚表中,例如left join会将左表的剩余数据添加到虚表中
WHERE
# 对上述虚表进行筛选
GROUP BY
# 分组
<SUM()等聚合函数> # 用于having子句进行判断,在书写上这类聚合函数是写在having判断里面的
HAVING
# 对分组后的结果进行聚合筛选
SELECT
# 返回的单列必须在group by子句中,聚合函数除外
DISTINCT # 数据除重
ORDER BY
# 排序,如非必要尽量不用
LIMIT

1.2 实际操作中预计执行顺序

(8) SELECT (9)DISTINCT
(1) FROM
(3) JOIN
(2) ON
(4) WHERE
(5) GROUP BY
(6) WITH {CUBE|ROLLUP}
(7) HAVING
(10) ORDER BY
(11) LIMIT

:这里大家注意,(4)WHERE 筛选的是连接后的新表。

1.3 编码规范

为了保证编写出的程序都符合相同的规范,便于理解、维护,减少出错概率,有助于成员间交流,保证一致性、统一性而建立的SQL程序编码规范。

1.3.1 注释
1)代码中需要添加必要的注释,以增强代码的可读性。
2)代码头部添加主题、功能描述等信息
3)对不易理解的分支条件表达式添加注释。
4)对重要的计算添加注释,说明其功能。
1.3.2 命名
1) 限制命名长度,建议表名及字段名字符总长度小于等于63。
2)表名按照品牌、模块、分类、用途、实际用途等命名,方便易懂。
3) 务必只使用小写字母,下划线,数字。
4) 不要以pg开头,不要以数字开头,不要使用保留字,单词之间用下划线"_"分开。
5)主键索引应以 pk_ 开头, 唯一索引以 uk_ 开头,普通索引以 idx_ 打头
1.3.3 SQL规范
1) 应该尽量避免全表扫描(除了大数据量扫描的数据分析,尽量使用索引。
2) 除非特殊原因,永远不要使用 SELECT * 需要显示指定获取字段列表example:
SELECT col1,col2,col3 FROM TABLE_NAME ...;
3) 不要使用delete 全表,性能很差,请使用truncate代替。
4) 代码中,不要使用count(*)判断是否有数据,速度很慢。 建议的方法limit 1 .
:大家在没工作之前,练习SQL代码时候,喜欢使用COUNT(*)SELECT * 等等的操作(当然博主之前也喜欢)。这种在做题和结果上面是没问题的。而在实际工作中遇到的表格远比做题中遇到的表格数据量大的多,字段也非常多,这时候使用以上操作效率会很低,因此上面的两种操作是不被推荐的。