SQL 格式化
一条语句或整段脚本一键美化 · 18 种数据库方言 · 关键字大小写与缩进可配
格式化选项
输入 SQL
格式化结果
这个工具做什么、不做什么
只调整排版,不改语义。格式化只改空白、换行与关键字大小写:字符串字面量与注释里的内容一个字符都不动,不重命名标识符、不增删括号、不合并或拆分语句。因此格式化后的 SQL 与原 SQL 的语义一致(可用「去掉多余空白」再对比验证)。
不会修复语法错误。SQL 本身写错时(少了右括号、引号没闭合、关键字拼错),格式化会直接失败并给出「第几行第几列附近」的位置,而不是猜你的意思去补全。报错信息来自 sql-formatter 的解析器,本页把它整理成中文位置提示。
「去掉多余空白」不是压缩器。它把字符串与注释之外的连续空白压成一个空格(可选移除注释),不缩短标识符、不去括号、不做任何语法级压缩。字符串里的空格、注释里的换行都原样保留;勾选「移除注释」才会删除注释。
方言影响关键字识别与引号/注释规则。本页基于 sql-formatter 15.4.11,可选 18 种方言(另有 transactsql 的别名 tsql 未单列)。选错一般不会报错,但排版可能与预期不同(例如把 PostgreSQL 的 :: 类型转换当成普通符号);拿不准就用「标准 SQL」。
常见问题
不会做语法级改写。格式化只调整空白、换行与关键字大小写,不重命名标识符、不增删括号、不改字面量内容;字符串与注释里的空格一个都不会动。反过来说,它也不会修复语法错误——SQL 本身就写错时(少了右括号、引号没闭合)会直接报错并给出行列位置,而不是猜你的意思去补全。
实测基于 sql-formatter 15.4.11,可用方言 18 个(另有一个 transactsql 的别名 tsql):标准 SQL、MySQL、MariaDB、TiDB、SingleStore、PostgreSQL、Amazon Redshift、SQLite、SQL Server(T-SQL)、Oracle PL/SQL、BigQuery、Snowflake、Spark SQL、Hive、Trino / Presto、IBM Db2、Db2 for i、Couchbase N1QL。方言影响关键字识别、引号与注释规则等,选错一般不会报错但排版可能与预期不同(例如把 PostgreSQL 的类型转换双冒号当成普通符号);拿不准就用「标准 SQL」。
不是。它只做一件事:把字符串字面量与注释之外的连续空白(空格、换行、制表符)压成一个空格,可选移除注释;不会缩短标识符、不会去掉括号、不做任何语法级压缩。因此体积通常只减少一点,请把它当成「把一段 SQL 快速压成一行」的排版动作,而不是 SQL 压缩或混淆工具。字符串里的多个空格会保留;注释默认原样保留(块注释里的换行也保留),勾选「移除注释」才会删掉。
不会上传。词法扫描、格式化、去空白全部在你的浏览器里完成(sql-formatter 是自托管脚本,不走 CDN),SQL 与表名不出本机、刷新即清空,页面里没有任何提交请求。单次上限 20 万字符;超过 1000 行会提示可能耗时,实测万行级脚本通常在一两秒内完成。