AI技能coding
43 次阅读
自然语言 SQL 查询生成器
将用户的自然语言问题结合数据库 schema,自动转化为准确、高效的 SQL 查询语句,并提供优化建议。
AI
触发条件
当用户提问数据库相关问题并附 schema 时调用
## 技能概述 本技能是一款基于自然语言理解的 SQL 查询生成工具,能够将用户以日常语言描述的数据查询需求,结合用户提供的数据库表结构(schema)信息,自动生成符合规范、可直接执行的 SQL 查询语句。技能同时内置 SQL 优化建议模块,可在生成查询时提供性能优化方向与索引提示。 ## 适用场景 - 不熟悉 SQL 语法的业务人员需要自助查询数据 - 数据分析师快速构建查询原型与报表 - 后端开发人员编写复杂 JOIN 与聚合查询时的辅助参考 - 数据库教学与学习中的示例自动生成 - 数据库迁移或重构阶段快速验证数据逻辑 ## 触发条件 当用户消息同时满足以下条件时自动触发: 1. 问题中包含数据查询、统计、检索、汇总等明确意图 2. 消息中附带数据库表结构(CREATE TABLE 语句、Markdown 表格或 JSON 格式 schema) 3. 查询需求以自然语言而非代码形式描述 ## 调用步骤 ### 第一步:解析用户输入 接收并理解用户的自然语言问题与 schema 信息,识别问题中的关键实体,例如时间范围、筛选维度、聚合指标与排序规则。 ### 第二步:Schema 对齐 将自然语言中的业务术语与 schema 中的表名、字段名进行精确映射,避免因命名歧义导致查询错误。 ### 第三步:SQL 构造 基于意图解析结果构建标准 SQL 语句,按需使用 WHERE、JOIN、GROUP BY、ORDER BY、LIMIT 等子句。 ### 第四步:方言适配 根据指定的数据库类型(MySQL、PostgreSQL、SQL Server、Oracle 等)调整语法细节,例如分页、字符串函数、日期处理等方言差异。 ### 第五步:输出与优化 返回格式化 SQL 语句、逐段逻辑说明、性能优化建议以及预期返回结果示例。 ## 输入要求 - **自然语言问题**:清晰描述查询目标,例如"统计上个月每个部门的销售额 Top 5" - **Schema 信息**:包含表名、字段名、字段类型、主外键关系的完整结构 - **可选参数**:数据库类型、性能要求、敏感操作确认标志 ## 输出规范 输出内容应包含以下结构化部分: 1. **SQL 查询语句**:以 Markdown 代码块呈现的可执行 SQL 2. **语句说明**:逐段解释 SQL 逻辑与字段含义 3. **优化建议**:索引提示、潜在性能瓶颈、替代写法 4. **预期结果**:查询返回的数据样例描述 ## 注意事项 - 本技能仅生成 SQL 语句,不直接连接数据库执行 - 涉及 DELETE、UPDATE、DROP、TRUNCATE 等写操作时必须进行二次确认 - 模糊或多义的需求应主动向用户澄清后再生成 - schema 必须与实际数据库保持一致,否则可能产生字段引用错误 - 复杂的多层嵌套子查询建议拆分为 CTE 以提升可读性与性能 ## 最佳实践 - 提供完整且最新的 schema 以提升生成准确度 - 问题描述尽量具体,明确时间范围、筛选条件、排序方向 - 涉及多表关联时,附上表之间的关系说明 - 生产环境执行前务必人工审核并先在测试库验证 - 大数据量查询应配合 LIMIT 与索引优化建议使用