AI技能coding
45 次阅读
智能 SQL 查询生成器
基于数据库 Schema 将自然语言问题自动转换为准确、高效的 SQL 查询语句,支持多表关联与复杂聚合。
AI
触发条件
当用户提问数据库相关问题并附 schema 时调用
## 技能概述 本技能能够根据用户提供的数据库 Schema(表结构定义),将自然语言描述的业务问题精准转换为可执行的高效 SQL 查询语句。支持多表 JOIN、子查询、聚合函数、窗口函数、CTE 等高级特性,并兼容主流数据库(MySQL、PostgreSQL、SQL Server、Oracle 等)。 ## 适用场景 - 业务人员快速获取数据,无需手动编写 SQL - 后端开发中快速原型查询语句 - 数据分析师辅助生成报表查询 - SQL 初学者的学习与参考 - 遗留系统的数据探查与维护 ## 调用步骤 1. **提供 Schema**:在提问时附带完整的表结构信息,包含表名、字段名、字段类型、主外键关系及索引情况(推荐使用 CREATE TABLE 语句格式)。 2. **描述需求**:用自然语言清晰表达查询目标,例如"查询最近 30 天内消费金额排名前 10 的用户及其订单明细"。 3. **指定方言**(可选):如需针对特定数据库优化语法,可在提问中说明,如"使用 PostgreSQL"。 4. **审查输出**:检查生成的 SQL 逻辑是否符合预期,必要时提出修正要求。 5. **环境验证**:先在测试环境执行确认结果,再部署到生产环境。 ## 输入示例 ```sql -- 用户提供的 Schema users(id INT, name VARCHAR, created_at TIMESTAMP) orders(id INT, user_id INT, amount DECIMAL, status VARCHAR, created_at TIMESTAMP) ``` **自然语言问题**:统计 2024 年每月新注册用户的首单平均金额。 **生成输出**:包含 DATE_FORMAT 分组、LEFT JOIN 关联、MIN 取首单时间的完整 SELECT 语句。 ## 注意事项 - **Schema 完整性**:字段缺失或类型错误会导致生成偏差,建议直接粘贴 DDL 语句。 - **仅限查询**:本技能仅生成 SELECT 语句,不涉及 INSERT、UPDATE、DELETE 等写操作,避免误改数据。 - **语义拆分**:复杂业务问题建议分步提问,例如先查总量再查分组明细,提高准确率。 - **性能意识**:生成结果会考虑索引使用与执行效率,但极特殊场景仍需 DBA 人工优化。 - **安全规范**:生产环境请使用参数化查询(PreparedStatement),切勿直接拼接用户输入。 - **方言差异**:不同数据库函数差异较大(如分页、字符串处理),需明确标注数据库类型。