SQL 压缩器
通过移除注释、换行和所有不必要的空格来压缩 SQL,同时保留字符串字面量、带引号的标识符和运算符。选择 MySQL、PostgreSQL、T-SQL 或 BigQuery 等方言,使引号、注释和批处理规则与你的数据库相匹配。压缩器会报告未闭合的字符串、注释和括号及其行号和列号,适合需要将查询嵌入代码中的开发者。
常见问题
SQL 压缩器会移除什么?
它会删除行注释、块注释、换行符和缩进,并且只在两个单词或运算符原本会连在一起时保留一个空格。字符串字面量和带引号的标识符会保持原样。
为什么要选择一种方言?
不同数据库使用的引号和注释方式各不相同。MySQL 将 # 视为注释,并将反斜杠视为转义符;PostgreSQL 使用美元引号字符串;T-SQL 使用 [方括号] 和 GO 批次;BigQuery 则使用三重引号字符串。方言选项可确保字面量内部的内容不会被更改。
会保留某些注释吗?
会。MySQL 和 MariaDB 可执行注释、文本以版本标记开头的块注释,以及 /*+ INDEX(t) */ 这样的优化器提示都会保留,因为它们会影响语句的运行方式。其他注释都会被删除。
GO、/ 和 DELIMITER 行会如何处理?
T-SQL 中的 GO、Oracle 脚本中的 / 行以及 MySQL DELIMITER 命令等批次分隔符会保留在单独的行上。客户端工具只会在这些位置识别它们,因此将它们与其他代码合并会导致脚本出错。
压缩会导致查询出错吗?
压缩器只会删除字面量之外的空白和注释,并会在运算符字符之间保留空格,因此 - -1 不会变成注释。查询的运行方式与之前相同。
会检测哪些错误?
未闭合的字符串字面量、带引号的标识符、块注释和美元引号字符串,以及不平衡的括号都会报告其行号和列号。它不会检查完整的 SQL 语法。
有哪些可用方言?
Standard SQL、MySQL、MariaDB、PostgreSQL、SQLite、T-SQL、PL/SQL、BigQuery、Snowflake、Redshift、Spark SQL、Hive、Trino 和 Db2。默认的 Standard SQL 使用单引号字符串,且不支持反斜杠转义;标识符可使用双引号、反引号和方括号。
它会更改关键字的大小写吗?
不会。关键字、标识符和函数会保留原来的大小写。只有空白和注释会被删除。
输入内容可以有多大?
每次请求最多可处理 1 MB 的 SQL。包含许多语句的长迁移脚本会一次性压缩完成。
我的 SQL 会被保存吗?
不会。查询会在内存中处理并立即返回。它们绝不会被保存,只会记录请求大小。