ZH
我的工具

SQL 格式化工具

格式化 MySQL、PostgreSQL、SQL Server、Oracle、SQLite、BigQuery、Snowflake 等数据库的 SQL:可设置关键字大小写、缩进,或压缩为一行,出错时显示行号和列号。

输出
我的工具 →
广告

从日志、ORM 或 BI 工具粘贴来的长查询,往往是一整行难以阅读的文字。格式化工具把 SELECT、FROM、JOIN、WHERE、GROUP BY 等每个子句各放一行,缩进属于它的内容,并按你喜欢的方式设置关键字大小写,使用你所选数据库的语法。压缩则相反:删除注释和多余的空白,便于把查询嵌入代码。

使用方法

  1. 粘贴一条或多条 SQL 语句。
  2. 选择方言,例如 MySQL、PostgreSQL 或 SQL Server,以便正确识别该数据库的引号和关键字。
  3. 选择关键字大小写、缩进以及语句之间的空行。
  4. 复制结果,或切换到压缩得到紧凑的一行版本。

计算公式

clause keyword on its own line; clause body indented one level; one column or condition per line; AND / OR start new lines

格式化使用开源的 sql-formatter 库,它对每种方言分别做词法分析——MySQL 的反引号名称、SQL Server 的 [方括号]、PostgreSQL 的 $$ 字符串。压缩使用另一个词法分析器:它从不改动字符串或带引号名称的内部,并保留优化器提示(/*+ … */)和 MySQL 的 /*! … */ 块,因为删除它们可能改变查询的执行方式。

示例

示例报表查询原本是一行,变成 20 行:带三个缩进列的 SELECT、FROM orders、两个带 ON 条件的 JOIN、两个条件分行用 AND 连接的 WHERE,然后是 GROUP BY、HAVING、ORDER BY total DESC 和 LIMIT 20。关键字和 SUM 这样的函数名会变成大写;表名、别名和引号内的日期保持输入时的样子。

常见问题

为什么会出现解析错误?

通常是有未闭合的引号,或者把某个数据库的语法当作另一种来检查——例如在标准 SQL 下使用方括号名称。请在方言中选择你的数据库;错误会显示停止读取的行号和列号。

格式化会改变查询的行为吗?

不会。只有空白和关键字的大小写会变化;标识符、字符串和注释都会保留。关键字大小写对 SQL 数据库没有影响。

粘贴生产环境的查询安全吗?

安全。格式化在你的浏览器中运行,不会向服务器发送任何内容。

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). SQL 格式化工具. https://kakao.mobile/zh/tools/sql-formatter/

MLA

“SQL 格式化工具.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/sql-formatter/.

广告