讲师中心 微信公众号
AI工具推荐 视频效率加速

SQL Master

Polar Sponsor
爱发电 赞助
.NET 9.0

SQL 查询、数据获取智能体。覆盖 SQL 全链路能力:自然语言转生产级 SQL、慢查询诊断与执行计划分析、索引设计与优化、数仓建模、SQL 原理深度科普、查询结果可视化。支持 MySQL / PostgreSQL / Hive / Spark SQL / ClickHouse / BigQuery 多方言。触发场景:(1) 写 SQL / 生成查询,(2) SQL 慢/优化/调优,(3) 执行计划分析 EXPLAIN,(4) 索引设计,(5) 数仓建模 / 分层设计,(6) SQL 原理问题(事务/锁/

SQL Master — SQL 查询、数据获取智能体

功能概述

SQL Master — SQL 查询、数据获取智能体是一项面向实际任务的技能,主要用于⚠️ 使用前必读;本 Skill 需要 Python 依赖;

核心要点

  • 首次使用前必须安装依赖 :;
  • 工具会自动检测 Python3 环境、pip 可用性,并安装所有依赖;
  • 依赖安装方式;

使用与执行

自动安装(推荐);skillhub_install install_skill sql-master;一键安装,自动处理;pip install -r。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

SQL Master — SQL 查询、数据获取智能体

⚠️ 使用前必读

本 Skill 需要 Python 依赖。首次使用前必须安装依赖:

skillhub_install install_skill sql-master

工具会自动检测 Python3 环境、pip 可用性,并安装所有依赖。

依赖安装方式

方式 命令 适用场景
自动安装(推荐) skillhub_install install_skill sql-master 一键安装,自动处理
手动安装 pip install -r requirements.txt 熟悉 Python 环境的用户

无依赖使用(受限模式)

如果无法安装依赖,本 Skill 提供以下降级能力:

✅ 可用功能:

  • SQL 语句生成(纯文本输出,无需执行)
  • SQL 诊断与优化建议(基于文本分析)
  • 索引设计建议(基于规则引擎)
  • SQL 原理解释与科普
  • 执行计划分析(用户提供 EXPLAIN 结果)

❌ 不可用功能:

  • 数据库连接与 SQL 执行
  • 数据 Pipeline 处理
  • 本地文件数据获取(CSV/Excel 等)
  • 与 sql-dataviz / sql-report-generator 联动

🔗 Skill 协作关系

本 Skill 与 sql-dataviz、sql-report-generator 组成完整的数据分析流水线:

┌─────────────┐     ┌──────────────┐     ┌────────────────────────┐
│ sql-master  │ ──► │ sql-dataviz  │ ──► │ sql-report-generator   │
│  (数据层)   │     │  (可视化层)  │     │  (报告层)              │
└─────────────┘     └──────────────┘     └────────────────────────┘
      │                   │                   │
      ▼                   ▼                   ▼
   SQL 查询           图表生成            HTML 报告
   数据获取           PNG/HTML            AI 洞察
   格式转换           Dashboard           数据表格

协作模式

模式 组合 适用场景
单独使用 sql-master 仅需 SQL 查询/生成/优化
可视化 sql-master + sql-dataviz SQL 查询 → 图表输出
完整流程 sql-master + sql-dataviz + sql-report-generator 完整数据分析报告

🥇 最优使用方式:三 Skill 串联

from scripts.unified_pipeline import UnifiedPipeline

result = (
    UnifiedPipeline("销售分析")
    .from_file("sales.csv")                                    # sql-master: 数据获取
    .query("SELECT region, SUM(sales) as total FROM data GROUP BY region")
    .interactive_chart("bar", x_col="region", y_col="total")   # sql-dataviz: 可视化
    .insights(value_cols=["total"])                            # AI 洞察
    .report(title="销售报告", output="report.html")            # sql-report-generator: 报告
)

决策指南

你需要什么?
├─ 仅 SQL 查询/优化 → sql-master 单独使用
├─ SQL + 图表 → sql-master + sql-dataviz
├─ 图表 + 报告(无 SQL)→ sql-dataviz + sql-report-generator
└─ 完整分析报告 → sql-master + sql-dataviz + sql-report-generator ✅ 推荐

新增功能:统一 Pipeline 编排(三 Skill 端到端)

scripts/unified_pipeline.py

打通 sql-master → sql-dataviz → sql-report-generator 的端到端自动化:

from scripts.unified_pipeline import UnifiedPipeline, analyze_file

# 完整 Pipeline
result = (
    UnifiedPipeline("销售分析")
    .from_file("sales.csv")                        # 数据源
    .query("SELECT region, SUM(sales) as total FROM data GROUP BY region")  # SQL
    .interactive_chart("bar", x_col="region", y_col="total", title="区域销售")  # 交互图
    .chart("line", x_col="region", y_col="total")              # 静态图 (PNG)
    .insights(value_cols=["total"])                            # AI 洞察
    .report(title="销售报告", output="report.html")           # 完整报告
)
print(result.log())

# 一键分析
result = analyze_file("sales.csv", output="report.html")

支持的图表:静态 PNG(60种)+ 交互式 HTML(12种) 支持的洞察:异常检测 / 趋势 / 相关性 / TOP N / 分布 / 季节性 / 对比 支持的报告:完整 HTML(图表 + 洞察 + 数据表格 + KPI 卡片)

新增功能:数据库连接执行层 + 数据 Pipeline

1. 数据库连接(scripts/database_connector.py)

支持 SQLite / MySQL / PostgreSQL / SQL Server / ClickHouse / Oracle

from scripts.database_connector import connect_sqlite, connect_mysql, connect_postgresql

# SQLite(本地文件)
conn = connect_sqlite("data/sales.db")
result = conn.execute("SELECT region, SUM(amount) FROM sales GROUP BY region")
print(result.df)           # DataFrame 访问
print(result.to_dict())   # dict 访问
result.to_csv("output.csv")  # 导出 CSV
result.to_json("output.json") # 导出 JSON

# MySQL
conn = connect_mysql(host="localhost", port=3306, username="root", password="xxx", database="mydb")
result = conn.execute("SELECT * FROM orders WHERE date >= '2024-01-01'")
print(result.summary())   # 可读摘要

# PostgreSQL
conn = connect_postgresql(host="localhost", database="mydb", username="postgres", password="xxx")
tables = conn.get_tables()  # 获取所有表名
schema = conn.get_schema("orders")  # 获取表结构
conn.close()

2. 本地文件数据获取(scripts/file_connector.py)

支持 CSV / Excel / JSON / Parquet / SQLite 等所有主流格式,自动 SQL 查询 + 格式转换

from scripts.file_connector import load_file, load_directory

# 加载本地文件
fc = load_file("data/sales.csv")        # 单个文件
fc = load_directory("data/reports/")     # 目录下所有文件
fc = load_file("data/*.csv")            # 通配符匹配

print(fc.shape)           # (10000, 12)
print(fc.columns)         # ['date', 'region', 'amount', ...]
print(fc.df.head())       # DataFrame

# 用途一:SQL 查询(自动建 SQLite 内存表)
result = fc.query("SELECT region, SUM(amount) as total FROM data GROUP BY region ORDER BY total DESC")

# 用途二:格式转换
fc.to_csv("output/sales_report.csv")
fc.to_excel("output/sales_report.xlsx")
fc.to_json("output/sales_report.json")
fc.to_parquet("output/sales_report.parquet")
fc.to_sqlite("output/sales.db", table_name="sales")

# 用途三:传给 sql-dataviz 画图
b64 = fc.to_dataviz("line", x_col="month", y_col="sales", title="月度销售趋势")

3. SQL Pipeline 流水线(scripts/pipeline.py)

三大用途一气呵成:数据获取 → SQL 查询 → 格式转换 → 可视化 → HTML 报告

from scripts.pipeline import SQLPipeline

# 方式一:从文件开始
p = (
    SQLPipeline()
    .from_file("data/sales.csv")
    .query("SELECT region, SUM(amount) as total FROM data GROUP BY region")
    .to_csv("output/regional_sales.csv")
    .to_excel("output/regional_sales.xlsx")
)

# 方式二:从数据库开始
p = SQLPipeline().from_db(dialect="sqlite", database="data.db")
p.query("SELECT * FROM sales WHERE amount > 1000")
p.query("SELECT region, COUNT(*) FROM data GROUP BY region")

# 方式三:从 DataFrame 开始
import pandas as pd
df = pd.read_csv("data.csv")
p = SQLPipeline().from_dataframe(df)

# 管道操作
p.query("SELECT region, SUM(amount) as total FROM data GROUP BY region")
p.transform(lambda df: df[df["total"] > 1000])  # 过滤
p.to_dataviz("bar", x_col="region", y_col="total", title="区域销售排行")
p.to_report(title="销售分析报告", output="output/report.html")
p.log()   # 打印执行日志

Pipeline 完整流程示例:

(
    SQLPipeline()
    .from_file("sales_2024.csv")                        # 加载数据
    .query("SELECT * FROM data WHERE region = '华东'")  # SQL 筛选
    .to_csv("output/east_sales.csv")                   # 导出 CSV
    .to_json("output/east_sales.json")                 # 导出 JSON
    .to_dataviz("line", x_col="month", y_col="sales") # 生成折线图
    .to_dataviz("pie", x_col="product", y_col="amount") # 生成饼图
    .to_report(title="华东区域销售报告", output="output/report.html")  # HTML 报告
)

核心原则

生产级标准:所有输出的 SQL 必须满足:

  • 注释完整(业务背景 + 性能预期 + 适用数据量级)
  • 明确标注数据库版本和方言
  • 主动提示 NULL 处理、空集合、边界条件
  • 给出多方案时说明各自 trade-off

分层回答:同一问题,先给结论,再给原理,最后给深入扩展。自动识别用户水平(初学者/开发者/DBA),调整解释深度。

可复现:生成的 SQL 必须附带最小可复现测试数据(DDL + INSERT),确保用户能直接验证。

功能模块导航

场景 参考文件
自然语言 → SQL 生成 references/sql-generation.md
慢查询诊断 & 执行计划分析 references/query-optimization.md
索引设计策略 references/index-design.md
数仓建模 & 分层架构 references/data-warehouse.md
Hive 数据倾斜深度(引擎原理/量化模型/极端场景) references/hive-skew-advanced.md
SQL 原理深度(事务/锁/MVCC/Join) references/sql-internals.md
多方言差异速查 references/dialect-guide.md
DDL 设计规范 references/ddl-design.md
SQL 安全规范(注入防护/参数化查询) references/sql-security.md
CLI 实操速查(sqlite3/psql/mysql 连接与导入导出) references/cli-quickref.md
查询结果可视化(图表选型/Python 代码/设计原则) references/visualization-guide.md

工作流程

1. 意图识别

收到请求后,先判断属于哪个场景:

  • 生成类:用户描述业务需求,需要输出 SQL
  • 优化类:用户提供现有 SQL 或 EXPLAIN,需要诊断和改写
  • 设计类:表结构、索引、数仓架构设计
  • 科普类:原理解释、概念问答
  • 诊断类:报错信息分析
  • 可视化类:将查询结果转化为图表 → 加载 references/visualization-guide.md

2. 上下文收集

生成或优化 SQL 前,主动确认(如未提供):

  • 数据库类型和版本
  • 关键表的 schema(列名、类型、索引)
  • 数据量级(行数、数据大小)
  • 查询频率和性能目标(P99 < Xms?)

3. 输出规范

SQL 输出模板:

-- ============================================================
-- 业务说明:[描述这段 SQL 解决什么业务问题]
-- 数据库:MySQL 8.0 / PostgreSQL 15 / ...
-- 性能预期:[预计执行时间,适用数据量级]
-- 注意事项:[NULL 处理、边界条件、已知限制]
-- ============================================================

SELECT ...
FROM ...
WHERE ...

优化报告模板:

## 问题诊断
[执行计划中发现的问题,按严重程度排序]

## 优化方案
### 方案 A(推荐)
[改写后的 SQL + 原因]

### 方案 B(备选)
[另一种思路 + 适用场景]

## 预期收益
[优化前 vs 优化后的性能对比估算]

## 可复现测试
[最小 DDL + 数据 + 验证步骤]

4. 加载参考文件

根据意图识别结果,读取对应的 references/ 文件获取详细指导。

快速参考

常见性能陷阱(立即识别)

  • SELECT * → 明确列名,避免回表
  • WHERE 列上有函数 → 索引失效
  • OR 连接不同列 → 考虑 UNION ALL
  • != / NOT IN → 无法走索引
  • 隐式类型转换 → 索引失效
  • LIMIT 大偏移量 → 延迟关联优化
  • COUNT(*) vs COUNT(col) → NULL 语义差异

Join 算法选择直觉

  • 小表 JOIN 大表 → Nested Loop(小表驱动)
  • 两个大表等值 JOIN → Hash Join
  • 有序数据等值 JOIN → Merge Join
  • 数据倾斜 → 广播小表 / 加盐打散

索引设计口诀

最左前缀、区分度高、覆盖查询、避免冗余

强制规范(MUST DO / MUST NOT)

借鉴 sql-pro 的约束清单,以下规则在任何情况下都必须遵守:

✅ MUST DO

  • 优化前必须先分析执行计划(EXPLAIN / EXPLAIN ANALYZE)
  • 优先使用集合操作,避免逐行处理(游标/循环)
  • 尽早过滤:WHERE 条件尽量前置,减少中间结果集
  • 存在性检查用 EXISTS,不用 COUNT(*) > 0
  • 显式处理 NULL:IS NULL / IS NOT NULL / COALESCE / NULLIF
  • 为高频查询创建覆盖索引
  • 涉及安全场景时,必须使用参数化查询,详见 references/sql-security.md
  • 跨数据库迁移时,必须标注方言差异,详见 references/dialect-guide.md

❌ MUST NOT

  • 不在 WHERE / JOIN 条件列上使用函数(导致索引失效)
  • 不用 SELECT *(回表开销 + 隐式依赖)
  • 不用字符串拼接构造 SQL(SQL 注入风险)
  • 不在大表上做无索引的全表扫描
  • 不用 OFFSET 大偏移量分页(改用游标/keyset 分页)
  • 不忽略隐式类型转换(导致索引失效 + 数据截断)
  • 不在生产环境直接运行未经 EXPLAIN 验证的复杂查询
目录

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

0

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

0

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

0

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

0

2026.10.22

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

0

2026.10.22

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

0

2026.10.22

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn