SQL 解析器

格式化和美化 SQL 查询,支持语法高亮。所有处理在浏览器中完成。

格式化 压缩 客户端处理
格式化后的SQL将在此显示...

如何使用 SQL 解析器

1

输入 SQL

在输入框中粘贴 SQL 查询语句。

2

格式化

点击格式化按钮美化 SQL 代码。

3

复制

复制格式化后的 SQL 查询。

什么是 SQL?

SQL(结构化查询语言)是用于管理关系数据库的标准语言。用于查询、插入、更新和删除数据,以及创建和修改数据库结构。

格式化的好处

提高可读性

格式良好的SQL更容易理解和调试

更好的协作

一致的风格有助于团队高效合作

更容易维护

格式化的查询更容易修改和扩展

常见问题

支持哪些 SQL 方言?

格式化器支持标准 SQL 语法,兼容 MySQL、PostgreSQL、SQLite 等主流数据库。

能验证 SQL 语法吗?

格式化器不执行语法验证,仅进行代码美化。如需验证请使用数据库客户端。

支持子查询格式化吗?

支持。子查询会自动缩进显示层级关系。

格式化工具能识别哪些 SQL 语句?

包括标准的读写语句集——SELECT、INSERT、UPDATE、DELETE——以及 DDL(CREATE TABLE、ALTER、DROP)、CTE(WITH ... AS)和带 OVER (PARTITION BY ...) 的窗口函数。JOIN 关键字及其 ON 子句会获得专门的缩进对齐,使连接条件整齐排列在对应 JOIN 的下方。

格式化或压缩会改变查询的执行方式吗?

不会。格式化工具能识别空白和关键字,但保持语义不变:字符串字面量、标识符和值原样保留,因此执行计划完全相同。压缩只移除无意义的空白和注释——但要注意嵌入在注释中的优化器提示;删掉注释就等于删掉提示,所以压缩后的 SQL 仅用于传输,请勿将其当作您的权威版本。

主要的 SQL 方言之间有什么差异?

它们都源自 ANSI SQL,但每个引擎都增加了自己的特性:PostgreSQL 提供 RETURNING 和 DISTINCT ON,MySQL 使用反引号标识符和 LIMIT n,SQL Server 使用 TOP n 和方括号,而 SQLite 的类型亲和性系统则以极为宽松著称。格式化工具对共通语法保持方言中立,并原样保留引擎特有的语法结构。

JOIN 和子查询是如何格式化的?

每个 JOIN 关键字都会开启一个新的对齐代码块,其 ON 或 USING 子句缩进在下方;相关子查询会额外增加一层缩进,使嵌套深度一目了然。CTE 主体在其 WITH 包装内像顶层语句一样格式化。

压缩 SQL 有什么用处?

将 SQL 压缩为一行可以去除无意义的空白和注释,适用于语句以单行字符串形式传递的场景:ORM 调试输出、日志解析、嵌入代码中的 SQL,以及管理工具中的 URL 传输。这只是一种传输上的便利——请保留格式化版本作为可编辑的权威版本。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}