什么是 SQL 格式化程序?
SQL Formatter 将密集的、单行或不一致的写入的 SQL 变成可读的、适合复习的查询,它将每个主要子句 - SELECT、FROM、WHERE、JOINs、GROUP BY、ORDER BY、HAVE、LIMIT、UNION - 放在自己的行上,将 SELECT 列分解到其子句下的单独行、缩进和/或条件下,并将关键字外壳标准化为上或下。结果是代码复习中您想要的布局类型:来自 ORM 日志的 400 个字符的查询成为您可以扫描缺少的连接条件的结构。
作为 SQL 查询格式化程序,它采用像选择前 10 名 [订单 ID] 一样的行,总计来自 dbo。[订单详细信息],其中总计 > 100 和状态 = 'open',并在第一行返回 SELECT TOP 10,[订单 ID] 和总计在他们自己的缩进行上,然后从 FROM,然后 WHERE 在其下缩进 AND 条件。 SQL Server 用户可以将其视为 SSMS 的 SQL 格式化程序:格式化此在线 SQL 格式化程序中的 T-SQL,然后将其粘贴回 SQL Server Management Studio。它是一个网页,而不是 SSMS 扩展,因此没有什么可安装的。
在引擎盖下,它是一个真正的标记器,而不是一堆查找和替换规则。 字符串文字(包括双引号和反斜杠转义)、双引号和反引号标识符、括号内的 SQL 服务器标识符、数字、运算符和两种注释样式(--- 行和 /* 块 */)在做出任何布局决定之前被列为原子标记。 这意味着字符串中的“select * from users”之类的列值永远不会被误认为是子句,并且格式化可以重构空白而不破坏文字内容。
Minify模式则相反:它将格式化的查询折叠为单行- 丢弃注释,将每个字面字节保留为字节- 这对于日志抓取、将查询打包到JSON有效负载或。env文件中以及比较查询形状的所有内容都在浏览器中运行客户端,因此包含表名、字面或模式详细信息中的客户数据的生产查询永远不会在任何地方上传、记录或存储。
格式化是基于标记器的,而不是基于正则表达式的,因此包含 SQL 关键字的字符串文字和注释不会像它们一样被重新格式化。 方言在任何格式化程序无法解决的方式上仍然不同,特别是在引用标识符方面,因此输出是归一化的,而不是保证可移植的。
如何使用 SQL 格式化程序?
粘贴你的 SQL
任何查询 - ORM 调试日志中的单行程序、手写的报表查询或以分号分隔的多语句脚本。
选择关键字大小写和缩进
为关键字和 2、4 或 8 个缩进空格选择大写或小写以匹配您的团队约定。
单击格式化或缩小
Format 生成每个行的子句输出,它们自己的行和/或条件缩进。 Minify 将所有内容折叠成一条行,删除注释和未触及的文字。
复制或下载
将结果复制到剪贴板以获取代码审查或迁移文件,或将其作为 .sql 文件下载。
主要特点
基于分词器的,字面安全
字符串文字、引用标识符和注释首先被拉伸 - 格式化永远无法更改引号中的数据
子句感知换行符
选择,从,从,何处,连接变体,分组,按顺序,有,限制和联合开始一个新行,子查询按嵌套深度缩进
关键字大小写标准化
一个综合的关键字列表(DML、DDL、函数、类型)被转换为大写或小写;标识符完全按照写入的方式保留
每行选择一列
逗号分隔的选择列表分解到各个缩进行,使广泛的查询在拉取请求中具有可分割的功能
Frequently Asked Questions
Related Tools
CSS Minifier & Beautifier
Minify CSS to cut file size or beautify minified stylesheets for debugging
HTML Minifier & Beautifier
Minify HTML markup for faster page loads or beautify it for readable, indented source
JSON to SQL Converter
Convert a JSON array of objects into SQL CREATE TABLE and INSERT statements for MySQL, PostgreSQL, or SQLite. Infers types, runs client-side.
JSON to TOML Converter
Convert JSON to TOML 1.0. Objects become tables, arrays of objects become arrays of tables, and everything is rendered inline where TOML expects it.
Comments
0 comments
No comments yet. Be the first to share your thoughts!