SQL 格式化
在线美化 SQL:关键字大小写、缩进风格、主要子句换行与逗号位置都可配置,支持 Standard/MySQL/PostgreSQL/SQL Server/Oracle/BigQuery 关键字表。
浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。
格式化选项
这个工具能做什么
- 接手别人写成一整行的 SQL,格式化后一眼看清 SELECT、FROM、WHERE 各在哪一段。
- 提交代码前统一风格:关键字大写、每层缩进 2 空格、逗号放行尾,评审时 diff 更干净。
- 排查慢查询时把嵌套子查询和 JOIN 展开,确认 ON 条件和 WHERE 条件没有写反位置。
- 写文档或工单时贴一段格式化过的 SQL,比贴原始单行更易读。
示例
输入
select a,b from t where id=1 and name like 'x%' order by a desc
输出
SELECT a, b FROM t WHERE id = 1 AND name LIKE 'x%' ORDER BY a DESC
默认选项是关键字大写、每层 2 空格缩进、逗号放行尾、主要子句换行;AND 会额外缩进一级,所以它出现在 WHERE 下面而不是与 WHERE 对齐。
常见问题
格式化会改变 SQL 的语义吗?
不会。工具自带 tokenizer,先按字符串、注释、标识符、数字、运算符切分,再只调整空白与关键字大小写。字符串字面量里的内容、注释里的文字都不会被动,所以不会出现把 LIKE 'a b' 里的空格压掉这类问题。
关键字大写是怎么判断的?会不会把列名也改掉?
只有出现在内置关键字表里的词才会改大小写。表由标准 SQL 关键字加上所选方言的扩展关键字组成(MySQL 的 AUTO_INCREMENT、PostgreSQL 的 RETURNING、BigQuery 的 QUALIFY 等)。列名和别名不在表里,保持原样;选「保持原样」则一个字母都不动。
逗号放行首和行尾有什么区别?
行尾是 SELECT a, b 这种常见写法;行首是 SELECT a , b,好处是增删最后一个字段时 diff 只影响一行。列表里的逗号才换行,函数参数里的逗号(如 COUNT(a, b))保持在一行。
报「字符串没有结束」或「括号不匹配」怎么办?
说明 SQL 本身不完整:引号没闭合、块注释少了 */,或者括号数量对不上。工具不会猜你的意图,宁可报错也不输出可能被误用的结果。可以把 SQL 拆小一段段格式化来定位问题。
我的 SQL 会被上传吗?
不会。分词和排版全部在浏览器里完成,没有网络请求,也不会保存你粘贴的语句。
关键词:sqlsql 格式化prettifybeautify格式化mysqlpostgresqlsql serveroraclebigquery查询