SQL格式化
用清晰的缩进和换行格式化 SELECT、JOIN、WHERE、INSERT 等 SQL 语句,让查询更容易阅读、检查和分享。 无需安装或注册,文件和输入内容尽量保留在设备本地处理,更适合重视隐私的日常工作。
使用方法
- 把要格式化的 SQL 粘贴到输入框(ORM 生成的一行长查询、聊天群发来的乱码 SQL 都可以)
- 选择缩进风格:2 空格(适合 Slack、企业微信、飞书贴文)或 4 空格(适合 GitHub PR 评审)
- 点击「格式化 SQL」按钮,整个过程在浏览器本地完成,SQL 不会上传任何服务器
- 格式化后 SELECT、FROM、JOIN、WHERE、GROUP BY 等主要子句会换行,嵌套子查询和 CTE 通过缩进可视化层级
- 点击「复制」一键拷贝结果,直接粘贴到 Code Review 工单、企业内部 Wiki、Navicat / DBeaver / DataGrip 客户端
- 结合 `EXPLAIN ANALYZE` 在数据库中定位慢查询瓶颈,对 OLAP 报表查询和数据分析 SQL 优化尤其有用
所有处理都在您的浏览器中完成,文件从不发送到服务器。
常见问题
基于标准 ANSI SQL,覆盖 MySQL、PostgreSQL、SQL Server、Oracle、SQLite、Redshift、BigQuery、Hive、ClickHouse 的常见语法。`LIMIT 10 OFFSET 5`、`RETURNING`、`MERGE INTO`、窗口函数(`OVER` 子句)、PostgreSQL 的 `::cast` 类型转换都能正确格式化。Oracle 专有的 `CONNECT BY`、Hive 的 `LATERAL VIEW` 等扩展语法会原样保留。
绝对不会。本工具只改变空格、换行、缩进,不会调整任何关键字、标识符或运算符顺序。即使是 `WHERE 1=1 AND id IN (SELECT ...)` 这种写法也会保持原样。把格式化前后的 SQL 分别 `EXPLAIN ANALYZE`,执行计划完全一致。
这正是本工具最适合的场景。MyBatis、Hibernate、Django ORM、Prisma 生成的「一行塞下所有 JOIN」的查询,格式化后会按 SELECT 列、FROM、各级 JOIN、WHERE、GROUP BY、ORDER BY 分块呈现,便于定位性能瓶颈。慢查询日志排查、SQL 审核必备。
完全没问题。`-- 单行注释`、`/* 多行注释 */`、`'中文字符串'` 字面量都按 UTF-8 原样保留。许多企业的业务 SQL 包含大量中文注释(如「订单状态:1=已支付」),格式化后这些注释依然贴合代码上下文显示。
完全本地处理。SQL 不会经过任何外部服务器,可以放心粘贴包含真实表名、生产库账号、客户信息的查询。符合金融、医疗、政企客户「数据不出内网」的合规要求,许多受限网络环境(如银行 VDI)也能正常使用。
支持。`WITH RECURSIVE`、多重 CTE、`ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ...)` 这种数据分析常用结构都能按嵌套层级清晰展示。BI 报表的复杂分析 SQL、数据仓库的多层 CTE 在格式化后可读性大幅提升。
可以。提供 2 空格和 4 空格两种缩进。GitHub PR 差分高亮推荐 4 空格,企业微信、飞书文档贴文推荐 2 空格(避免折行)。缩进设置自动保存,下次访问时仍然生效。