AgentSkillsCN

schema-exploration

用于发现和理解数据库结构、表、列和关系

中文原作
SKILL.md
--- frontmatter
name: schema-exploration
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

响应:

code
数据库包含多个表:
1. Customer - 存储客户信息
2. Employee - 存储员工信息
3. Invoice - 客户购买记录
4. InvoiceLine - 发票中的单个项目
...

示例:"Customer 表有哪些列?"

步骤 1: 使用 sql_db_schema 工具,表名为 "Customer"

响应:

code
Customer 表包含以下列:

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

示例数据显示了如下客户:
- 示例客户 1
- 示例客户 2
- 示例客户 3

质量指南

对于"列出表"问题:

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

对于"描述表"问题:

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

对于"如何查询 X"问题:

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

常见探索模式

模式 1:查找表

"哪个表包含客户信息?" → 使用 list_tables,然后描述 Customer 表

模式 2:理解结构

"Invoice 表中有什么?" → 使用 schema 工具显示列和示例数据

模式 3:映射关系

"客户如何与发票关联?" → 追踪外键链:Customer → Invoice → InvoiceLine

提示

  • 外键通常以 "Id" 结尾,并匹配表名
  • 使用示例数据了解值的格式
  • 不确定使用哪个表时,先列出所有表