用 AI 写 SQL 和数据分析查询
更新 2026-10-11 15 分钟 难度 ★☆☆☆☆作者 Skills 编辑部
相关搜索
这篇用到的 skill(3)
主力。MySQL 实践模式,写出正确可跑的查询。
npx skills add affaan-m/ECC -gPostgreSQL 实践模式,覆盖 PG 特有写法。
npx skills add affaan-m/ECC -g数据库迁移,建表/改表也交给 AI 更稳。
npx skills add affaan-m/ECC -g
AI 写 SQL 最怕"跑通了但口径错"——结果看着像那么回事,其实聚合维度错了。让 AI 写查询的核心是:给它表结构和明确口径(按天/按用户、是否去重、是否排退款),让它先解释再出语句,而不是只丢一句"统计一下销量"。
这篇适合谁 / 不适合谁
适合:
- 不会写复杂 SQL 但要做分析
- 有表结构要 AI 生成查询
- 要建/改表(迁移)也想要 AI 帮忙
不适合:
- 生产库直接让 AI 跑危险语句(先审再跑)
- 不交代口径就怪结果错(你定口径)
- 要实时毫秒级查询(那是索引/架构问题)
开始前准备什么
- 表结构:相关表的字段与类型。
- 口径:维度、是否去重、过滤条件。
- (可选)样本数据:帮 AI 对齐预期。
操作步骤
1. 装 skill
mysql-patterns 是 MySQL 实践技能包,复制目录到客户端技能目录(与一般 Agent Skill 装法一致):
| 客户端 | 目录 |
|---|---|
| Claude Code | ~/.claude/skills/ |
| Codex | ~/.codex/skills/ |
| Cursor | ~/.cursor/skills/ |
| Trae | ~/.trae/skills/ |
| CodeBuddy | ~/.codebuddy/skills/ |
| 通义灵码 | ~/.lingma/skills/ |
2. 给结构,定口径
text
基于 orders(user_id, amount, status, created_at) 和 order_items,
写"近 30 天付费用户数(去重) + 总 GMV( status='paid',排除 refund)"的 SQL。
先用一句话说明聚合口径,再给语句,标出每个字段含义。3. PG 用 postgres-patterns
PostgreSQL 有特有写法(如 ILIKE、窗口函数),用 postgres-patterns 避坑。
4. 建表/迁移用 database-migrations
要加表或改结构,让 AI 出迁移脚本并带回滚:
text
给 users 加 last_login_at 字段,写迁移 SQL 并附回滚语句,注释说明影响。会踩的坑
| 坑 | 现象 | 怎么绕 |
|---|---|---|
| 口径错 | 数对不上 | 先写口径再出语句 |
| 不去重 | 用户数虚高 | 明确 count(distinct) |
| 生产直跑 | 误删/锁表 | 先审再跑,危险操作加确认 |
| PG/MySQL 混 | 语法报错 | 指定引擎用对应 patterns |
| 无回滚 | 改错难恢复 | 迁移带 rollback |
FAQ
不会 SQL 能分析吗?
能,给表结构和口径让 AI 写;你核对结果。
口径怎么定?
维度(按天/用户)、是否去重、过滤条件,先说清再跑。
生产库能直接跑吗?
不建议,先审语句,危险操作手动确认。
MySQL 和 PG 写法一样吗?
不完全,指定引擎用对应 patterns 避坑。
迁移要回滚吗?
要,AI 出迁移时一并要回滚语句。
相关指南
顺着这些场景接着看:
相关源码
- affaan-m/ECC · mysql-patterns 源码
- affaan-m/ECC · postgres-patterns 源码
- affaan-m/ECC · database-migrations 源码
- Agent Skill 开放格式规范
一句话结论
结论:AI 写 SQL 先给表结构和口径再出语句,生产库先审再跑、迁移带回滚。