整理杂乱SQL代码为规范格式,提升可读性
工具用的顺手吗?
你的反馈能帮助我们做得更好
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
一条挤在单行里的查询,可以被拆成SELECT、FROM、JOIN、WHERE、ORDER BY、LIMIT等更易阅读的层次。页面主要调整空白、缩进、换行和SQL关键字大小写,并给输入、输出分别统计字符数与行数。它不会连接数据库、执行语句、读取表结构,也不会根据业务目标改写JOIN条件或WHERE逻辑。
输出仍是文本SQL,可复制,也可下载为formatted.sql。输入或选项改变后,右侧会重新生成结果;空输入不会产生输出。若解析失败,输出区会显示错误,原始输入仍留在左侧供修改。
| 设置 | 可选值 | 影响 |
|---|---|---|
| SQL方言 | Standard SQL、MySQL、PostgreSQL、MariaDB、SQLite | 决定哪些关键字、引号和语法结构按该数据库口径识别 |
| 缩进大小 | 2、4、8 | 控制每层使用的空格数;默认2 |
| 缩进类型 | 空格、Tab | 决定缩进字符;默认空格 |
| 关键字大小写 | Upper、Lower、Preserve | 把识别出的关键字转为大写、小写或尽量保留;默认大写 |
“关键字大小写”针对被识别为SQL关键字的词,不等于把整段文本统一改成大写或小写。字符串字面量、带引号标识符和普通标识符有各自的数据库规则。
不同数据库对引用符和扩展语法的解释并不完全一致。例如MySQL通常用反引号引用标识符,而PostgreSQL用双引号创建带界限的标识符;PostgreSQL未加引号的名称会折叠为小写,SQL标准口径则不同。包含反引号、双冒号类型转换、美元引号、特定函数或过程语法时,错误方言可能造成不理想的断行,甚至无法解析。
指南
按步骤完成操作,并通过示例核对输入与结果。
先从“语言/方言”选择SQL实际运行的数据库。若语句只使用通用SELECT、JOIN、WHERE等结构,可先选Standard SQL。
把语句放入左侧输入区;也可载入页面示例观察排版。结果会在右侧生成,不需要单独提交。
按代码规范选择2、4或8格缩进,决定使用空格还是Tab,并将关键字设为Upper、Lower或Preserve。
重点核对字符串、注释、带引号表名/列名、参数占位符、存储过程和数据库专属语法。格式美观不代表语法或业务逻辑已通过验证。
确认结果后复制文本,或下载formatted.sql。正式执行前仍应在目标数据库的测试环境完成语法检查。
默认选Standard SQL、2个空格、空格缩进、关键字大写,输入:
SELECT users.id,users.name,orders.total FROM users INNER JOIN orders ON users.id=orders.user_id WHERE orders.status="completed" ORDER BY orders.created_at DESC LIMIT 10;右侧会把字段列表和主要子句分行,并在INNER JOIN、WHERE、ORDER BY与LIMIT处形成层次。把缩进改为4只改变层级宽度;把关键字改为Lower会输出select、from等小写关键字,不应改变字段名和字符串内容。这个例子适合核对排版选项,但其中双引号字符串是否适用于目标数据库仍取决于方言与数据库模式。
场景
查看这项工具在不同工作与生活流程中的用法。
把ORM日志或压成一行的查询整理后再比对,审查者更容易定位JOIN条件、过滤条件和排序规则。团队应先约定方言、缩进和关键字大小写。
格式化多层子查询或长字段列表,便于标注候选索引与过滤路径;性能结论仍需结合执行计划,排版本身不会优化查询。
教师或学习者可把单行语句与格式化结果并排比较,观察SELECT列表、表连接和筛选子句的层次。
问答
集中解答高频疑问与容易混淆的问题。
当前方言列表没有这三项。可尝试Standard SQL阅读基础结构,但数据库专属关键字、引号和过程语法不保证得到正确排版,应改用对应方言的专门校验环境复核。
Preserve只针对关键字大小写倾向,换行、空格和缩进仍由格式化规则重新组织。若需要逐字符保持原样,就不应运行格式化。
不能。格式化器只负责解析与排版,不知道真实表名、列类型、权限、数据约束或业务条件;目标数据库才是最终语法与语义依据。
先选正确方言,再缩小到可独立解析的语句段,检查引号、注释与语句分隔符。若片段依赖数据库专属过程语言,保留原代码并交给相应数据库工具验证。
须知
使用前了解适用范围、结果限制与必要提醒。
格式化结果不能替代数据库解析、执行计划检查、事务审查或代码评审。尤其是UPDATE、DELETE、DROP、ALTER等语句,不应因排版成功就直接在生产库运行。
推荐
查找相关工具、专题与可用的 API 能力。