适用场景

知道要查什么数据但写不出 SQL,或者写出来了但不确定对不对。

模板正文

1
2
3
4
5
6
7
8
9
10
11
12
13
14
请根据以下信息生成 SQL 查询。

数据库类型:【MySQL / PostgreSQL / SQLite / 其他】
表结构(粘贴 CREATE TABLE 或描述字段):
【粘贴表结构】

需求描述(用自然语言说清楚你要查什么):
【比如"查每个用户的订单总数和总金额,按总金额降序排列,只要前 10 名"】

输出要求:
1. 写出完整的 SQL 语句
2. 附上每段的注释说明
3. 如果有多种写法,给出推荐的那个并解释为什么
4. 标注可能的性能问题和优化建议

使用示例

输入:

1
2
3
4
5
6
7
数据库:MySQL

表结构:
- users: id, name, email, created_at
- orders: id, user_id, amount, status, created_at

需求:查最近 30 天每个用户的订单数和总消费金额,只看消费超过 500 元的用户,按金额降序

输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT 
u.id,
u.name,
COUNT(o.id) AS order_count, -- 订单数
SUM(o.amount) AS total_amount -- 总金额
FROM users u
JOIN orders o ON u.id = o.user_id
WHERE o.created_at >= DATE_SUB(CURDATE(), INTERVAL 30 DAY) -- 最近30天
GROUP BY u.id, u.name
HAVING SUM(o.amount) > 500 -- 消费超500
ORDER BY total_amount DESC; -- 按金额降序

-- 性能建议:
-- 1. orders 表的 (user_id, created_at) 建联合索引
-- 2. 如果数据量大,考虑用子查询先过滤再 JOIN

小提示

  • 先用自然语言说清楚需求,比直接写 SQL 效率高
  • 复杂查询先拆成简单查询,再组合
  • 生产环境跑 SQL 前先用 EXPLAIN 看执行计划
avatar
nmdft
25+ Prompt 模板、4 个 Agent Skills、4 套自动化流程、工具推荐——帮你用 AI 建立一个人的公司
Follow Me
公告
This is my Blog
最新文章
网站信息
文章数目 :
0
本站访客数 :
本站总浏览量 :
最后更新时间 :