第 5 课
SQL 格式化与可读性
格式化日志、ORM 和评审中的长 SQL,让查询结构清晰可见。
从日志或 ORM 中复制出来的 SQL 往往很难阅读:
select u.id,u.email,o.total,case when o.total>100 then 'vip customer' else 'standard customer' end as segment from users u join orders o on o.user_id=u.id where o.created_at>='2026-01-01' and o.status in ('paid','refunded') order by o.created_at desc;
格式化不会让查询自动正确,但它会暴露结构:
- 选择列变成列表。
- JOIN 块更容易看见。
CASE分支更容易阅读。- 过滤条件可以逐条扫描。
- 排序和限制更不容易漏掉。
实用格式化习惯
在应用调试中,一致性比个人喜好更重要:
- 主要子句单独换行。
- 嵌套表达式和
CASE分支缩进。 - JOIN 条件靠近对应 JOIN。
- 项目内保持关键字大小写一致。
- 代码评审中不要顺手格式化无关查询,除非这是明确变更。
压缩有不同用途
压缩 SQL 会移除不必要的空白和注释,适合配置文件、复制示例或测试中需要嵌入单行 SQL 的场景。
如果 SQL 需要人工排查,不要在事故处理中使用压缩版本。调试时应保持可读格式。
关键结论
格式化是一种思考工具。它把密集字符串变成可检查、可讨论、可安全修改的结构。
打开 SQL 格式化工具,对同一条查询比较格式化与压缩结果,判断哪种更适合评审或嵌入。