浏览器本地处理

SQL 格式化

使用成熟 SQL formatter 处理关键字、缩进、子句和列表,并允许选择关键字大小写。只做格式化,不连接数据库或执行语句。

浏览器本地处理
0 / 500,000
格式化 SQL

工具指南

什么是SQL 格式化?

SQL 格式化通过成熟解析器整理查询中的关键字、子句、列表、连接和缩进,并提供通用 SQL、MySQL、PostgreSQL、SQLite 与 T-SQL 方言选择。它适合提高复杂查询的可读性和审查效率,但不会连接数据库、解析真实表结构或执行任何语句。常见使用场景包括:整理包含 JOIN、子查询、分组和排序的长查询。;按目标数据库方言统一工单、文档或代码中的 SQL 排版。;在执行前更清楚地审查条件、列清单和逻辑分组。页面同时列出输入边界、输出规则和限制,便于在复制结果或投入实际流程前核对格式、语义与安全注意事项。

适用场景

  • 整理包含 JOIN、子查询、分组和排序的长查询。
  • 按目标数据库方言统一工单、文档或代码中的 SQL 排版。
  • 在执行前更清楚地审查条件、列清单和逻辑分组。

使用方法

  1. 选择最接近目标数据库的 SQL 方言。
  2. 粘贴查询并选择关键字大小写。
  3. 格式化后在目标数据库中复核语法。
  4. 先使用页面提供的复杂示例验证当前选项和运行方向,再替换为自己的数据。
  5. 检查输出区、状态提示和限制说明,确认结果符合预期后再复制、下载或继续处理。

可运行示例

工作区中的“示例 1”和“示例 2”按钮会载入对应内容。两个示例覆盖不同结构、方向或边界,可以直接运行并观察输出与状态提示。

示例 1

select u.id,u.name,count(o.id) 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

示例 2

select date_trunc('day',created_at) day,count(*) total from events where created_at>=now()-interval '30 days' group by day order by day

输入规则

  • 应选择最接近目标数据库的方言再粘贴 SQL。
  • 输入只作为文本解析,不需要也不应提供数据库连接信息。
  • 存储过程、模板占位符和厂商扩展是否支持取决于解析器。
  • 文本输入在运行前按字符计数,当前页面上限为 500,000;文件类功能另按页面显示的文件上限执行。
  • 格式化不验证表名、列名或权限。

输出规则

  • 输出按所选方言重新排列空白、缩进和常见子句。
  • SQL 关键字可统一为大写或小写,标识符和值不会因此改名。
  • 格式化不验证表、列、权限、事务效果、注入风险或查询性能。
  • 输出只反映当前输入、方向和选项;切换模式或修改输入后应重新运行,不应把旧结果当成新结果。
  • 复杂厂商扩展可能无法完整解析。

限制与注意事项

  • 格式化不验证表名、列名或权限。
  • 复杂厂商扩展可能无法完整解析。
  • 不要把格式化成功当作 SQL 安全审查。

数据处理说明

SQL 文本只在浏览器中传给本地 formatter,不会建立数据库连接、执行查询、读取模式或保存历史。关闭或刷新页面后,本工具不会保留本次数据。

FAQ

SQL 会被执行吗?

不会,页面不连接数据库,只在浏览器内解析和打印文本。

为什么需要选择方言?

不同数据库有不同关键字、引号和语法,选择正确方言可减少误解析。

可以格式化存储过程吗?

取决于方言和具体语法;复杂过程语言需在目标数据库工具中复核。

格式化会改变查询结果吗?

目标是只改变排版和关键字大小写,但复杂扩展语法可能解析不完整;重要查询必须在目标数据库测试。

能检测 SQL 注入吗?

不能。它不理解参数来源、拼接方式或权限边界,安全检查应使用参数化查询、代码审查和专用扫描。

是否支持多条 SQL?

常见用分号分隔的多条语句可以尝试格式化,但支持程度取决于方言和具体过程语法。

更新日期: 2026-08-09