返回技能列表
AI技能coding
39 次阅读

SQL查询生成器

将自然语言问题转换为优化的SQL查询语句,支持数据库Schema感知和查询优化建议。

AI

触发条件

当用户提问数据库相关问题并附 schema 时调用

# SQL查询生成器

## 功能特点

SQL查询生成器是一款基于自然语言处理的智能工具,能够将用户的自然语言描述自动转换为精确、高效的SQL查询语句。该工具具备以下核心能力:

- **Schema感知**:能够理解数据库表结构、字段类型、主键外键关系
- **查询优化**:自动优化SQL性能,考虑索引使用和查询效率
- **多数据库支持**:兼容MySQL、PostgreSQL、SQLite、Oracle等主流数据库
- **错误预防**:检测常见SQL错误并提供修正建议

## 使用场景

- 快速生成复杂查询,减少手动编写SQL的时间
- 学习SQL语法时获取参考示例
- 快速验证数据库设计是否满足业务需求
- 协助编写数据分析报表的查询逻辑

## 调用步骤

### 第一步:提供数据库Schema

在提问时,请附上完整的数据库表结构信息,格式示例:

\`\`\`
表名:users
- id: INT (主键, 自增)
- username: VARCHAR(50) (唯一索引)
- email: VARCHAR(100)
- created_at: DATETIME

表名:orders
- id: INT (主键, 自增)
- user_id: INT (外键 -> users.id)
- amount: DECIMAL(10,2)
- status: VARCHAR(20)
- created_at: DATETIME
\`\`\`

### 第二步:描述查询需求

用自然语言清晰描述您想要查询的内容,例如:

> "查询2024年订单金额超过1000元的用户,显示用户名、邮箱、总订单数和总金额"

### 第三步:获取生成的SQL

系统将返回优化后的SQL查询语句,以及简要说明。

## 注意事项

1. **Schema完整性**:提供的表结构信息越完整准确,生成的SQL质量越高
2. **字段类型说明**:请注明字段类型和约束条件,避免类型转换问题
3. **业务逻辑澄清**:对于复杂的业务规则,可能需要额外说明
4. **结果验证**:生成后请验证SQL逻辑是否符合预期,特别是涉及多表连接和聚合查询
5. **性能考虑**:对于大数据量场景,建议检查是否需要添加索引或优化查询条件
6. **SQL注入防护**:生成的SQL请通过参数化查询方式在代码中使用

## 输出示例

**输入Schema**:
\`\`\`
表名:products
- id: INT
- name: VARCHAR(100)
- category_id: INT
- price: DECIMAL(10,2)
\`\`\`

**输入需求**:
> 查找所有价格低于平均价的商品

**输出SQL**:
\`\`\`sql
SELECT * 
FROM products 
WHERE price < (SELECT AVG(price) FROM products);
\`\`\`

**说明**:使用子查询计算平均价格,然后筛选低于平均值的商品。

评论 (0)

暂无评论,来说点什么吧