SQL 格式化
是什么:将 SQL 代码按规范排版,提高可读性和维护性。
为什么:让复杂的 SQL 查询结构清晰,便于团队协作和调试。
特点:
- 关键字统一大写
- 缩进对齐子句
- 逻辑分组明确
Python 示例
python
# 未格式化的 SQL
sql = "SELECT id,name,email FROM users WHERE status='active' AND created_at>'2024-01-01' ORDER BY created_at DESC LIMIT 10"
# 格式化后的 SQL
formatted_sql = """
SELECT
id,
name,
email
FROM
users
WHERE
status = 'active'
AND created_at > '2024-01-01'
ORDER BY
created_at DESC
LIMIT 10
"""
print(formatted_sql)
复杂查询格式化:
sql
SELECT
u.id,
u.name,
COUNT(o.id) AS order_count,
SUM(o.amount) AS total_amount
FROM
users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE
u.status = 'active'
AND u.created_at >= '2024-01-01'
GROUP BY
u.id,
u.name
HAVING
COUNT(o.id) > 5
ORDER BY
total_amount DESC
LIMIT 20
格式化规则
- 关键字大写:SELECT, FROM, WHERE, JOIN
- 每行一个字段:便于注释和排查
- 缩进对齐:子句内容统一缩进
- 逻辑分组:AND/OR 条件对齐排列
工具推荐:
- SQLFluff - Python SQL 格式化工具
- pgFormatter - PostgreSQL 专用
- 在线工具:https://www.nimail.cn/dev-tool/sql-format.html
一句话总结:SQL 格式化通过规范的缩进和换行,让复杂的查询语句变得清晰易读,提升开发和维护效率。