Skip to content

SQL 格式化与美化工具

在浏览器中即时格式化、美化和压缩 SQL。支持 PostgreSQL、MySQL、SQL Server、BigQuery、Snowflake、Oracle 和 SQLite。免费、隐私保护 — 你的 SQL 不会离开设备。

无追踪 浏览器中运行 免费
缩进
格式化后的 SQL

🔒 100% 浏览器端 — 你的 SQL 绝不会离开设备。

已审核方言正确的格式化以及注释安全的压缩 — Go Tools 工程团队 · 2026年6月3日

什么是 SQL 格式化?

SQL 格式化(也称为美化或美化打印)会以一致的缩进、换行和关键字大小写重写查询,使其结构易于阅读。查询在格式化前后的运行结果完全相同 — 改变的只有空白字符。格式化让长查询在 Pull Request 中可被审查、更易于调试,并在团队内保持一致。压缩则相反:它去除注释,将查询折叠为一行紧凑的内容,便于嵌入代码或日志。

核心功能

9 种 SQL 方言

PostgreSQL、MySQL、SQL Server(T-SQL)、BigQuery、Snowflake、Oracle(PL/SQL)、SQLite、MariaDB 以及标准 SQL。

格式化与压缩

美化以提升可读性,或压缩为单行 — 压缩时会安全地去除注释。

100% 隐私保护

所有处理均在浏览器中完成。你的 SQL 绝不会发送到服务器。

样式控制

可选择关键字大小写以及 2 空格、4 空格或制表符缩进。

示例

杂乱的带 JOIN 的 SELECT

select u.id,u.name,count(o.id) as orders from users u left join orders o on o.user_id=u.id where u.active=true group by u.id,u.name order by orders desc

将一行带 JOIN、聚合和 GROUP BY 的查询缩进为可读的布局。

嵌套子查询

select * from products where category_id in (select id from categories where parent_id=(select id from categories where slug='electronics')) and price between 100 and 500

拆解嵌套子查询,让每一层逻辑都清晰可见。

CTE(WITH 子句)

with recent as (select user_id,max(created_at) last_seen from sessions group by user_id) select u.email,r.last_seen from users u join recent r on r.user_id=u.id where r.last_seen> now() - interval '7 days'

格式化一个带有下游 JOIN 的公用表表达式(CTE)。

批量 INSERT

insert into logs(level,message,created_at) values('info','started',now()),('warn','slow query',now()),('error','timeout',now())

对齐多行 INSERT 的值,便于审查。

常见使用场景

代码审查
在提交 Pull Request 前格式化查询,让审查者看到整洁、一致的 SQL。
调试
美化从日志或 ORM 中复制的单行查询,快速定位问题。
文档编写
为运维手册和技术文档生成缩进整齐的 SQL 示例。
嵌入代码
在内联到应用代码或配置之前,将查询压缩为单行。

技术细节

方言感知解析
基于 sql-formatter 引擎构建,能理解方言特有的语法、引号规则和函数。
浏览器端运行
完全在客户端运行;任何 SQL 都不会离开你的设备或抵达服务器。
注释安全的压缩
压缩会去除行注释和块注释,并完整保留带引号的字符串字面量。

最佳实践

选择正确的方言
选择你实际使用的数据库,可避免对方言特有语法(如反引号或 T-SQL 方括号)做出错误的格式化。
统一关键字大小写
在团队内约定使用 UPPERCASE 关键字,让差异对比更一致。
不要压缩需要再编辑的内容
源文件中保留格式化后的 SQL;仅在嵌入或传输时才压缩。

常见问题

如何在线格式化 SQL?
将 SQL 粘贴到输入框中,选择你的数据库方言,然后点击「格式化」。工具会以一致的换行和关键字大小写重新缩进查询,再让你复制结果。所有操作都在浏览器本地运行 — 不会上传任何内容。
如何格式化 PostgreSQL 查询?
点击「格式化」前,先从方言下拉框中选择 PostgreSQL。这样格式化器就会遵循 PostgreSQL 特有的语法,如美元引号字符串、类型转换(::)和函数,从而生成正确、地道的输出。
如何格式化 SQL Server(T-SQL)?
选择「SQL Server (T-SQL)」作为方言。格式化器随后便能理解 T-SQL 结构,如方括号 [标识符]、TOP 和变量,并对它们进行正确的缩进和大小写处理。
如何格式化 Snowflake 或 BigQuery 的 SQL?
两者都在方言下拉框中。选择 Snowflake 或 BigQuery 会应用各自对应的解析器,使数据仓库特有的函数和语法能整洁地格式化,而不会被通用 SQL 解析器破坏。
使用此工具时我的 SQL 安全吗?
安全。所有格式化和压缩操作都使用 JavaScript 在浏览器本地完成 — 你的查询绝不会发送到任何服务器、被记录或被存储。因此可以安全地用于生产环境的数据库结构和专有查询,这与会收到你粘贴的所有内容副本的服务器端格式化工具不同。
格式化和压缩 SQL 有什么区别?
格式化(美化)会添加缩进和换行,使查询便于阅读。压缩则相反:它移除注释并将查询折叠为一行紧凑的内容,便于将 SQL 嵌入代码或减少日志噪音。两者生成的查询运行结果都与原查询完全相同。
这个工具会改变我的查询的行为吗?
不会。格式化和压缩只改变空白字符、换行、注释和关键字大小写 — 绝不改变逻辑。格式化后的查询返回的结果与原查询完全一致。
SQL 应该使用什么缩进?
2 空格是最常见的默认值,能让差异对比保持紧凑;4 空格能提升深层嵌套查询的可读性;制表符则让每位开发者按自己偏好的宽度查看。选定一种并在团队内一致使用 — 本工具三种都支持。