用 ChatGPT 写 SQL:描述表结构生成查询、解释报错和优化慢查询,先在测试库跑再上线(2026
结论先说
ChatGPT 不会连你的数据库。 官方数据分析页写明,数据分析用的环境不能发起外部网络请求或 API 调用。它只能根据你贴的表结构写语句,不能替你执行、也看不到你的真实数据。
必须说清数据库类型和版本。 MySQL、PostgreSQL、SQL Server、SQLite 的日期函数、分页、字符串处理都不同。写错数据库,语句经常跑不了。
只贴表结构,不贴真实数据。 表名、列名、类型、主外键足够;客户姓名、手机号等敏感数据别发。需要示例就自己编几行假数据。
查询类先在测试库跑;增删改要先备份。 UPDATE、DELETE、DROP 一律先改成 SELECT 看影响范围,再决定执行。
结果要自己核对。 官方提示指南建议重要工作让它再检查一遍,然后自己审阅。
图:本站根据 OpenAI 帮助中心:Data analysis with ChatGPT 整理的示意图
一、4 段可以直接复制的提示词
1. 描述表结构,生成查询
数据库:[PostgreSQL 15]。表结构如下:
orders(id bigint 主键, user_id bigint, amount numeric, status text, created_at timestamp)
users(id bigint 主键, city text, registered_at timestamp)
需求:统计 [2026 年 10 月] 每个城市已支付(status = 'paid')订单的数量、总金额和客单价,按总金额从高到低,只取前 10 个城市。
请给出 SQL,并用 3 句话解释每一步在做什么。说明你对字段含义做了哪些假设。
2. 解释报错并修正
我在 [MySQL 8.0] 里运行下面的 SQL,报错:[粘贴完整报错]。
SQL:[粘贴]
表结构:[粘贴]
请先解释报错的原因,再给修正后的 SQL,并指出这类错误以后怎么避免。如果还需要我提供信息才能确定原因,先问我。
3. 优化慢查询
这条 [PostgreSQL] 查询很慢:[粘贴 SQL]。EXPLAIN (ANALYZE) 的输出:[粘贴]。表大约 [500 万] 行,现有索引:[粘贴]。
请指出最可能的瓶颈,给出 2 到 3 个优化方案,并说明每个方案的代价(比如多占空间、写入变慢)。不要直接让我删索引或改表,先给我评估方法。
4. 解释别人写的 SQL
请用通俗中文逐段解释下面这段 SQL,说明它在业务上算的是什么,并指出:有没有可能重复计数、空值处理不当、时区或日期边界的问题。
[粘贴]
提示词的通用写法见 /guides/how-to-write-prompts。代码块的复制和编辑方式,见官方《Working with writing blocks and code blocks in ChatGPT》。
二、自己必须核对什么
图:本站根据 OpenAI Academy:Prompting 整理的示意图
语法是否匹配你的数据库:不确定的函数,查对应数据库官方文档;
字段和表名:它可能用你没提供的列名,运行前逐个对照;
业务口径:“已支付”“活跃用户”怎么定义,它只能按你写的猜;
重复和空值:联表后行数是否被放大,NULL 是否被误排除;
增删改:先写成 SELECT 看行数,再在测试库执行,生产库操作前备份并在事务里验证;
性能:大表上的查询先看执行计划,别在业务高峰跑;
权限和数据安全:不要把账号密码、真实用户数据贴进对话,见 /guides/ai-privacy-data-safety-checklist。
常见问题
Q:能直接上传 CSV 让它查吗?
可以。官方数据分析功能支持 CSV 等表格文件,它会用 Python 处理,见 /guides/chatgpt-excel-data-analysis;这和对真实数据库跑 SQL 是两回事。
Q:它写的 SQL 在我这里跑出来结果不对?
把你期望的结果、实际结果、几行样例数据一起贴回去,让它排查口径和关联条件,比只说“不对”有效。
Q:免费版够用吗?
写和解释 SQL 免费账号能做;长对话和反复调试会遇到使用限制,需要更多额度可以看看 /chongzhi/chatgpt-plus。
参考资料
OpenAI Academy:Prompting — https://openai.com/academy/prompting/
OpenAI 帮助中心:Data analysis with ChatGPT — https://help.openai.com/en/articles/8437071-data-analysis-with-chatgpt
OpenAI 帮助中心:Working with writing blocks and code blocks in ChatGPT — https://help.openai.com/en/articles/20001246-working-with-writing-blocks-and-code-blocks-in-chatgpt
OpenAI 帮助中心:Uploading files and audio to ChatGPT — https://help.openai.com/en/articles/8555545-file-uploads-faq