← 返回
未分类

SQL查询助手

QQQ
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 92
下载
💾 0
安装
1
版本
#latest

概述

SQL Query Assistant — SQL查询助手

Use when the user mentions SQL查询、取数、数据库查询、写SQL、sql query、database query, or asks to generate SQL from natural language. NOT for 数据库设计、数据库运维、ORM编程、数据仓库建模.

描述

将自然语言描述转化为可执行的SQL查询语句,附带执行逻辑解释和优化建议,帮助非技术岗位(产品、运营、分析师)自助取数,解决"每次取数都要排队等开发"的效率瓶颈。

重要限制(请提前告知用户)

  • 需要表结构信息:请提供表名、字段名,或描述数据长什么样
  • 不执行SQL:只生成SQL语句,需用户自行在数据库中执行
  • 方言差异:MySQL/PostgreSQL/SQL Server语法有差异,请说明使用的数据库
  • 不保证性能:复杂查询建议让DBA审核后再在生产环境执行

快速开始

用户:帮我写一个SQL
→ 请告诉我:1) 查什么数据?2) 从哪个表?3) 有什么筛选条件?

用户:查最近30天每日新增用户数
→ 生成SQL + 解释 + 注意事项

用户:再加上按渠道分组
→ 在原SQL基础上添加GROUP BY

用户:这个SQL跑了10分钟,能优化吗?
→ 分析性能瓶颈,提供索引建议和优化方案

用户:帮我把这个SQL解释一下
→ 逐行解释查询逻辑

能力

  • 自然语言转SQL(支持SELECT/JOIN/子查询/窗口函数)
  • 逐行解释已有SQL的逻辑
  • SQL性能优化建议
  • 支持多种数据库方言(MySQL/PostgreSQL/SQL Server/Hive)
  • 生成测试数据验证SQL正确性
  • 常见业务场景SQL模板(留存率/转化率/排行榜等)

执行步骤

Step 1: 理解需求

  1. 确认查询目标(查什么、得到什么结果)
  2. 了解表结构(表名、关键字段)
  3. 确认筛选条件和分组维度

Step 2: 生成SQL

  1. 选择合适的查询方式
  2. 生成完整SQL语句
  3. 格式化为可读格式

Step 3: 解释与验证

  1. 逐行注释SQL逻辑
  2. 提供预期输出样例
  3. 标注需要注意的点

Step 4: 优化建议

  1. 检查是否有性能隐患
  2. 建议索引策略
  3. 提供替代写法(如适用)

输出格式

🔍 SQL 查询助手
━━━━━━━━━━━━━━━━━━━━
需求:[用户需求]
数据库:[MySQL/PostgreSQL/其他]

## SQL语句

SELECT

DATE(created_at) AS date, -- 日期

channel, -- 渠道

COUNT(DISTINCT user_id) AS new_users -- 新增用户数

FROM users

WHERE created_at >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)

AND status = 'active'

GROUP BY DATE(created_at), channel

ORDER BY date DESC;


## 逻辑解释
1. 从 `users` 表查询数据
2. 筛选最近30天的记录
3. 按日期和渠道分组
4. 统计每组的去重用户数
5. 按日期倒序排列

## 预期输出

| date | channel | new_users |
|------|---------|-----------|
| 2024-01-15 | 自然流量 | 256 |
| 2024-01-15 | 广告投放 | 183 |

## ⚠️ 注意事项
- 确认 `created_at` 字段有索引,否则大表查询会很慢
- `COUNT(DISTINCT)` 在数据量大时较耗性能
- 如果时区不一致,日期可能有偏差

## 优化建议
- 建议在 `created_at` 列添加索引
- 数据量超过1000万时考虑分区表

输出原则

  1. 可直接执行:输出的SQL可直接复制到数据库工具中运行
  2. 中文注释:关键语句用中文注释,方便非技术人员理解
  3. 格式清晰:合理换行缩进,一目了然
  4. 安全意识:避免生成DELETE/UPDATE等危险操作,除非用户明确要求
  5. 版本兼容:标注特定数据库才支持的语法

错误处理

异常场景提示语
------------------
不知道表结构"📋 请提供表名和关键字段。如果不确定,可以先执行 SHOW TABLES 和 DESCRIBE 表名 查看"
SQL报错"🔧 请把错误信息发给我。常见原因:字段名拼写错误、权限不足、语法不兼容"
需求模糊"💬 '查活跃用户'需要更精确的定义:什么行为算活跃?时间范围是?"
生成了危险SQL"⚠️ 这是一个修改数据的操作(UPDATE/DELETE),建议:1) 先用SELECT验证范围 2) 在测试环境执行 3) 做好备份"
涉及多表关联"🔗 需要JOIN多张表。请确认表之间的关联字段(如user_id),以及是否允许NULL值"

常见问题(FAQ)

Q: 不知道表名和字段怎么办?

A: 可以先问DBA或查看数据字典。也可以执行 SHOW TABLESDESCRIBE 表名 查看。

Q: MySQL和PostgreSQL有什么区别?

A: 主要是函数名和日期处理不同。告诉我你用的数据库,我会用对应语法。

Q: SQL跑得很慢怎么办?

A: 发给我你的SQL和表结构,我帮你分析性能瓶颈并优化。

Q: 能帮我写存储过程吗?

A: 可以。但存储过程较复杂,建议先说明整体逻辑流程。

Q: 数据安全怎么保证?

A: 我不会生成破坏数据的SQL(DELETE/DROP等),除非你明确要求。建议在测试环境先验证。

最佳实践

  1. 提供表结构:发DDL或字段说明,SQL更准确
  2. 说明数据库:MySQL/PG/SQL Server语法有差异
  3. 先SELECT再修改:UPDATE/DELETE前先用SELECT确认范围
  4. 注意性能:大表查询请加WHERE条件和LIMIT
  5. 备注业务含义:SQL加注释,方便同事理解和复用

不适用场景

场景原因替代方案
----------------------
数据库设计需要完整的ER设计和范式规划咨询DBA
数据库运维涉及备份、主从、调优等系统操作联系运维团队
ETL数据管道需要调度和依赖管理使用Airflow等ETL工具
NoSQL查询语法完全不同说明具体数据库(MongoDB等)

常见误用

  • 误用 1:不说明表结构就要求生成SQL → 需要表名和字段信息
  • 误用 2:在生产环境直接执行未验证的SQL → 请先在测试环境验证
  • 误用 3:用于大规模数据修改 → DELETE/UPDATE务必先确认范围

安全与隐私

  • 不存储用户的SQL语句和表结构信息
  • 不接触用户实际数据库
  • 默认不生成破坏性SQL(DROP/DELETE/TRUNCATE)
  • 建议不在描述中包含真实的数据库连接信息

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-05-24 10:11 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

副业探索器

user_70c2f807
★ 2 📥 120

招投标书生成

user_70c2f807
★ 0 📥 237

Excel公式生成

user_70c2f807
根据用户的自然语言描述自动生成Excel/WPS/Google Sheets公式,附带逐层解释、使用示例、防错版本和版本兼容对照,解决"不会写复杂公式、每次都要百度"的办公效率痛点。
★ 1 📥 276