跳到正文
MyDSH我的 DSH 实战笔记
English
独立维护,非DeepSeek官方;与mydsh.dev等其他MyDSH站点无关联。

全部分类/数据与分析

难度 进阶 · SQL 取数 数据库

自然语言转 SQL:先给表结构

手上有一堆表,想把业务问题翻译成查询,又怕它编字段名。

提示词

把下面这个问题写成 SQL。

问题:{{问题}}
数据库:{{数据库类型}}

表结构(只贴相关的表和字段,含类型):
{{表结构}}

要求:
1. 先列出你用到哪些字段、分别来自哪张表,以及你怎么理解表之间的关系(一对多还是多对多)。推断的关系要标注「推断,需确认」。
2. 给 SQL,只用上面出现过的字段名,一个都不能编。缺字段就停下来问我要。
3. 说明聚合口径:去重了吗、空值怎么处理、时间范围边界是开区间还是闭区间。
4. 给一版「先看 20 行」的抽样查询,用来验证明细对不对。

开工前要交代清楚的信息

这几项没交代,模型就会自己假设一个填进去——大多数「答得不对」都是从这里开始的。

  • {{问题}}:用业务语言写,别先翻译成SQL
  • {{数据库类型}}:MySQL / PostgreSQL / SQLite,方言差别很大
  • {{表结构}}:CREATE TABLE原文最省事

必须逐项过一遍

这一行活最容易漏的地方。已经写进提示词了,不用你再记。

  • 「不许编字段」必须明确写,否则它会补一个看起来合理的列名。
  • 抽样查询是验算的抓手,别省这一步。