DevToolPal
简

SQL 格式化

美化 SQL 语句,支持 MySQL、PostgreSQL、SQL Server、Oracle、SQLite、BigQuery 等方言。

本地处理,不上传

选项

输入

0 字符 · 0 B

输出

0 字符 · 0 B

功能简介

SQL 格式化工具把很长的一行查询变成缩进统一、易读的格式。每个子句(SELECT、FROM、WHERE、GROUP BY、ORDER BY)各占一行,选择的列和条件每行一个,JOIN 对齐在被连接的表下面,子查询在括号里缩进。

格式化后的 SQL 在代码评审时更好看,查询结果不对时更容易排查,也方便贴进文档。从 ORM 日志或程序报错里复制出来的一整行查询,格式化后一目了然。

使用方法

  1. 把一条或多条 SQL 语句粘贴到「输入」框,或把 .sql 文件拖进去,也可以点「示例」。
  2. 选择数据库对应的「方言」。
  3. 「关键字」可以选大写、小写或保持原样,COUNT 这样的函数名也会跟着变。
  4. 「缩进」可以选 2 个空格、4 个空格或 Tab。
  5. 复制结果,或下载为 .sql 文件。快捷键:Ctrl/Cmd+Enter 格式化,Ctrl/Cmd+Shift+C 复制。

用分号分隔的多条语句之间会空一行,注释保留在原来的位置。

示例

select u.id, count(o.id) as orders from users u left join orders o on o.user_id = u.id group by u.id

会变成

SELECT
  u.id,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
GROUP BY
  u.id

小贴士

关键字大写能让子句和表名、列名区分开,这是最常见的团队规范。如果团队习惯写小写 SQL,选「小写」即可让整条查询风格一致。如果提示出现了意外的符号,先检查方言是否选对,比如反引号包起来的名称在 MySQL 里合法,在标准 SQL 里却不行。

常见问题

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

不会。格式化在你的浏览器里完成,暴露表名、客户数据或业务逻辑的查询语句都不会离开你的设备。

› 支持哪些 SQL 方言?

标准 SQL、MySQL、MariaDB、PostgreSQL、SQLite、SQL Server(T-SQL)、Oracle(PL/SQL)、BigQuery、Snowflake、Redshift 和 Spark SQL。选对方言能正确处理各自特有的语法,比如反引号标识符、:: 类型转换或方括号名称。

› 格式化会改变查询的含义吗?

不会。只会调整空白,以及按你的选择改变关键字和函数名的大小写。标识符、字符串和注释都保持原样。

› 为什么提示「Unexpected end of input」?

通常是某个括号或引号没有闭合。错误会指向查询的末尾,找一下最后一个没有配对的 ( 或 '。