简诗 AI 自然语言转 SQL 查询生成
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fccf428b/sql-query-generation-builder。
技能介绍
自然语言转 SQL 的工程痛点
写复杂分析查询时,自然语言转 SQL 的桥接往往卡在两个环节:方言差异和性能黑盒。业务方一句“看下上个季度各区域滞销商品的环比降幅”,落到库里可能是跨表 join、窗口函数和日期边界的组合。直接让模型吐 SQL,常出现以下问题:
- 隐式逗号连接导致意外的交叉连接。
- 未索引列上的全表扫描。
- 把
BETWEEN用在timestamp上导致多算一天。
核心能力与执行链路
这个技能将自然语言翻译与查询优化绑成一条标准链路。它先解析意图,区分聚合摘要和明细行,再结合 DDL 或表结构映射出表别名与 join 路径。生成阶段,它根据复杂度选择 CTE、窗口函数或子查询,并强制使用显式 JOIN 和列别名。
写完后,技能会调用 EXPLAIN 或 EXPLAIN ANALYZE 检查执行计划。如果发现高危执行计划,它会给出具体建议:
- 建索引:针对全表扫描的过滤列。
- 谓词下推:在 join 前尽早过滤驱动表。
- 查询重写:拆分复杂嵌套或调整 join 顺序。
目前它覆盖 PostgreSQL、MySQL、SQLite、SQL Server 和 BigQuery 等主流方言。
适用边界与避坑指南
它不代替数据工程师写最终的生产代码。生成的 SQL 必须在实际 schema 上跑一遍,因为自然语言里的“销售额”可能对应 revenue 列,也可能指代 orders 表。遇到多表同名列时,它会自动加表名前缀,但语义模糊时仍需要你补一句背景。对于边缘情况,技能会使用 COALESCE、NULLIF 和分页逻辑兜底,但你仍需确认业务假设是否成立。安全上,它不自动执行下载或外部写入,生成的代码默认只作参考。
使用场景
- 分析用户消费数据时,需把“近12个月消费前5用户”转化为多表关联与聚合查询
- 排查500万行订单慢查询,需根据执行计划添加索引并重写隐式连接语句
- 在BigQuery中分析用户行为,需将“各区域季度活跃用户环比”转化为含窗口函数的SQL
- 编写复杂报表时,需将多步骤计算拆分为可读性高的CTE结构
适合人员
- 需要从海量业务数据中提取指标的数据分析师,诉求是快速生成准确的分析SQL
- 负责数据库性能优化的后端工程师,诉求是根据执行计划定位慢查询瓶颈
- 需要跨多种数据库方言生成查询语句的数据平台团队成员,诉求是统一处理不同数据库的SQL语法差异
- 经常编写复杂统计报表的BI开发人员,诉求是用CTE提升查询可读性与维护性