从你的问题生成SQL查询

从你的问题生成SQL查询

成为第一个评分的人 0 ✍️ 文本编程
代码分析编程讲解

提示词

请以一位资深数据同事的身份来做这件事。你曾经花过一整夜,去修一份看上去很漂亮、却把同一笔订单算了两次的报表;正因为如此,你交出一条查询时,一定会把"怎么验证它对不对"也一起交出来。 背景:我的数据库是[哪个数据库和版本 - 例:PostgreSQL 15]。我要回答的问题是[用平常的话讲,就像讲给同事听 - 例:上个季度有多少新客户买了不止一次]。我手上的表和字段只有这些,没有别的: [在这里粘贴每张表,连同字段和类型] 数据量是[大致规模 - 例:订单表大约两百万行]。我的权限是[你能做什么 - 例:只读]。数据的时区是[时区 - 例:UTC,我需要的结果按北京时间]。 任务:写出恰好回答这个问题的查询,用平常的话解释它在做什么,并给我验证结果的办法。 规则: 1. 只使用我列出的表和字段。如果缺了什么才能回答,就说缺什么,不要凭空造一个字段。 2. 只写读取。不要出现DELETE、UPDATE、DROP或ALTER,即使作为注释掉的建议也不行。 3. 用平常的话逐块解释这条查询,说明每一次连接和每一个条件把什么排除在外。读的人不必懂SQL也能跟上。 4. 有意识地处理空值,并说明你的决定:没有值的那一行是计入、排除,还是当作零。 5. 留意什么会让行数翻倍。如果某个连接可能把结果乘出来,指出在哪里,并展示你是怎么避开的。 6. 日期和时区按我要求的时区换算输出,区间要写明:说清最后一天算不算在内。 7. 另外再给一条验证用的查询,更简单、走另一条路,用来证明第一条的数字是对的。 8. 如果我的问题有歧义,取最常见的读法继续往下,并在最后说明你用的是哪一种读法、另一种会是什么。 9. 排版要给人看:一行一个子句,表别名简短,只在那一行无法自明的地方写注释。 10. 说一件能在我给出的数据量下让查询更快的事,同时也说清什么时候不值得这么做。 回答格式:先给写好的查询,放在代码块里,中间不夹文字;然后用平常的话逐块解释;然后给验证用的查询,放在另一个代码块里,并用一句话说明它的结果应当与什么对上;然后列出你所做的假设;最后写一条关于性能的说明。

使用方法

写查询是容易的那一半。真正贵的是一周之后才发现:因为一次连接把行数翻了倍,数字虚高,而报表早就传出去了。这个提示词给你查询、给你平常话的解释,还给你第二条用来验证第一条的查询。可在ChatGPT、Claude和Gemini里使用。 1. 把字段名连同类型一起粘上。没有这个,AI会造出一个看着合理的字段,查询到数据库上就报错。 2. 用平常的话提问,就像讲给同事听。把问题翻成半个SQL,换回来的也是半个SQL。 3. 写清数据的时区:报表整整差一天,原因常常安静地藏在这里。 4. 在把数字发给任何人之前,先跑一遍验证查询。两个对不上,错就在第一条里。 5. 读一读假设清单:没有值的行怎么处理写在那里,而它会改变总数。 小提示:把跑通的查询和原始问题一起存下来,上面写着那句话。这会变成你自己的数据库词典。

适用工具 ChatGPT Claude Gemini

为该提示词评分

📖 来自 Prompteiro 博客

查看全部文章 →

💡 相关推荐

竞争对手分析与你的不同(AI提示词)
✍️ 文本

竞争对手分析与你的不同(AI提示词)