SQL 格式化
把从日志或 ORM 里拿到的、挤成一行的查询粘进来,它又会变回一份能读的查询——SELECT、FROM、WHERE 和每个 JOIN 各据一行。
代码不会离开此页面:格式化在你的浏览器中完成。
- 免费
- 文件不会离开你的设备
- 无需注册
- 不限文件数量
使用方法
- 把查询粘贴到第一个输入框。
- 决定关键字是否大写,以及每个字段是否单独一行。
- 复制结果。
实用说明
为什么要保护字面量
查询里可能有一个值写作 'order by name',也可能有一条提到 SELECT 的注释。用查找替换来干活的格式化器会在那里断行,或者把你数据中的某个词改成大写。这里在格式化之前先把字符串字面量和注释取出来,处理完再原样放回。
断行是为了什么
读一份查询就是要快速找到三件事:它碰了哪些表、这些表怎么连接、按什么条件过滤。把每个子句放在自己的行上,一眼就能回答这三个问题——这也是代码评审中约定俗成的排版,远早于有人真正执行这条查询。
常见问题
支持哪种方言?
PostgreSQL、MySQL、SQL Server 和 SQLite 共有的那些子句。方言特有的语法不会被重排,但也不会被破坏——不认识的词原样通过。
它会检查查询有没有错吗?
不会。它只排版,不解析。有问题的查询依旧有问题,只是更好读了。
查询会发送到服务器吗?
不会。一切都在你的浏览器里进行,这一点很要紧——查询里带着表名,往往还带着生产环境的数据。
为什么我的关键字没有变成大写?
打开「关键字大写」。这是偏好而不是规矩:很多团队全篇用小写写 SQL。
相关工具
- JSON 格式化与校验 粘贴 JSON,即可获得格式化、校验或压缩后的结果。数据始终留在浏览器里——当内容含有令牌或客户数据时,这一点尤为重要。
- CSV 转 JSON 粘贴表格,得到 JSON。解析遵循 RFC 4180,因此「张三, 李四」这样的单元格仍是一个字段,而不会被拆成两个——多数速成转换器正是在这里出错。
- HTML 格式化 粘贴 HTML 就能读了。每个标签单独一行,按嵌套层级缩进——找出那个忘记闭合的 div,没有更快的办法。
- HTML 压缩 粘贴 HTML,拿回一个去掉了无人可见的空白的版本。输入框下方的计数会显示省下了多少。
- CSS 格式化 粘贴样式表——哪怕它只有一行——就能重新读懂。每条声明单独一行,嵌套块获得应有的缩进,注释留在它该在的位置。
- CSS 压缩 粘贴样式表,拿回压缩后的版本。输入框下方的计数显示压缩前后的体积,你能直接看出这么做值不值。
- XML 格式化 机器生成的 XML 往往是一条极长的行。粘贴到这里,结构就会浮现出来:每个元素单独一行,按深度缩进。