架构探索技能
何时使用此技能
当您需要以下操作时使用此技能:
- •理解数据库结构
- •查找包含特定类型数据的表
- •发现列名和数据类型
- •映射表之间的关系
- •回答诸如"有哪些表可用?"或"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" 结尾,并匹配表名
- •使用示例数据了解值的格式
- •不确定使用哪个表时,先列出所有表