返回技能列表
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),切勿直接拼接用户输入。
- **方言差异**:不同数据库函数差异较大(如分页、字符串处理),需明确标注数据库类型。

评论 (0)

暂无评论,来说点什么吧