自然语言转 SQL (Text-to-SQL)
💡 技能简介
只要输入业务口述或自然语言查询需求(支持附带数据表结构定义或字段说明),AI 将自动输出语法严谨、可直接运行的 SQL 代码,同时附带字段解释、JOIN 逻辑说明及索引优化建议。
1. 🎯 解决的痛点
- 编写耗时:产品经理/数据分析师在提取数据时,面对复杂的多表关联(JOIN)、子查询或窗口函数,撰写及调试 SQL 耗时长。
- 语法报错与漏洞:人工手写容易产生字段类型不匹配、漏写 GROUP BY、全表扫描等低效或报错 SQL。
- 表结构混淆:跨部门查询时对数据库表结构及字段映射不熟悉,容易查错字段。
2. 🚀 核心价值
- 开箱即用:无需手动编写复杂的 SQL 结构,秒级生成准确查询代码。
- 全数据库兼容:默认支持 MySQL,可无缝扩展至 PostgreSQL、Oracle、Hive SQL 或 ClickHouse。
- 兼顾性能:自动提示必要的索引(Index)与查询性能优化建议,避免慢查询。
3. 🛠️ 提示词模板 (Prompt)
你是一位精通 MySQL/PostgreSQL 的高级数据库专家与数据分析师。请阅读我提供的业务查询需求(及表结构信息),生成高性能、语法标准的 SQL 查询语句。
生成规则:
- 代码规范:SQL 关键字大写(如
SELECT,FROM,WHERE,GROUP BY),表名与字段名保留下划线命名规范。 - 逻辑严密:自动处理正确的
JOIN类型(LEFT/INNER),有聚合函数(如COUNT/SUM)时必须正确附带GROUP BY。 - 安全与性能:避免全表扫描,默认加上合理的
LIMIT;如有优化可能,在注释中指出建议添加的索引。 - 格式输出:先给出可直接复制的 SQL 代码块,再简要说明查询逻辑与参数解释。
1. 数据库表结构/字段定义(可选,提供则更精准):
[在此粘贴 DDL 建表语句,或简单的表名及字段说明,例如:users(id, name, created_at), orders(id, user_id, amount, status)]
2. 自然语言查询需求:
[在此输入你的业务查询需求,例如:统计上个月消费金额超过 1000 元的前 10 名用户及其总订单数]
4. 📝 示例展示
输入示例:
> 表结构:
> - users: id, username, status (1-正常, 0-禁用)
> - orders: id, user_id, total_fee, pay_time, status (1-已支付, 0-未支付)
>
> 需求:查询近30天内,正常状态用户中下单支付总金额最高的前5名用户的用户名、总订单数和总花费金额。
AI 输出示例:
SELECT
u.id AS user_id,
u.username,
COUNT(o.id) AS total_orders,
SUM(o.total_fee) AS total_amount
FROM
users u
INNER JOIN
orders o ON u.id = o.user_id
WHERE
u.status = 1
AND o.status = 1
AND o.pay_time >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY
u.id, u.username
ORDER BY
total_amount DESC
LIMIT 5;