SQL Formatter & Minifier
Beautify or compress SQL across PostgreSQL, MySQL, SQLite, BigQuery, MS SQL, and Standard SQL. Keyword case, indent size, and dialect-aware parsing — all running locally in your browser.
Input SQL
Output
如何在线格式化 SQL
将您的 SQL 查询粘贴到 输入SQL 面板中,选择一个 方言 和关键字大小写,然后单击 格式化 SQL — 或保持自动运行打开以在您键入时进行格式化。使用 缩小 折叠空白以嵌入源代码或 URL 参数中。这 交换 按钮可让您在两种模式之间往返。
为什么方言很重要
SQL 是纸面上的标准,但每个数据库供应商都用自己的语法扩展它。选择正确的方言可确保解析器识别供应商特定的标记:PostgreSQL 的 ::type 演员表和 DISTINCT ON, MySQL 的反引号标识符和 ON DUPLICATE KEY UPDATE, BigQuery 的 STRUCT/ARRAY 文字、T-SQL TOP (n) 和 [bracketed] 标识符和 Oracle 的 CONNECT BY 和 WHEN MATCHED。如有疑问,请从 标准SQL 如果您看到解析错误,请切换到匹配的方言。
格式化与缩小
格式 (pretty-print) 添加换行符和缩进以使查询可审核 - 非常适合代码审查、迁移和文档。 缩小 将查询折叠为单个紧凑行,适合嵌入应用程序代码、日志行或 URL 参数中。单线 -- 注释在缩小过程中会被删除,因为它们会注释掉一行 SQL 中后面的所有内容。
隐私
没有上传任何内容。解析器和格式化程序完全在您的浏览器中运行,使用开源 sql-formatter 图书馆。生产查询、模式名称和硬编码值保留在您的计算机上 - 可以安全地与您永远不会粘贴到云服务中的敏感 SQL 一起使用。
常见问题解答
格式设置会改变我的查询的含义吗?
不会。格式化仅重写空格、缩进和可选的关键字大小写。逻辑查询——表、列、谓词、连接、子查询——被准确地保留。字符串文字和注释也保持不变。
为什么我的查询无法格式化?
解析器需要语法上有效的 SQL。常见原因:未闭合的引号或括号、方言不匹配(例如,在标准 SQL 下格式化 MySQL 反引号)或中间语句模板占位符,例如 {{var}}。尝试切换方言,或在格式化之前删除模板标记。
minify 会删除评论吗?
缩小 折叠空白和换行符。单线 -- 注释在单行 SQL 中会出现问题,因为它们会注释掉同一行中后面的所有内容,因此它们会被删除。阻止评论 /* … */ 通常会保留,但根据放置情况可能会被删除。在粘贴到代码中之前检查输出。
我可以格式化包含多个语句的文件吗?
是的。用分号分隔语句,每个语句都将独立格式化。这对于迁移脚本、种子文件和多语句存储过程体非常有效。
关键字应该大写还是小写?
这是一种风格偏好。大写关键字 (SELECT, FROM, WHERE)是传统约定,使查询更容易扫描,因为关键字从标识符中脱颖而出。小写字母在现代代码库中越来越流行。选择一个并将其一致地应用到您的项目中。