SQL 格式化器

概述

SQL 格式化器将压缩或随意缩进的 SQL 查询重新排版为整洁可读的代码,支持 19 种数据库方言,可配置关键字大小写、缩进风格、表达式换行宽度等选项,格式化结果即时显示。

方言选择影响格式化效果

选错方言不会让 SQL 执行失败,但会影响格式化准确性。以下方言有明显差异:

MySQL / MariaDB

  • 反引号标识符(`table`)会被正确识别
  • GROUP_CONCAT 等特有函数正常处理
  • AUTO_INCREMENTENGINE=InnoDB 等语句不被误识

PostgreSQL

  • 双引号标识符("table")作为标准处理
  • RETURNINGON CONFLICT DO UPDATE 正确格式化
  • 数组操作符 &&@> 不被误识为运算符

T-SQL 和 Transact-SQL 有两种选项,transactsql 对 SQL Server 专有语法(如 TOPWITH(NOLOCK))识别更完整。BigQuery 处理反引号项目路径时需单独选择,而不是使用通用 SQL 选项。

缩进样式与表达式宽度

工具提供三种缩进风格:

  • 标准:每级子句缩进,SELECTFROMWHERE 对齐在左侧,适合大多数场景
  • 表格左对齐:关键字右对齐,字段纵向对齐,便于阅读多列 SELECT 语句
  • 表格右对齐:关键字左对齐,字段排列更紧凑

"表达式宽度"参数(默认 50 字符)控制括号内表达式何时折叠换行。子查询或 IN (...) 包含多个值时,调低该值可以让列表每项单独成行,便于 diff 比较。

逻辑运算符换行位置

AND / OR 默认在前面换行(即下一行以 AND 开头),符合大多数团队 SQL 规范。若团队约定运算符放在行尾,切换"逻辑运算符换行"为"后"即可。两个查询之间的空行数可调整为 1 或 2 行,便于分隔批量脚本中的独立语句。

格式化在浏览器本地完成,SQL 代码不会上传到服务器。