SQL 格式化
SQL Formatter
按可配置的关键字大小写、缩进和逗号位置格式化 SQL,覆盖主流方言。
把一条 SQL 查询排到能读——关键字对齐,子句各占一行,join 缩进在它挂靠的表下面。它认识五种方言,因为方言之间的差别主要在于字符串、标识符和注释怎么引用,弄错这一点正是格式化器把查询弄坏的方式。
ANSI 引用:标识符用双引号,字符串里的引号写两遍。
SQL 输入
拖入 .sql 文件
在这个标签页里读取,不上传。
格式化结果
输入
253 B
输出
0 B
语句数
0
记号保住
是
这只负责排版 SQL,不做校验。缺了 FROM 的查询照样会被排得很整齐,然后被数据库原样拒绝。
怎么用
先选方言
MySQL 的反引号、PostgreSQL 的美元引用、SQL Server 的方括号——每一种都改变什么算标识符、什么算字符串。「标准」是 ANSI 的读法,适合任何要求可移植的东西。
设置团队风格
关键字大小写、缩进宽度、逗号在行首还是行尾,以及 select 列表在多宽处折行。行首逗号看着别扭,直到你对一个列清单做过一次 git blame。
看「记号已保留」
每次运行后输出会重新分词并和输入比较。如果它说没有,说明格式化器读错了什么——几乎总是方言不对——你应该用你的输入,而不是它的输出。
常见问题
它会校验我的查询吗?
不会。它只排版 SQL;它不知道你的 schema,也不解析含义。一条缺了 `FROM` 子句的查询会被整整齐齐地格式化,然后照样被你的数据库拒绝。
为什么我的 `--` 注释变成了 `/* */`?
只在压缩时会这样。`--` 注释一直延伸到行尾,把查询放到一行上就会把它后面的一切都注释掉。页面会统计转换了多少条,所以这个改动不是无声的。
这里的「未终止的字符串」是什么意思?
一个始终没有闭合的引号,通常是因为方言选错了——「标准」模式下的反引号,或 MySQL 模式下的 `$$` 块。它之后的一切都被读成那个字符串的一部分,这就是输出剩下部分看起来乱掉的原因。
能粘一整个迁移文件吗?
能——语句按分号拆开,并显示条数。格式化在 worker 里运行,大文件不会锁住页面,不过特别长的会花一会儿。
可以从这些接进来
字符串转义
String Escaper
按 JSON、JavaScript、SQL、shell、CSV 和正则各自的规则转义字符串,也能反转义回去。
CSV 转 SQL
CSV to SQL
从表格推断列的类型,生成指定方言的 CREATE TABLE 和 INSERT 语句。
JSON 格式化与校验
JSON Formatter & Validator
把 JSON 美化成缩进形式或压成一行,校验语法并直接指出出错的行和列。
YAML 格式化与校验
YAML Formatter & Validator
统一 YAML 缩进并校验语法,把会让解析器崩掉的制表符和锚点错误标出来。
接下来
这些工具吃得下当前工具的产出,结果可以直接送过去。
用 SQL 查询 CSV
SQL over CSV
在浏览器里对拖进来的 CSV 或 TSV 跑 SQL——SELECT、WHERE、GROUP BY/HAVING、ORDER BY、LIMIT、CASE,以及两表 JOIN——语法就印在页面上。
CSV 转 SQL
CSV to SQL
从表格推断列的类型,生成指定方言的 CREATE TABLE 和 INSERT 语句。
列表格式转换
List Formatter
把多行文本转成逗号列表、带引号的 SQL IN 子句、JSON 数组或项目符号列表,也能反着来。
字符串转义
String Escaper
按 JSON、JavaScript、SQL、shell、CSV 和正则各自的规则转义字符串,也能反转义回去。
Base64 编码解码
Base64 Encoder & Decoder
对文本和文件做 Base64 与 Base64URL 编解码,UTF-8 处理正确。
curl 转代码
curl to Code
把一条 curl 命令转成 fetch、axios、Python requests、Go、PHP 或 PowerShell 代码。