SQL 格式化与压缩 - 读懂一条长查询

SQL 格式化与压缩

SQL 格式化 - 常见问题

MySQL、PostgreSQL、SQLite、SQL Server 和 Oracle 都可以,因为这个工具只需要认出字符串、注释、带引号的名字和子句关键字——这些是各方言共有的部分。反引号、双引号和方括号一律当作标识符引号,所以你不必告诉它这条查询来自哪种数据库。
新
Markdown 编辑器 编写 Markdown 并并排查看渲染结果。支持标题、列表、表格、代码块和链接;可复制 HTML 或下载 .md 与 .html 文件。在浏览器中运行。
今日热门
YAML 格式化 重新整理杂乱 YAML 的缩进,按行号定位错误,并以 JSON 形式回看文档。注释、块标量与锚点都会保留。全部在浏览器中完成。

这个工具能做什么

你需要看懂的那条查询,往往不是你写的。它来自一份日志、一个 ORM、同事发来的一条消息:一整行,四个 join,还有一个找不到尽头的 where。这个页面把它拆到各行,让结构显出来;等到别的东西要读它时,再收回一行。

使用方法

  1. 1 粘贴查询——一条语句或者整个脚本都行。
  2. 2 选好缩进,然后点格式化或压缩。
  3. 3 文字会在同一个框里变化——复制它,或者点撤销。

单行注释,在没有行的地方就是隐患

「--」注释一直管到行尾。压缩会去掉换行,所以留在原地的注释会把后面的一切都吞掉:查询照样能跑,只是悄悄地跑到一半就停了。所以这里的压缩会把行注释整个删掉——也所以字符串里的「--」原封不动,因为在那里它是数据,不是注释。

引号,以及成双的引号

在 SQL 里,字符串内部的引号靠写两遍来转义:'O''Brien'。在第二个引号处就把字符串关掉的工具,会把名字的后半截当成代码读,从那以后它找到的每个关键字都是幻觉。带引号的标识符同理——`order`、"group"、[limit] 都是名字,名字里的关键字不是关键字。

它绝不改写你的查询

关键字不会被改成大写,括号不会被简化,别名不会被改名。动的只有空白。这一点很要紧,因为格式化后的查询通常要回到一个团队会评审的文件里:满屏大小写变更的 diff,会把真正改动的那一行藏起来;而小写关键字是团队风格,不是错误。

格式化不等于检查

这个页面从不连接数据库,所以它不知道某张表存不存在、你的 join 对不对、这条查询会不会慢。它读的是文本,动的是空白。它真正给你的是形状——而一条你能看清形状的查询,才是你能推敲的查询。

相关开发工具

JSON 格式化 在浏览器里格式化、压缩并校验 JSON。出错位置精确到行列,可折叠的树状图展示结构。
HTML 格式化 把乱糟糟的 HTML 缩进成能读的样子,或者压掉多余部分让它变小。片段也能处理,而且绝不把你的标记改写成别的东西。
CSS 压缩 去掉注释和空白来压缩 CSS,或者重新展开成整齐的缩进。calc() 中的空格、字符串和许可证注释都原样保留。
XML 格式化 把乱糟糟的 XML 缩进成能读的样子,或者压小。支持 RSS、CDATA 和命名空间,绝不改写你的文档。
JavaScript 压缩 用 Terser 压缩 JavaScript——构建工具用的就是它。它解析代码而不是猜,行为不变。什么都不会上传。

您可能喜欢的其他工具

Word转PDF 免费把 Word 转成 PDF:上传 DOC、DOCX、ODT 或 RTF 文件,几秒内下载排版完好的 PDF,无需注册。
PDF转Word 免费把 PDF 转成 Word:上传 PDF,几秒内下载可编辑的 DOCX 文件,无需注册,也没有水印。
字数统计器 免费字数统计:粘贴文本即可统计字数、字符、句子与段落,并估算阅读时间,内容不会离开浏览器。
字符计数器 免费字符统计:统计含空格与不含空格的字符数、词数和行数,并检查标题与元描述的 SEO 长度限制。
关键词密度检查器 免费关键词密度分析:粘贴文本或网址,查看每个词与短语出现的次数及占比,辅助内容优化。