SQL 格式化
SQL 语句格式化和美化工具
SQL 格式化工具
SQL 格式化工具可以将压缩或混乱的 SQL 语句转换为格式规范、易于阅读的形式。支持自动缩进、换行、关键字大写等功能,同时提供 SQL 压缩功能,适用于各种数据库系统。
✨ 主要特性
- 🎯 智能格式化:自动添加适当的缩进和换行
- 🔤 关键字大写:SQL 关键字自动转换为大写
- 📦 压缩功能:移除多余空格,压缩 SQL 语句
- 🗄️ 多数据库支持:兼容 MySQL、PostgreSQL、Oracle、SQL Server
- 📋 一键复制:格式化结果可直接复制使用
📖 使用示例
格式化示例
输入:
SELECT u.id,u.name,u.email FROM users u WHERE u.status='active' ORDER BY u.created_at DESC;
输出:
SELECT
u.id,
u.name,
u.email
FROM
users u
WHERE
u.status = 'active'
ORDER BY
u.created_at DESC;
复杂查询格式化
输入:
SELECT u.id,u.name,p.title,COUNT(c.id) as comment_count FROM users u LEFT JOIN posts p ON u.id=p.user_id LEFT JOIN comments c ON p.id=c.post_id WHERE u.status='active' AND p.published_at IS NOT NULL GROUP BY u.id,p.id HAVING COUNT(c.id)>5 ORDER BY comment_count DESC LIMIT 10;
输出:
SELECT
u.id,
u.name,
p.title,
COUNT(c.id) AS comment_count
FROM
users u
LEFT JOIN posts p ON u.id = p.user_id
LEFT JOIN comments c ON p.id = c.post_id
WHERE
u.status = 'active'
AND p.published_at IS NOT NULL
GROUP BY
u.id,
p.id
HAVING
COUNT(c.id) > 5
ORDER BY
comment_count DESC
LIMIT
10;
🎯 应用场景
1. 代码审查
在代码审查过程中,格式化 SQL 语句提高可读性:
-- 格式化前(难以阅读)
SELECT u.id,u.name,u.email,p.title FROM users u LEFT JOIN posts p ON u.id=p.user_id WHERE u.status='active';
-- 格式化后(清晰易读)
SELECT
u.id,
u.name,
u.email,
p.title
FROM
users u
LEFT JOIN posts p ON u.id = p.user_id
WHERE
u.status = 'active';
2. 文档编写
在技术文档中展示格式规范的 SQL 示例:
-- 用户数据查询示例
SELECT
u.id AS user_id,
u.username,
u.email,
u.created_at,
COUNT(p.id) AS post_count
FROM
users u
LEFT JOIN posts p ON u.id = p.author_id
WHERE
u.status = 'active'
AND u.email_verified = 1
GROUP BY
u.id
ORDER BY
u.created_at DESC;
3. 性能优化
格式化复杂查询,便于分析和优化:
-- 优化前的复杂查询
SELECT
o.id,
o.order_number,
u.username,
SUM(oi.quantity * oi.price) AS total_amount
FROM
orders o
INNER JOIN users u ON o.user_id = u.id
INNER JOIN order_items oi ON o.id = oi.order_id
INNER JOIN products p ON oi.product_id = p.id
WHERE
o.created_at >= '2024-01-01'
AND o.status = 'completed'
AND p.category_id IN (1, 2, 3)
GROUP BY
o.id,
o.order_number,
u.username
HAVING
SUM(oi.quantity * oi.price) > 100
ORDER BY
total_amount DESC;
4. 数据库迁移
整理和格式化迁移脚本中的 SQL 语句:
-- 创建用户表
CREATE TABLE users (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
-- 创建索引
CREATE INDEX idx_users_email ON users (email);
CREATE INDEX idx_users_created_at ON users (created_at);
🔧 技术细节
格式化规则
SQL 格式化遵循以下规则:
关键字处理:
- SELECT、FROM、WHERE、ORDER BY 等关键字大写
- 每个主要子句独占一行
- 子查询适当缩进
字段和表名:
- 多个字段时每个字段一行
- 表别名保持原样
- 长字段名自动换行
条件语句:
- AND、OR 操作符前换行
- 复杂条件适当分组
- 括号内容保持对齐
JOIN 语句:
- 每个 JOIN 独占一行
- ON 条件适当缩进
- 多个 JOIN 条件垂直对齐
支持的语法
工具支持标准 SQL 语法和主流数据库扩展:
基础语句:
- SELECT、INSERT、UPDATE、DELETE
- CREATE、ALTER、DROP
- GRANT、REVOKE
高级特性:
- 子查询和 CTE(公用表表达式)
- 窗口函数和分析函数
- 存储过程和函数调用
- 触发器和视图定义
数据库兼容性:
- MySQL 5.7+ / 8.0+
- PostgreSQL 9.6+
- Oracle 11g+
- SQL Server 2012+
- SQLite 3.x
💡 使用技巧
- 批量处理:可以同时格式化多个 SQL 语句,用分号分隔
- 保留注释:格式化过程会保留 SQL 注释内容
- 自定义缩进:工具使用 2 个空格作为缩进单位
- 压缩功能:需要压缩 SQL 时使用压缩按钮,适合生产环境
⚠️ 注意事项
- 语法检查:工具主要用于格式化,不提供完整的语法验证
- 数据安全:格式化过程在浏览器本地进行,不会上传数据
- 复杂语句:极其复杂的 SQL 可能需要手动调整格式
- 方言差异:某些数据库特有语法可能格式化效果不佳
🚀 开始使用
- 在上方输入框中输入要处理的内容
- 点击相应的操作按钮
- 查看处理结果
- 复制或下载结果
提示:工具支持多种数据格式,请确保输入内容格式正确。