AI技能coding
46 次阅读
自然语言 SQL 智能查询生成器
根据用户提供的数据库表结构,将自然语言问题精准转换为高效、可优化的 SQL 查询语句。
AI
触发条件
当用户提问数据库相关问题并附 schema 时调用
## 技能概述
本技能可根据用户提供的数据库表结构(Schema),将自然语言描述的业务问题精准转换为语法正确、性能优化的 SQL 查询语句。支持 MySQL、PostgreSQL、SQL Server、Oracle 等主流关系型数据库。
## 适用场景
- 数据分析师需要快速生成查询语句
- 后端开发人员编写数据检索逻辑
- 产品经理验证数据可行性
- 业务人员自助查询数据
## 调用步骤
### 第一步:提供 Schema 信息
用户需附带数据库表结构,建议包含以下内容:
- 表名及字段名
- 字段数据类型与长度
- 主键、外键关联关系
- 索引信息(可选,用于性能优化)
### 第二步:描述查询需求
使用清晰、具体的自然语言描述:
- 需要查询的目标数据
- 筛选条件与时间范围
- 排序与分组要求
- 涉及的关联表
### 第三步:生成 SQL 语句
AI 将返回结构完整的查询语句,包含:
- `SELECT` 字段列表
- `FROM` 与 `JOIN` 关联
- `WHERE` 过滤条件
- `GROUP BY` / `ORDER BY` 等子句
- 必要的注释说明
### 第四步:优化与验证
- 检查 SQL 语法正确性
- 评估执行计划与性能
- 根据实际环境微调
## 输出示例
```sql
-- 查询近 30 天每日活跃用户数
SELECT
DATE(created_at) AS login_date,
COUNT(DISTINCT user_id) AS active_users
FROM user_logins
WHERE created_at >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY DATE(created_at)
ORDER BY login_date DESC;
```
## 注意事项
1. **Schema 准确性**:确保提供的表结构与实际数据库一致,避免生成无效查询。
2. **数据安全**:敏感字段(如密码、身份证号)需脱敏处理后再用于展示。
3. **性能考虑**:复杂查询建议添加适当索引,避免全表扫描。
4. **方言差异**:不同数据库的函数语法可能不同,请注明数据库类型。
5. **结果验证**:生成的 SQL 建议先在测试环境验证后再用于生产环境。