[{"data":1,"prerenderedAt":273},["ShallowReactive",2],{"header-counts":3,"footer-counts":6,"prompt-sql-generation":9},{"tools":4,"reviews":5},65,7,{"tools":4,"reviews":5,"playbooks":7,"news":8},10,8,{"id":10,"title":11,"body":12,"description":257,"extension":258,"meta":259,"navigation":260,"path":261,"seo":262,"stem":263,"tags":264,"targetTools":267,"__hash__":272},"prompts\u002Fprompts\u002Fsql-generation.md","SQL 查询生成 Prompt：从自然语言到优化 SQL",{"type":13,"value":14,"toc":247},"minimark",[15,19,23,27,38,41,52,58,62,72,76,221,224,232,235,243],[16,17,18],"h2",{"id":18},"用法",[20,21,22],"p",{},"把表结构（DDL）和你的需求描述粘进来，AI 会生成带注释的 SQL + 性能建议。",[16,24,26],{"id":25},"prompt","Prompt",[28,29,35],"pre",{"className":30,"code":32,"language":33,"meta":34},[31],"language-text","你是一个资深 DBA。请根据以下表结构，把我描述的需求转成 SQL 查询。\n\n## 表结构\n\n{{粘贴你的 CREATE TABLE 语句，或表名+字段说明}}\n\n## 需求\n\n{{用自然语言描述你要查什么，比如\"查上个月销售额前十的用户\"}}\n\n## 要求\n\n1. 生成标准 SQL（MySQL \u002F PostgreSQL，说明你选了哪个方言）\n2. 所有字段名用反引号包裹\n3. 每个关键步骤加注释说明逻辑\n4. 如果需要 JOIN，说明为什么选这种 JOIN 类型\n5. 如果查询可能慢，给出索引建议\n6. 如果需求有歧义，先列出你的假设，再给 SQL\n\n## 输出格式\n\n### 假设（如果有歧义）\n- 假设 1：...\n- 假设 2：...\n\n### SQL\n```sql\n-- 你的 SQL\n```\n\n### 索引建议（如果需要）\n- `CREATE INDEX idx_xxx ON table(column)` — 理由\n\n### 性能说明\n- 预估扫描行数：...\n- 是否走索引：...\n","text","",[36,37,32],"code",{"__ignoreMap":34},[16,39,40],{"id":40},"示例对话",[20,42,43,47,48,51],{},[44,45,46],"strong",{},"输入","：\n表结构：",[36,49,50],{},"orders(id, user_id, amount, created_at, status)","\n需求：查上个月每个用户的总消费，取前 10 名",[20,53,54,57],{},[44,55,56],{},"输出","：",[59,60,61],"h3",{"id":61},"假设",[63,64,65,69],"ul",{},[66,67,68],"li",{},"\"上个月\"指自然月（非最近 30 天）",[66,70,71],{},"只统计已支付订单（status = 'paid'）",[59,73,75],{"id":74},"sql","SQL",[28,77,80],{"className":78,"code":79,"language":74,"meta":34,"style":34},"language-sql shiki shiki-themes github-light github-dark","SELECT\n  user_id,\n  SUM(amount) AS total_spent\nFROM `orders`\nWHERE `status` = 'paid'\n  AND `created_at` >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01')\n  AND `created_at` \u003C DATE_FORMAT(CURDATE(), '%Y-%m-01')\nGROUP BY `user_id`\nORDER BY `total_spent` DESC\nLIMIT 10;\n",[36,81,82,91,98,114,124,139,172,190,198,210],{"__ignoreMap":34},[83,84,87],"span",{"class":85,"line":86},"line",1,[83,88,90],{"class":89},"szBVR","SELECT\n",[83,92,94],{"class":85,"line":93},2,[83,95,97],{"class":96},"sVt8B","  user_id,\n",[83,99,101,105,108,111],{"class":85,"line":100},3,[83,102,104],{"class":103},"sj4cs","  SUM",[83,106,107],{"class":96},"(amount) ",[83,109,110],{"class":89},"AS",[83,112,113],{"class":96}," total_spent\n",[83,115,117,120],{"class":85,"line":116},4,[83,118,119],{"class":89},"FROM",[83,121,123],{"class":122},"sZZnC"," `orders`\n",[83,125,127,130,133,136],{"class":85,"line":126},5,[83,128,129],{"class":89},"WHERE",[83,131,132],{"class":122}," `status`",[83,134,135],{"class":89}," =",[83,137,138],{"class":122}," 'paid'\n",[83,140,142,145,148,151,154,157,160,163,166,169],{"class":85,"line":141},6,[83,143,144],{"class":89},"  AND",[83,146,147],{"class":122}," `created_at`",[83,149,150],{"class":89}," >=",[83,152,153],{"class":89}," DATE_FORMAT",[83,155,156],{"class":96},"(DATE_SUB(CURDATE(), INTERVAL ",[83,158,159],{"class":103},"1",[83,161,162],{"class":89}," MONTH",[83,164,165],{"class":96},"), ",[83,167,168],{"class":122},"'%Y-%m-01'",[83,170,171],{"class":96},")\n",[83,173,174,176,178,181,183,186,188],{"class":85,"line":5},[83,175,144],{"class":89},[83,177,147],{"class":122},[83,179,180],{"class":89}," \u003C",[83,182,153],{"class":89},[83,184,185],{"class":96},"(CURDATE(), ",[83,187,168],{"class":122},[83,189,171],{"class":96},[83,191,192,195],{"class":85,"line":8},[83,193,194],{"class":89},"GROUP BY",[83,196,197],{"class":122}," `user_id`\n",[83,199,201,204,207],{"class":85,"line":200},9,[83,202,203],{"class":89},"ORDER BY",[83,205,206],{"class":122}," `total_spent`",[83,208,209],{"class":89}," DESC\n",[83,211,212,215,218],{"class":85,"line":7},[83,213,214],{"class":89},"LIMIT",[83,216,217],{"class":103}," 10",[83,219,220],{"class":96},";\n",[59,222,223],{"id":223},"索引建议",[63,225,226],{},[66,227,228,231],{},[36,229,230],{},"CREATE INDEX idx_status_created ON orders(status, created_at)"," — 覆盖时间范围筛选",[59,233,234],{"id":234},"性能说明",[63,236,237,240],{},[66,238,239],{},"走 idx_status_created 索引，避免全表扫描",[66,241,242],{},"GROUP BY user_id 需要临时表排序，数据量大时考虑分页",[244,245,246],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":34,"searchDepth":100,"depth":100,"links":248},[249,250,251],{"id":18,"depth":93,"text":18},{"id":25,"depth":93,"text":26},{"id":40,"depth":93,"text":40,"children":252},[253,254,255,256],{"id":61,"depth":100,"text":61},{"id":74,"depth":100,"text":75},{"id":223,"depth":100,"text":223},{"id":234,"depth":100,"text":234},"把'帮我查上个月销售额前十的用户'这种自然语言转成 SQL，自动选 JOIN 类型、加索引建议、防 SQL 注入。","md",{},true,"\u002Fprompts\u002Fsql-generation",{"title":11,"description":257},"prompts\u002Fsql-generation",[75,265,266],"数据库","代码生成",[268,269,270,271],"Claude","Cursor","ChatGPT","GLM","ZEhqRRzNv7wieRUjt-YmGhzX4utjO3EejSdsrMyC32E",1782316489340]