🌐 ZH

🗄️ SQL 格式化工具

按子句(clause)对 SQL 查询换行并对齐缩进,提升可读性;也可以反向压缩(minify)为一行,便于存储或日志传输。关键字大写转换为可选项。

指南

了解更多

01

1. 为什么要格式化 SQL

一行书写或由 ORM 生成的 SQL,随着连接(JOIN)增多会越来越难以阅读。按子句(SELECT、FROM、WHERE、JOIN、GROUP BY、ORDER BY 等)换行并对齐缩进后,能一眼看出哪些表以什么条件连接、WHERE 条件是什么,从而加快代码审查和调试速度。

02

2. 本工具的排版规则

在 SELECT/FROM/WHERE/JOIN 系列/GROUP BY/ORDER BY/HAVING/LIMIT 等主要子句前换行,AND/OR 缩进一级以区分条件。逗号分隔的列列表会各自换行对齐,括号内内容(如子查询)会再增加一级缩进。本工具是基于词法(token)的排版器,而非完整的 SQL 解析器,对于非常复杂的嵌套子查询或特定厂商语法,建议查看结果后手动微调。

03

3. Minify 及使用场景

压缩(minify)会去除注释,并消除多余的空白和换行,合并为一行。适用于将查询记录到日志、缩小存储过程/迁移脚本体积,或需要一行文本粘贴到其他工具时。字符串字面量(引号包裹的值)内的内容会原样保留,不会破坏数据本身。

常见问题

支持所有 SQL 方言(MySQL、PostgreSQL、Oracle 等)吗?
这不是完整的 SQL 解析器,而是识别通用关键字的词法级排版工具。它能很好地处理 SELECT/INSERT/UPDATE/DELETE/CREATE TABLE 及常见连接语法,但厂商专有扩展语法可能不完全符合排版规则。
字符串中的 SQL 关键字也会被转成大写吗?
不会。用引号('...'、"..."、`...`)包裹的字符串字面量在词法分析阶段会被单独识别,不受大小写转换或换行规则影响。
输入的查询会发送到服务器吗?
不会。格式化和压缩都完全在浏览器内处理,不会发送到任何服务器。
可以更改缩进宽度吗?
可以,在缩进下拉菜单中可选择 2 个或 4 个空格。