已更新9月 2026
如何使用SQL格式化程序
- 粘贴 SQL - 来自日志、ORM 调试输出或遗留代码。
- 读取格式化查询 - 子句排列、子查询缩进、关键字大写。
- 查看逻辑 - 连接条件和 WHERE 结构是格式化查询揭示其惊喜的地方。
- 将其复制回来 - 格式为语义中立;每个引擎都以相同的方式运行。
SQL格式化程序是什么?
SQL 格式化程序将查询重组为可读形式:主要子句(SELECT、FROM、WHERE、GROUP BY)各占一行、连接对齐、子查询缩进、关键字大小写一致。日志中的 400 个字符的单行语句变成了一条语句,您可以实际查看其逻辑。
SQL 不断地变得不可读:ORM 生成单行怪物、日志和慢速查询报告剥离格式、同事粘贴控制台保存的任何内容、遗留代码库嵌入随心所欲格式化的查询。 SQL 的子句结构是真正的分层结构 - 格式化使层次结构可见,这是理解查询的大部分内容。
关于SQL格式化程序
粘贴任何 SQL — SELECT、INSERT、DDL,无论如何损坏 — 并对其进行格式化:子句分隔、嵌套缩进、大写关键字。
它的回报:在调试性能时检查 ORM 生成的查询(慢速查询日志的一行,格式化,揭示 JOIN 爆炸),在修改继承查询之前了解它们(格式化的子查询结构显示 WHERE 实际过滤的内容),为 SQL 准备代码审查或文档,并比较两个查询变体(格式化两者,然后我们的差异检查器显示真正的差异而不是空白噪音)。
本质上与方言无关 - MySQL、PostgreSQL、SQL Server 和 SQLite 共享子句语法格式所关心的内容。格式化改变零语义:空格和关键字大小写对每个 SQL 引擎来说都没有意义;可读性纯粹是为了维护查询的人员。
常见问题解答
否 — SQL 完全忽略空格和关键字大小写。 SELECT * FROM users 和跨五个缩进行的相同查询执行相同;格式化是为人类服务的。
约定:大写关键字(SELECT、WHERE)在视觉上将 SQL 语法与标识符(表名和列名,通常小写)分开。引擎并不关心;读者可以更快地浏览结构。
慢查询日志剥离格式——格式化版本暴露了形状:有多少个连接、哪些子查询、WHERE 真正过滤的内容。诊断从以 EXPLAIN 的方式查看查询开始。
跨 MySQL、PostgreSQL、SQL Server、SQLite 等的共享语法格式清晰。外来的供应商语法可能会保守地格式化(保持原样)——标准子句(这是大多数查询)的结果是正确的。
主要子句在各自的行上左对齐,每行一个 JOIN 及其 ON 条件,AND/OR 条件各在一行上,子查询缩进一级。这就是该格式化程序生成的形状 - 也是大多数样式指南所规定的。