🗄 SQL格式化
SQL美化 · 关键字高亮 · 格式压缩
SQL美化 · 关键字高亮 · 格式压缩
本工具兼容MySQL、PostgreSQL、SQLite等主流SQL语法,支持SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER等所有常用SQL语句。
不会。格式化只调整缩进、换行和空白,不影响SQL语句的语义和执行结果。关键字会自动转为大写以增强可读性。
格式化让复杂SQL更易读、便于排查和审查;压缩能去掉注释和多余空白,减小日志文件体积,常用于把SQL写进配置文件或一行命令。
格式化会把关键字统一转为大写、规范缩进和对齐。这只是展示层面的调整,表名、列名、字符串值、注释内容都不会被改变。
没有。SQL关键字不区分大小写,SELECT 和 select 执行结果完全一样。格式化转大写只是为了让代码看起来更规范统一。
不会。-- 行注释和 /* */ 块注释都会被保留。只有在「压缩」模式下,注释才会被移除,这也是压缩减小体积的主要手段之一。
纯前端处理,速度取决于浏览器性能。一般几千行的SQL格式化都在毫秒级完成,不会明显卡顿。
可以。BEGIN/END、DECLARE、CURSOR、IF、LOOP 等过程化语句的关键字本工具都支持识别,能对存储过程、触发器、函数做基本的缩进美化。
SQL语句可以按功能分为查询、数据操作、数据定义、数据控制等几大类。每一类都有对应的核心关键字,格式化时这些关键字会被突出高亮。
| 类别 | 作用 | 核心关键字 |
|---|---|---|
| DQL 查询 | 检索数据 | SELECT FROM WHERE GROUP BY HAVING ORDER BY LIMIT |
| DML 操作 | 增删改数据 | INSERT UPDATE DELETE |
| DDL 定义 | 建表改表 | CREATE ALTER DROP TABLE INDEX |
| DCL 控制 | 权限管理 | GRANT REVOKE |
| TCL 事务 | 事务控制 | BEGIN COMMIT ROLLBACK |
团队协作时建议统一格式化规范,避免每个人格式不同导致diff混乱。
在分析慢查询、加索引、改写执行计划之前,第一步永远是「看懂这条SQL在干什么」。一坨挤在一起的SQL很难分析,格式化后能快速定位扫描了哪些表、关联和过滤条件是什么。
压缩会移除注释,如果注释里有重要的说明信息,建议先备份原SQL。另外字符串内的空白和换行不会被压缩,因为那属于数据内容,不能动。
| 函数 | 作用 | 说明 |
|---|---|---|
| COUNT(*) | 统计行数 | 统计结果集总行数 |
| SUM(列) | 求和 | 对数值列求和 |
| AVG(列) | 平均值 | 对数值列求平均 |
| MAX(列) | 最大值 | 取该列最大值 |
| MIN(列) | 最小值 | 取该列最小值 |
| GROUP_CONCAT(列) | 行转列拼接 | 把多行拼成字符串 |
| DISTINCT | 去重 | 配合COUNT统计去重数量 |
| 功能 | MySQL | PostgreSQL |
|---|---|---|
| 当前时间 | NOW() | NOW() |
| 字符串拼接 | CONCAT(a,b) | a || b 或 CONCAT(a,b) |
| 取子串 | SUBSTR(s,1,3) | SUBSTRING(s,1,3) |
| 空值替换 | IFNULL(x,0) | COALESCE(x,0) |
| 截断小数 | TRUNCATE(x,2) | ROUND(x,2) |
| 行号窗口 | ROW_NUMBER() OVER(...) | ROW_NUMBER() OVER(...) |
| 类型转换 | CAST(x AS INT) | CAST(x AS INTEGER) |
1. 粘贴SQL语句。
2. 点击"格式化"按钮美化排版。
3. 点击"压缩"按钮压缩为单行。