架构探索技能Skill schema-exploration

这个技能用于探索和理解数据库结构,包括列出表、获取列信息、映射表关系等,帮助数据分析师、数据库管理员和开发者优化数据查询和管理。关键词:数据库探索、架构分析、SQL工具、数据工程、数据可视化。

数据工程 0 次安装 0 次浏览 更新于 3/25/2026

name: 架构探索 description: 用于发现和理解数据库结构、表、列和关系

架构探索技能

何时使用此技能

当您需要时使用此技能:

  • 理解数据库结构
  • 查找哪些表包含特定类型的数据
  • 发现列名和数据类型
  • 映射表之间的关系
  • 回答类似“有哪些表可用?”或“Customer表有哪些列?”的问题

工作流程

1. 列出所有表

使用 sql_db_list_tables 工具查看数据库中所有可用的表。

这将返回您可以查询的完整表列表。

2. 获取特定表的模式

使用带有表名的 sql_db_schema 工具来检查:

  • 列名 - 可用的字段
  • 数据类型 - INTEGER、TEXT、DATETIME 等
  • 示例数据 - 3个示例行以理解内容
  • 主键 - 行的唯一标识符
  • 外键 - 与其他表的关系

3. 映射关系

识别表如何连接:

  • 查找以“Id”结尾的列(例如,CustomerId、ArtistId)
  • 外键链接到其他表的主键
  • 记录父子关系

4. 回答问题

提供关于以下内容的清晰信息:

  • 可用表及其用途
  • 列名及其包含的内容
  • 表如何相互关联
  • 示例数据以说明内容

示例:“有哪些表可用?”

步骤 1: 使用 sql_db_list_tables

响应:

Chinook 数据库有 11 个表:
1. Artist - 音乐艺术家
2. Album - 音乐专辑
3. Track - 单曲
4. Genre - 音乐流派
5. MediaType - 文件格式(MP3、AAC 等)
6. Playlist - 用户创建的播放列表
7. PlaylistTrack - 播放列表中的曲目
8. Customer - 商店顾客
9. Employee - 商店员工
10. Invoice - 顾客购买
11. InvoiceLine - 发票中的单个项目

示例:“Customer表有哪些列?”

步骤 1: 使用带有表名“Customer”的 sql_db_schema

响应:

Customer 表有以下列:

- CustomerId (INTEGER) - 主键,唯一顾客ID
- FirstName (NVARCHAR) - 顾客的名字
- LastName (NVARCHAR) - 顾客的姓氏
- Company (NVARCHAR) - 公司名称(可选)
- Address、City、State、Country、PostalCode - 位置字段
- Phone (NVARCHAR) - 电话号码
- Fax (NVARCHAR) - 传真号码
- Email (NVARCHAR) - 电子邮件地址
- SupportRepId (INTEGER) - 外键指向 Employee 表

示例数据显示顾客如:
- Luís Gonçalves 来自巴西
- Leonie Köhler 来自德国
- François Tremblay 来自加拿大

示例:“如何按艺术家查找收入?”

步骤 1: 识别需要的表

  • Artist(有艺术家名称)
  • Album(链接艺术家到曲目)
  • Track(链接专辑到销售)
  • InvoiceLine(有销售数据)
  • Invoice(有收入总额)

步骤 2: 映射关系

Artist (ArtistId)
  ↓ 1:多
Album (ArtistId, AlbumId)
  ↓ 1:多
Track (AlbumId, TrackId)
  ↓ 1:多
InvoiceLine (TrackId, UnitPrice, Quantity)

响应:

要按艺术家查找收入,您需要:
1. 从 Artist 表开始
2. 通过 ArtistId JOIN 到 Album
3. 通过 AlbumId JOIN 到 Track
4. 通过 TrackId JOIN 到 InvoiceLine
5. 求和收入(UnitPrice * Quantity)
6. 按艺术家名称分组

这需要查询编写技能来执行。

质量指南

对于“列出表”问题:

  • 显示所有表名
  • 添加每个表包含内容的简要描述
  • 分组相关表(例如,音乐目录、交易、人员)

对于“描述表”问题:

  • 列出所有列及其数据类型
  • 解释每列包含的内容
  • 显示示例数据以提供上下文
  • 注明主键和外键
  • 解释与其他表的关系

对于“如何查询 X”问题:

  • 识别需要的表
  • 映射 JOIN 路径
  • 解释关系链
  • 建议下一步(使用查询编写技能)

常见探索模式

模式 1:查找表

“哪个表有顾客信息?” → 使用 list_tables,然后描述 Customer 表

模式 2:理解结构

“Invoice 表中有什么?” → 使用模式工具显示列和示例数据

模式 3:映射关系

“艺术家如何与销售连接?” → 追踪外键链:Artist → Album → Track → InvoiceLine → Invoice

提示

  • Chinook 中的表名是单数且首字母大写(Customer,不是 customers)
  • 外键通常有“Id”后缀并与表名匹配
  • 使用示例数据来理解值的样貌
  • 当不确定使用哪个表时,首先列出所有表