SQL 在开发界一只被诟病易写难读,但规范良好的 SQL 语句还是可以给可读性带来显著提升的,至少让你可以一眼看出语句的层次和意图。
Joe Celko 的《SQL ProgrammingStyle》总结了一套规则和每一条原则后的理由,包括命名规范、缩进以及设计规范。其实命名的话,按照 Rails 的约定几乎是没什么问题的,表名用小写、主键用 id,外键用 xxx_id 等等,但对于自己写的 SQL,只要稍微逻辑复杂一点就会风格迥异。网上有一份 sql style guide,把常见的模式都做了总结,当然这并不是唯一的风格,大家也可以根据个人风格进行定制。
https://www.sqlstyle.guide/zh/
最有意思的是缩进方式,既不是左对齐也不是右对齐,其实中间是有一条河的,SELECT FROM GROUP ORDER WHERE LIMIT 在左,JOIN 在右,嵌套结构也以此类推:
SELECT r.last_name
FROM riders AS r
INNER JOIN bikes AS b
ON r.bike_vin_num = b.vin_num
AND b.engine_tally > 2
INNER JOIN crew AS c
ON r.crew_chief_last_name = c.last_name
AND c.chief = 'Y';