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); \`\`\` **说明**:使用子查询计算平均价格,然后筛选低于平均值的商品。