你是不是也这样:要写个SQL,光查语法就得花半小时,好不容易写完了跑一跑,报一堆错。
现在有了AI,你只需要描述需求,SQL就出来了。
但很多人用AI写SQL有个问题:生成的SQL要么太慢,要么逻辑有坑。
今天教你怎么用AI写SQL,既要快,还要对。
一、AI写SQL,先给上下文
很多人直接用ChatGPT说"帮我查一下用户数据",结果出来的SQL完全不能用。
问题在哪?上下文不够。
AI不知道你的表结构,不知道字段含义,你让它怎么写?
正确做法:先把表结构贴给它。
表名:users
字段:id(int), name(varchar), email(varchar), created_at(datetime), status(int)
表名:orders
字段:id(int), user_id(int), amount(decimal), created_at(datetime), status(int)
用SQL帮我查出2026年每个用户的订单总数和总金额,按金额从高到低排序。
给完上下文,AI输出的SQL准确率从50%提升到90%以上。
二、常用场景和Prompt模板
下面5个场景,覆盖了80%的日常SQL需求。每个都给了可以直接用的prompt模板。
场景1:简单条件查询
需求: 查最近30天活跃的用户。
Prompt模板:
我有两张表:users(id, name, email, status, created_at)
orders(id, user_id, amount, created_at, status)
帮我写SQL:查询最近30天内有订单且状态为活跃的用户,返回用户姓名、邮箱、订单总数和总消费金额。
数据库是MySQL,created_at是datetime类型。
场景2:多表联查
需求: 查出每个部门的人数和平均薪资。
Prompt模板:
表employees:id, name, department_id, salary, hire_date
表departments:id, dept_name
帮我写SQL:查询每个部门的名称、人数和平均薪资,按人数从多到少排序。
要求用LEFT JOIN,避免遗漏没有员工的部门。
场景3:聚合统计
需求: 统计每天的新用户注册数。
Prompt模板:
表users:id, name, email, created_at(datetime)
帮我写SQL:统计过去30天每天的新用户注册数量。
返回格式:日期, 注册人数
按日期升序排列。
场景4:数据去重
需求: 找出重复的邮箱地址。
Prompt模板:
表users:id, name, email
帮我写SQL:找出所有重复的邮箱地址,返回邮箱和出现次数。
只展示出现超过1次的邮箱,按出现次数降序排列。
场景5:分页查询
需求: 查出订单列表,每页20条,第3页。
Prompt模板:
表orders:id, user_id, amount, created_at, status
帮我写SQL:查询订单列表,按创建时间倒序排列,每页20条,返回第3页的数据。
返回字段:订单ID、用户ID、金额、创建时间、状态
三、生成的SQL怎么用?
AI生成的SQL不能直接用,三步验证法:
第一步:看语法
把SQL贴到Navbox SQL格式化器,检查语法是否正确。语法错误一眼就能看出来。
第二步:跑EXPLAIN
如果是生产数据库,先跑 EXPLAIN + 你的SQL,看看执行计划:
- 有没有全表扫描
- 索引有没有用到
- JOIN的顺序是否合理
第三步:用小数据验证
别直接在生产库跑。先在一个测试库或者limit 10的条件下跑一下,看结果是否符合预期。
四、AI写SQL的3个常见坑
坑1:字段名对不上
AI生成的SQL经常用表里没有的字段名。
比如你表里是 user_id,AI写成了 userId。
解决方法: 上下文给足,直接告诉AI字段名。
坑2:性能灾难
AI生成的SQL经常写出不带索引的查询。
比如 WHERE YEAR(created_at) = 2026,这种写法走不了索引。
解决方法: 让AI在prompt里注明"请尽量使用能走索引的写法"。
坑3:逻辑漏洞
AI经常会漏掉条件。比如你要查"已支付"的订单,AI可能把"待支付"和"已退款"的也算进去了。
解决方法: 检查AI生成的SQL的WHERE条件,和你的需求逐条比对。
五、最佳实践总结
用AI写SQL,记住这5条:
- 给表结构:先贴CREATE TABLE或者字段列表,上下文越足,SQL越准
- 指定数据库类型:MySQL、PostgreSQL、SQLite语法有差异,告诉AI你用哪个
- 描述业务逻辑:别只说"查用户",要说清楚状态、时间范围、排序规则
- 要求解释:让AI解释生成的SQL,帮你发现逻辑问题
- 人工审查:AI生成的是初稿,不是终稿。重要查询一定要人工review
六、推荐工具
| 工具 | 用途 | 费用 |
|---|---|---|
| ChatGPT | 生成SQL + 解释 | 免费版够用 |
| Claude | 生成复杂SQL,解释清晰 | 免费版够用 |
| Navbox SQL格式化 | 格式化 + 验证SQL | 免费 |
| Navbox SQL到Excel | SQL结果转Excel | 免费 |
以后写SQL,别硬记语法了。把需求描述清楚,让AI帮你生成,你来做审查和验证。
效率上来了,剩下的时间,可以摸会儿鱼。