SQL 格式化器
【摘要】 作品简介:SQL 一键美化排版,关键字对齐子句断行括号缩进,字符串注释智能保护,可复制SQL 格式化器(SQL Beautifier)将杂乱的单行/多行 SQL 一键美化为规范排版(关键字对齐、子句换行、括号缩进)的轻量网页工具。纯 HTML/CSS/JavaScript 单文件实现,零依赖、零后端,词法解析与排版全部在浏览器本地完成。功能特性子句断行对齐:SELECT / FROM / W...

SQL 格式化器(SQL Beautifier)
将杂乱的单行/多行 SQL 一键美化为规范排版(关键字对齐、子句换行、括号缩进)的轻量网页工具。纯 HTML/CSS/JavaScript 单文件实现,零依赖、零后端,词法解析与排版全部在浏览器本地完成。
功能特性
- 子句断行对齐:
SELECT / FROM / WHERE / GROUP BY / HAVING / ORDER BY / LIMIT / VALUES / JOIN / ON / UNION / INSERT INTO / UPDATE / SET / DELETE FROM等主关键字独占行首
- 关键字大小写一键切换:大写(UPPER)/ 小写 / 保持原样三种模式
- 智能括号跟踪:子查询按括号深度缩进;
IN (1, 2, 3)列表与函数调用count(o.id)保持内联不拆分
- 逻辑层可视化:
AND / OR断行并缩进一档,WHERE 多条件层次清晰
- 字符串与注释保护:单引号字符串(含
''转义与N'…'/E'…'前缀)、--行注释、/* */块注释全程占位保护,内部逗号、关键字、括号原样保留
- 容错提示:字符串未闭合、括号不配对给出明确错误提示
- 语法高亮 + 行号:关键字 / 字符串 / 注释分色显示,结果一键复制
工作原理
输入 SQL 原文
│ ① 正则令牌流:跳过空白,识别字符串(占位保护)/注释/关键字/标识符/数字/符号
▼
令牌序列
│ ② 关键字三分:主关键字(断行大写) / AND·OR(断行加档) / IN·LIKE·AS…(行内大写)
│ ③ 括号判定:IN 与 VALUES 列表、函数调用 → 内联组;其余 → 子查询(深度+1)
▼
行流(主关键字断行 · 逗号换行 · 元组续组)
│ ④ 后验缩进:按子查询净括号数 + 非关键字行加档渲染
▼
高亮 / 行号 / 一键复制输出
核心词法只有一条流式正则与三类关键字集合,无第三方解析库;字符串与注释在排版前占位替换,保证其内容不被任何格式化规则触碰。
使用场景
- 代码审查与演示:把拷贝来的紧凑 SQL 展开成规范排版,便于讲解与评审
- 规范落地:统一团队 SQL 关键字大写与子句换行风格,直接复制进代码库
- 排错辅助:WHERE 多条件 / 多层子查询 / JOIN 链经断行缩进后层级一目了然
- 脚本整理:迁移脚本、建表语句、数据修复 SQL 批量美化
快速开始
无需安装与构建,直接用浏览器打开 index.html 即可使用,或在任意静态服务器下访问:
python3 -m http.server 8024
# 访问 http://localhost:8024/index.html
技术栈
- HTML5 + CSS3 + 原生 JavaScript(零第三方依赖)
- 词法:单条流式正则
/(\s+)|(--[^\n])|(\/\[\s\S]?\\/)|('(?:[^']|'')*')|(\w+)|([^\s])/gi
- 排版:主关键字集合 + 括号类型栈(内联组 / 子查询)+ 后验缩进渲染
- 剪贴板:
navigator.clipboard.writeText(含降级提示)
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)