SQL格式化工具

粘贴一条 SQL 语句或一段脚本。关键字会写成大写,每个子句单独起一行,条件和列名会缩进。您粘贴的内容不会离开您的浏览器。

免费 在浏览器中运行 核对于2026年11月10日星期二

一条语句,或以分号分隔的多条语句。字符串、注释和带引号的名称保持原样。

缩进

删除换行和缩进。

结果

格式化后的 SQL — 复制,或下载为 formatted.sql。
语句数 — 文本中含有的语句数量。
格式化后的 SQL

此工具在您的浏览器中运行。您输入的内容不会发送给我们。

使用方法

  1. 将语句粘贴到“SQL”中。版式会随您的输入即时生成。
  2. 在“缩进”中选择2个或4个空格的版式。
  3. 如果语句必须写成单行,例如用于配置文件或日志,请勾选“压缩:全部放在一行”。
  4. 复制“格式化后的 SQL”,或下载为 formatted.sql。

版式如何生成

格式化工具把文本切分为词元:单词、数字、字符串、带引号的名称、注释、运算符和标点。属于 SQL 关键字表的单词写成大写,其余单词(包括名称)保持原有拼写。SELECT、FROM、WHERE、GROUP BY、HAVING 或 ORDER BY 等子句会另起一行,其内容比它缩进一级。

在 SELECT、FROM、GROUP BY、ORDER BY、SET 和 VALUES 之中,每个逗号都会另起一行。AND 和 OR 在 WHERE、HAVING 和 ON 之下另起一行。LEFT OUTER JOIN 之类的连接从 FROM 之下另起一行,其 ON 条件留在同一行。括号中的子查询比括号所在的行多缩进一级,其右括号与该行对齐。

  • 含有成对引号的字符串、用双引号、反引号或方括号括起来的标识符,以及美元符号引用的文本,都会原样保留。
  • 行注释和块注释都会保留。压缩版式时,行注释会变为块注释,使语句能够保持在一行中。

格式化工具不做什么

格式化工具不解析语句,因此不会检查它是否为有效的 SQL,也不会改变它的含义。它不了解某一数据库的规则,因此在一种方言中是特殊关键字、在另一种方言中是普通名称的词,两种情况下都会写成大写。在用于生产环境之前,请用您自己的数据库检查结果。

计算示例:一条报表查询

默认语句选出活跃用户的 id 和 name,以及各人的订单数,按用户分组,并按订单数排序。使用两个空格缩进时,选择列表的每一列占一行,每个子句单独起一行,LIMIT 10 为最后一行。

压缩后,同一语句为一行,单词之间为单个空格。语句数显示为1条。

常见问题

格式化工具支持哪种 SQL 方言?

它适用于大多数方言共有的部分,例如 SELECT、INSERT、UPDATE、DELETE、连接、子查询和 CASE。它接受 MySQL、PostgreSQL、SQL Server 和 SQLite 的引号写法,但不检查特定方言的语法。

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

不会。只有空格、换行和关键字的大小写会改变。名称、字符串、数字和注释都保持原样,因此语句的含义不变。

为什么我表名或列名中的某个词变成了大写?

该词在关键字表中,例如 USE 或 ORDER,因此无论出现在哪里都会写成大写。不在表中的名称会保持原样。若想保留原样,请用双引号或反引号括住这个名称。

为什么压缩时行注释会变成块注释?

行注释在行尾结束,因此在同一行中它会遮住语句的其余部分。块注释既保留文字,又不会遮住其后的代码。

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

不会。格式化在您的浏览器中进行。您粘贴的内容不会发送到我们的服务器,也不会在那里保存,这一点在语句含有私密数据时尤为重要。

资料来源

数据和文字最近核对于2026年11月10日星期二。

我们使用必要的 Cookie 来运行网站。经您同意后,Google 还会使用广告 Cookie 展示个性化广告。如果您拒绝,仍会看到广告,但广告不会个性化。