按来源选择方言
MySQL、PostgreSQL、SQLite、SQL Server 与 Oracle 的引用规则不同。选择 PostgreSQL 不会把 MySQL 查询转换成另一种方言,只会改变本次操作采用的语法规则。
数据库与 SQL 工具
看清查询层次,保留原始内容
内容仅在浏览器本地处理,不连接数据库,也不保存历史。
输入 SQL 或选择示例。
SQL 格式化适合检查日志里挤成一行的查询,也适合提交代码前统一排版。先选择生成这段语句的数据库方言;看起来类似的引号,在不同数据库中可能有不同含义。
SQL 美化突出连接与子查询层次,SQL 压缩减少词法单元以外的空白。使用 SQL 在线格式化时,应把可读性检查与数据库验证分开,不能仅凭排版成功就认定语句可执行。
SQL 格式化会展开子句并统一缩进,同时核对字符串、数字写法与注释是否保留。遇到无法确认内容一致的改写时会拒绝输出,避免把异常结果复制回代码。
语法树模式使用独立解析器处理四种方言的受支持语法。Oracle 可以排版,但不提供语法树;结构树展示解析器如何理解语句,并不是数据库执行计划。
MySQL、PostgreSQL、SQLite、SQL Server 与 Oracle 的引用规则不同。选择 PostgreSQL 不会把 MySQL 查询转换成另一种方言,只会改变本次操作采用的语法规则。
格式化用于阅读,压缩用于减少空白,AST 输出结构化 JSON。缩进与大小写用于排版;语法树对数字和输入复杂度有更严格的限制。
自动处理等待约 350 毫秒;关闭后用按钮或 Ctrl/Cmd+Enter 执行。使用结果会先预览替换内容,应用后可撤销,连同之前的参数和结果一起恢复。
使用 sql-formatter,可选两个空格、四个空格或制表符,以及关键字大写、小写或保持原样。配置保持标识符、函数名和数据类型的大小写。 仅调整结构关键字;ACTION、NO 等上下文词保持源拼写,以保护标识符。
减少词法单元外的空白,不删除行注释、块注释及执行提示。PostgreSQL 相邻字符串依赖的换行也会保留,因此紧凑结果未必只有一行。
node-sql-parser 解析其支持的 MySQL、PostgreSQL、SQLite 和 Transact-SQL 子集。JSON 导出只包含当前语法树,不混入编辑器历史或此前输入。
先固定方言与缩进,让连接、条件和子查询便于阅读。这款 SQL 格式化工具将排版与语法树检查分开;修改后的查询仍应结合实际数据库进行审查。
大写能够突出子句,但它是风格约定。团队习惯小写时可以选择小写,也可以保持原样;这项设置不用于改写字符串或带引号的标识符。
选择压缩模式即可减少外部空白,同时保留注释和词法内容。行注释后以及 PostgreSQL 相邻字符串之间必要的换行不会删除,因而不会为了单行而强行丢弃内容。
AST 模式能够报告解析器是否接受这段语法,但无法检查真实表、列类型、权限或服务器行为。只得到格式化结果时,能够确认的更少:那只是排版操作。
例如 psql 的反斜杠命令属于客户端指令,不属于普通 SQL 语法。请单独取出要排版的查询,并另外保留原始脚本;本工具不会解释这些指令。
发现排版问题?