SQL格式化

支持MySQL、PostgreSQL、SQL Server、Oracle等十余种方言的SQL美化,也可压缩成一行

原始 SQL

351 字符

格式化结果

方言差异要点

差异点MySQLPostgreSQLSQL ServerOracle
标识符引用`col`"col"[col]"col"
限制行数LIMIT 10LIMIT 10TOP 10FETCH FIRST 10 ROWS
字符串拼接CONCAT()||+||
当前时间NOW()NOW()GETDATE()SYSDATE
选错方言通常不会报错,但会导致该方言特有的语法(如 [col]、::type、@var)被拆散换行, 结果虽然仍可执行但排版难看,建议按实际数据库选择。

使用提示

  • 格式化只做排版,不会改变语义,也不会校验字段与表是否存在。
  • 占位符 ?、:name、$1 会被保留,不会展开成具体值。
  • 注释 -- 与 /* */ 会保留,但位置可能随换行调整。
  • “压缩成一行”会剔除注释和多余空白,适合塞进代码字符串;它是本地实现,不依赖格式化库。
SQL 内容完全在浏览器本地处理,不会上传。但包含真实数据或凭据的语句仍建议先脱敏,避免留在浏览器历史或剪贴板中。

功能介绍

SQL格式化基于sql-formatter实现,支持标准SQL以及MySQL、MariaDB、PostgreSQL、SQLite、T-SQL、PL/SQL、DB2、Hive、Spark SQL、BigQuery、Redshift、Snowflake、Trino、TiDB等十余种方言。可配置关键字大小写(全大写、全小写、保持原样)、缩进宽度与Tab缩进、缩进风格(标准、关键字左对齐、关键字右对齐的表格式排版)、逻辑运算符换行位置(AND放行首还是行尾)、单行最大宽度、紧凑运算符与分号是否独占一行,并支持输入时自动格式化。除美化外还提供"压缩成一行",本地实现的压缩器会正确跳过字符串字面量、剔除单行与块注释并合并空白,适合把SQL塞进代码字符串或日志。页面附有MySQL、PostgreSQL、SQL Server、Oracle在标识符引用、限制行数、字符串拼接、当前时间四个方面的差异对照,说明选错方言虽然不报错但会让特有语法被拆散换行。格式化库按需懒加载,全过程在浏览器本地完成。

使用说明

1. 先按实际数据库选择SQL方言,这会影响特有语法的排版;2. 粘贴SQL,点击"格式化";3. 按需调整关键字大小写、缩进、逻辑运算符换行位置与单行宽度,结果会跟随更新;4. 勾选"输入时自动格式化"可以边写边排版;5. 需要把SQL放进代码字符串时点"压缩成一行",注释会被移除;6. 格式化只改排版不改语义,也不会校验表名字段名是否存在;7. 占位符会原样保留,不会展开成具体值;8. 含真实数据或凭据的语句建议先脱敏。