免费在线 SQL 格式化与美化工具 — 在浏览器中格式化、美化并可视化编辑 SQL

为什么更好

不只是美化。

其他格式化工具止步于缩进。在这里你可以理解并重塑查询——可视化、安全,且没有一个字节离开你的浏览器。

可视化 WHERE 编辑器

把条件当作实时树或节点图来编辑。改一个值,SQL 立即更新,反向同样成立。没有别的格式化工具能做到这一点。

编辑每个 CTE 中的 WHERE

多 WHERE 编辑器会找出查询中的每一个 WHERE 子句——每个公共表表达式、每个子查询以及外层 SELECT——并让你选择编辑哪一个。非常适合由 CTE 层层构建的长 ClickHouse、PostgreSQL 或 BigQuery 查询。

智能参数绑定

在整个查询中检测 ?、:name、$1、@name 以及 ClickHouse 的 {name:Type} 参数,CTE 内部也不例外。重复用到 timestamp 这样的列?填写一次,所有出现处一起更新。

支持不完整的 SQL

无论是完整查询、缺少参数的查询,还是仅仅一个 WHERE 子句,粘贴进来照样格式化——不需要一条有效且完整的语句。

覆盖所有主流方言

PostgreSQL、MySQL、SQL Server、Oracle、BigQuery、Snowflake、Redshift、Spark 等,并可按方言设置关键字与标识符的大小写。

100% 私密

一切都在你的浏览器中运行。SQL 绝不会上传到服务器、被记录或被存储。关掉标签页,它就不复存在。

美化或压缩

完全掌控缩进、关键字大小写、运算符间距和换行,然后一键复制、下载或分享链接。

使用方式

三步搞定,零配置。

01

粘贴 SQL

任何查询都行——完整的、带参数的,或者只是一个片段。选好方言即可。

02

格式化并微调

立即美化。按你的风格指南调整大小写、缩进和间距。

03

编辑并填值

可视化调整 WHERE 子句,参数只填一次。复制结果或分享链接。

方言

懂你的数据库。

拥有专属页面的方言会以预配置状态打开格式化工具,并附带示例查询和该数据库所需语法的说明。

为工程师打造的免费在线 SQL 格式化工具

Free SQL Formatter 是一款快速、隐私优先的 SQL 格式化工具,能把杂乱的、挤成一行的或由机器生成的 SQL 变成整洁、易读、缩进一致的查询。无论你是要为一次快速代码评审在线格式化 SQL、整理一段从应用日志里复制出来的查询,还是美化一条庞大的分析语句,这款在线 SQL 格式化工具都会在浏览器中即刻完成——无需上传、无需注册、没有使用限制。

覆盖每种方言的 SQL 格式化与美化工具

SQL 语法在不同数据库之间存在差异,一刀切的工具往往产出别扭的结果。这款在线 SQL 格式化与美化工具支持所有主流方言。它既是 Postgres SQL 格式化工具,也是 MySQL 与 MariaDB 的美化工具、SQL Server(T-SQL)与 Oracle PL/SQL 的格式化工具,还是能理解方言特有语法的 ClickHouse SQL 格式化工具,例如 map 访问(attributes['key'])和 CAST 表达式。选好方言后,你可以控制关键字与标识符的大小写、缩进、运算符间距和换行,让输出完全符合团队的风格指南。

即使 SQL 不完整也能在线格式化

大多数工具在查询稍有不合法时就会失败。这款在线 SQL 格式化工具不一样:它能格式化完整语句、缺少参数或含 ? / :name / $1 占位符的查询,甚至只是一个孤立的 WHERE 子句。格式化从不依赖解析成功,因此你总能得到可读的输出;遇到异常输入时,看到的是清晰友好的提示而不是崩溃。

不只美化——理解并编辑你的 SQL

除了格式化,Free SQL Formatter 还能帮你重塑查询。可视化 WHERE 编辑器把条件呈现为可交互的 AND/OR 树和节点图;改一个值或运算符,SQL 会实时更新。智能参数绑定会检测占位符并合并重复项,所以像 timestamp 这样被复用的列,你只需填写一次就会应用到所有出现处。你还可以美化或压缩、复制或下载结果,并分享一条把全部内容编码在 URL 中的链接——把整洁的查询贴进 Pull Request 或同事的聊天窗口再合适不过。

编辑 CTE 和子查询中的 WHERE 子句

真实的分析查询——尤其在 ClickHouse、PostgreSQL、BigQuery 和 Snowflake 中——通常由一连串公共表表达式构成。Free SQL Formatter 会扫描整条查询,找出每个 CTE 中的每一个 WHERE 子句(还有子查询和外层 SELECT),并在带标签的下拉框中列出。选中你想处理的 CTE,可视化编辑器就会切换到那个子句;调整某个条件后,改动会被拼回正确的位置。解析器无法完全拆解的部分——例如 GLOBAL IN (SELECT ...) 子查询,或带方言特有语法的反引号标识符——会退化为可编辑的原始文本节点,因此你始终能修改它。这是唯一以这种方式处理多 CTE 查询的在线 SQL 格式化与编辑工具。

设计上私密,默认就快

由于每个字节都用 JavaScript 在本地处理,你的查询绝不会接触服务器。这让这款在线 SQL 格式化工具足以安全地处理生产环境、专有和敏感的 SQL——放心粘贴,用完关掉标签页即可。没有任何东西需要安装或配置:打开页面、粘贴查询,毫秒之间就完成格式化。

为什么选择这款在线 SQL 格式化工具

可读的 SQL 更容易评审、调试和维护,一致的格式还能减少版本控制差异中的噪音。与常见的在线 SQL 格式化工具相比,Free SQL Formatter 更快,因为它完全在客户端运行;更清爽,因为没有侵入式广告;也更强大,因为它不止于缩进。它能轻松处理深度嵌套的子查询、公共表表达式、窗口函数和冗长的布尔条件,并且会原样保留不常见或厂商特有的表达式,而不是丢弃它们。从一次性的快速整理到统一大型代码库中的所有查询,它都是一款可以每天依赖的 SQL 格式化与美化工具。

如何在线格式化 SQL

使用这款工具只需三步:把 SQL 粘贴到编辑器中,选择数据库方言和你偏好的格式化选项,然后复制美化后的结果。无论你搜索的是 SQL 格式化工具、在线 SQL 格式化、SQL 美化工具、ClickHouse SQL 格式化还是 Postgres SQL 格式化,Free SQL Formatter 的目标都是成为在线格式化 SQL、保持代码一致最快也最清爽的方式。

常见问题

我的 SQL 会被发送到服务器吗?

不会。Free SQL Formatter 完全在你的浏览器中运行,查询绝不会离开你的机器,因此可以安全地用于生产和专有 SQL。

它能格式化不完整或无效的 SQL 吗?

可以。与许多工具不同,它能格式化部分 SQL——一个孤立的 WHERE 子句、缺少参数的查询,或者还无法解析的草稿。只要检测到完整语句或 WHERE 子句,可视化编辑器就会启用。

它能编辑 CTE 和子查询中的 WHERE 子句吗?

可以。可视化编辑器会列出查询中的每一个 WHERE 子句——每个公共表表达式(CTE)、每个子查询以及外层 SELECT——并以 CTE 名称标注。从下拉框中选一个,即可以 AND/OR 树或节点图的形式编辑;改动会被拼回 SQL 中正确的位置。对于由多个 CTE 构成的 ClickHouse、PostgreSQL、BigQuery 和 Snowflake 长分析查询尤其有用。

什么是占位符和参数绑定?

?、:name、$1、@name 以及 ClickHouse 的 {name:Type} 这类占位符用来代替具体的值。我们会检测它们并合并重复项,因此像 timestamp 这样的值填写一次就会应用到所有出现处。ClickHouse 的参数按名称分组并根据声明的类型来定型,所以 {start_ts:UInt64} 和 {end_ts:UInt64} 即便类型相同也保持独立。

支持 ClickHouse 吗?

支持,而且使用的是真正的 ClickHouse 语法,而非用 MySQL 近似。这意味着 ARRAY JOIN、PREWHERE、GLOBAL IN、attributes_string['http.method'] 这样的 map 访问、quantile(0.95)(duration) 这样的参数化聚合、SETTINGS 与 FORMAT 子句,以及包含 $$ 的标识符都能被正确处理。请参阅专门的 ClickHouse SQL 格式化页面。

支持哪些 SQL 方言?

标准 SQL、PostgreSQL、MySQL、MariaDB、SQLite、SQL Server(T-SQL)、Oracle PL/SQL、BigQuery、Redshift、Snowflake、ClickHouse、DuckDB、Spark、Hive、Trino、DB2 等。