SQL格式化
支持MySQL、PostgreSQL、SQL Server、Oracle等十余种方言的SQL美化,也可压缩成一行
原始 SQL
351 字符格式化结果
方言差异要点
| 差异点 | MySQL | PostgreSQL | SQL Server | Oracle |
|---|---|---|---|---|
| 标识符引用 | `col` | "col" | [col] | "col" |
| 限制行数 | LIMIT 10 | LIMIT 10 | TOP 10 | FETCH 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. 含真实数据或凭据的语句建议先脱敏。