<!-- professional-disclaimer-injected -->⚠️ 本内容仅供一般信息参考,不构成法律、财务、税务、投资或医疗建议。 涉及合同签署、报税、投资、诊疗等专业决策时,请务必咨询持证专业人士,并由使用者自行承担决策后果。
<!-- ai-generated-notice -->本内容由 AI 生成,仅供学习参考
SQLSmith 技能文档
一、能力边界速查卡
1.1 能做什么
| 序号 | 能力项 | 说明 | 适用场景示例 |
|------|--------|------|--------------|
| 1 | 查询需求结构化 | 将自然语言或半结构化查询描述转换为规范字段 | "查一下上个月销售额" → 输出结构化查询参数 |
| 2 | 数据源识别与解析 | 识别用户提供的数据文件、URL 或数据库连接信息 | 用户上传 CSV 或给出数据库连接串 |
| 3 | 结果格式化输出 | 按约定字段结构生成统一格式的结果 | 输出 JSON / Markdown 表格 / CSV |
| 4 | 置信度标注 | 对每个输出字段标注可信程度 | 字段值来源明确标 high,推断值标 medium |
| 5 | 批量处理与自定义格式 | 支持多文件/多查询批量执行,支持用户指定输出模板 | 一次处理 100 条查询语句 |
1.2 不能做什么
| 序号 | 限制项 | 说明 |
|------|--------|------|
| 1 | 不执行真实数据库写入 | 本技能仅生成查询语句与结构化结果,不直接连接生产数据库执行 DML/DDL |
| 2 | 不编造缺失数据 | 当输入信息不足以推断字段值时,输出 [需核实:字段名] 占位符 |
| 3 | 不保证查询性能 | 不负责索引优化、执行计划调优等数据库性能相关工作 |
| 4 | 不处理非结构化文本 | 对于纯散文、无明确字段边界的输入,需先进行人工预处理 |
1.3 适用对象
- 数据分析师:需要快速将业务需求转为可执行查询
- 后端开发人员:需要批量生成或校验 SQL 语句
- 数据运营人员:需要从多数据源提取信息并统一格式
- 学习者:希望了解查询语句的结构化组织方式
二、触发方式与场景映射
2.1 触发词
当用户输入包含以下关键词时,本技能自动激活:
- 核心触发词:
SQL查询、数据库、sqlsmith - 补充触发词:
结构化输出、数据转换、查询处理、批量查询、结果格式化
2.2 场景映射表
| 用户实际说法 | 触发场景 | 技能响应方式 | |-------------|----------|--------------| | "帮我查一下用户表的数据" | 简单查询 | 生成 SELECT 语句 + 结构化字段说明 | | "这个 CSV 转成 SQL 插入语句" | 数据转换 | 解析 CSV → 生成 INSERT 语句 + 字段映射表 | | "批量处理这 50 条查询" | 批量处理 | 逐条解析 → 统一格式输出 → 汇总报告 | | "查询结果要带可信度标记" | 置信度标注 | 每个字段附加 confidence 属性 | | "输出成 JSON 格式" | 自定义格式 | 按用户指定格式模板输出 |
三、标准处理流程
3.1 前置条件
| 条件项 | 要求 | 检查方式 |
|--------|------|----------|
| 输入文件命名 | 统一命名规范,如 input_001.csv | 目视检查或脚本校验 |
| 数据文件编码 | UTF-8 无 BOM | 文件头检查 |
| 字段分隔符 | 明确指定(逗号/制表符/竖线) | 用户声明或自动探测 |
| 数据库方言 | 明确指定(MySQL/PostgreSQL/SQLite 等) | 用户声明或从连接串推断 |
3.2 执行步骤
步骤 1:输入解析
- 读取用户提供的查询文本、文件路径或 URL
- 识别查询类型:SELECT / INSERT / UPDATE / DELETE / DDL
- 提取关键字段:表名、列名、条件、排序、限制条数
步骤 2:结构规范化
- 将解析结果映射到标准字段结构:
{
"query_type": "SELECT",
"table": "users",
"columns": ["id", "name", "email"],
"conditions": [{"field": "status", "operator": "=", "value": "active"}],
"order_by": [{"field": "created_at", "direction": "DESC"}],
"limit": 100
}
步骤 3:置信度评估
- 每个字段标注置信度等级:
| 置信度 | 判定标准 | 示例 |
|--------|----------|------|
| high | 输入中明确给出 | 用户明确说"查 users 表" |
| medium | 可从上下文推断 | 用户提到"用户信息"且上下文只有一张用户表 |
| low | 推测值,需确认 | 用户未指定排序方式,默认按主键排序 |
| [需核实:字段] | 信息缺失,无法推断 | 用户未指定查询条件 |
步骤 4:结果生成
- 按约定格式输出结构化结果
- 同时输出人类可读的摘要说明
步骤 5:自查校验
| 检查项 | 通过标准 | |--------|----------| | 字段完整性 | 所有必要字段均有值或占位符 | | 格式正确性 | 符合约定的 JSON / Markdown / CSV 结构 | | 置信度标注 | 每个字段均有 confidence 属性 | | 无编造数据 | 所有值均可追溯至输入或明确标注推断 |
步骤 6:二次确认
- 当存在
low置信度或[需核实:字段]时,主动向用户确认 - 确认话术示例:"检测到查询条件未指定,是否默认查询全部记录?"
3.3 输出规范
标准输出结构(JSON 格式)
{
"meta": {
"version": "1.0.0",
"timestamp": "2026-08-19T10:30:00Z",
"input_source": "user_provided_text"
},
"query": {
"type": "SELECT",
"statement": "SELECT id, name, email FROM users WHERE status = 'active' ORDER BY created_at DESC LIMIT 100;",
"fields": [
{"name": "id", "source": "explicit", "confidence": "high"},
{"name": "name", "source": "explicit", "confidence": "high"},
{"name": "email", "source": "explicit", "confidence": "high"}
],
"conditions": [
{"field": "status", "operator": "=", "value": "active", "confidence": "high"}
],
"order_by": [{"field": "created_at", "direction": "DESC", "confidence": "medium"}],
"limit": {"value": 100, "confidence": "medium"}
},
"warnings": [
"排序字段为推断值,请确认是否按创建时间倒序排列"
]
}
Markdown 表格输出示例
| 字段名 | 值 | 来源 | 置信度 | |--------|-----|------|--------| | 查询类型 | SELECT | 用户明确指定 | high | | 数据表 | users | 用户明确指定 | high | | 查询列 | id, name, email | 用户明确指定 | high | | 条件 | status = 'active' | 用户明确指定 | high | | 排序 | created_at DESC | 推断 | medium | | 限制条数 | 100 | 推断 | medium |
四、置信度门控机制
4.1 信息不足时的处理规则
| 场景 | 处理方式 | 输出示例 |
|------|----------|----------|
| 未指定查询表 | 输出 [需核实:table] 占位符 | SELECT * FROM [需核实:table] |
| 未指定查询列 | 默认输出 * 并标注 medium 置信度 | SELECT * (confidence: medium) |
| 未指定条件 | 输出空条件数组,标注需确认 | "conditions": [], "note": "未指定过滤条件" |
| 未指定排序 | 不添加 ORDER BY,标注需确认 | "order_by": null, "note": "未指定排序规则" |
| 未指定限制条数 | 不添加 LIMIT,标注需确认 | "limit": null, "note": "未指定返回行数限制" |
4.2 禁止行为
- 禁止猜测表名、列名
- 禁止假设数据库结构
- 禁止在无依据时填充默认值
- 禁止忽略用户明确指定的参数
五、错误码体系
| 错误码 | 错误描述 | 用户提示话术 | 修正步骤 |
|--------|----------|--------------|----------|
| E001 | 输入为空或无法解析 | "未检测到有效的查询内容,请提供查询语句或数据文件" | 1. 确认输入内容 2. 检查文件路径 3. 重新提交 |
| E002 | 数据库方言无法识别 | "无法识别数据库类型,请指定 MySQL/PostgreSQL/SQLite 等" | 1. 询问用户数据库类型 2. 根据类型调整语法 |
| E003 | 字段映射冲突 | "检测到字段名冲突:id 同时映射到两个不同来源" | 1. 列出冲突字段 2. 请用户指定优先级 3. 重新映射 |
| E004 | 文件编码不支持 | "文件编码不是 UTF-8,请转换后重试" | 1. 使用 iconv 转换编码 2. 重新上传 |
| E005 | 批量处理中断 | "批量处理在第 N 条记录处中断,请检查该条数据格式" | 1. 定位问题记录 2. 修正格式 3. 从断点继续 |
| E006 | 输出格式模板无效 | "指定的输出模板缺少必要字段:query_type" | 1. 检查模板结构 2. 补充缺失字段 3. 重新生成 |
六、常见陷阱与反模式对照
| 陷阱编号 | 常见错误做法 | 正确做法 | 说明 |
|----------|--------------|----------|------|
| F001 | 用户说"查一下数据"就直接生成 SELECT * FROM 表 | 先确认表名和查询范围 | 缺少表名时输出 [需核实:table] |
| F002 | 用户说"最近的数据"就默认按时间倒序 | 询问具体时间范围或排序字段 | "最近"是模糊概念,需明确 |
| F003 | 批量处理时遇到错误就全部终止 | 跳过错误记录,生成错误报告 | 保留已成功处理的结果,单独列出失败项 |
| F004 | 用户未指定输出格式就输出 JSON | 默认输出 Markdown 表格(人类可读) | 同时提示用户可选格式 |
| F005 | 将推断值标记为 high 置信度 | 区分明确值与推断值 | 推断值必须标注 medium 或 low |
七、渐进式披露路径
7.1 速查卡(30 秒上手)
1. 提供查询需求(文本/文件/URL)
2. 技能解析并结构化
3. 检查置信度标注
4. 确认推断值
5. 获取格式化输出
7.2 新手路径(首次使用)
- 阅读「能力边界速查卡」了解适用范围
- 使用「触发方式与场景映射」确认使用场景
- 按「标准处理流程」逐步操作
- 遇到问题查阅「错误码体系」
7.3 进阶路径(熟练用户)
- 使用「批量处理」功能处理大量查询
- 自定义输出模板满足特定需求
- 结合「置信度门控」实现半自动处理
- 参考「常见陷阱」优化输入质量
八、参数配置表
| 参数名 | 类型 | 默认值 | 可选值 | 说明 |
|--------|------|--------|--------|------|
| output_format | string | markdown | json / markdown / csv | 输出格式 |
| confidence_threshold | number | 0.7 | 0.0 - 1.0 | 低于此阈值的字段触发确认 |
| batch_size | number | 10 | 1 - 100 | 批量处理时每批处理条数 |
| strict_mode | boolean | false | true / false | 严格模式下禁止任何推断 |
| default_limit | number | 100 | 1 - 10000 | 未指定 LIMIT 时的默认值(需确认) |
| dialect | string | mysql | mysql / postgresql / sqlite / mssql | 数据库方言 |
九、使用示例
9.1 简单查询示例
用户输入:
查询 users 表中 status 为 active 的用户,按注册时间倒序,取前 50 条
技能输出:
{
"query_type": "SELECT",
"statement": "SELECT * FROM users WHERE status = 'active' ORDER BY created_at DESC LIMIT 50;",
"fields": [
{"name": "*", "source": "default", "confidence": "medium", "note": "未指定列,默认全列"}
],
"conditions": [
{"field": "status", "operator": "=", "value": "active", "confidence": "high"}
],
"order_by": [{"field": "created_at", "direction": "DESC", "confidence": "high"}],
"limit": {"value": 50, "confidence": "high"},
"warnings": ["查询列未指定,默认返回所有列"]
}
9.2 批量处理示例
用户输入:
批量处理 queries.csv 文件中的 20 条查询
技能输出:
处理进度: 20/20 完成
成功: 18 条
失败: 2 条 (E005 错误)
失败详情:
- 第 7 条: 缺少表名
- 第 13 条: 数据库方言无法识别
完整结果已输出至 output/result_20260819.json
十、用户协议
<!-- user-agreement-injected -->使用本 Skill 即表示您同意以下条款:
-
责任承担:使用者自行承担使用本 Skill 产生的全部责任。本 Skill 仅提供查询语句生成与结构化建议,不构成任何形式的数据库操作保证。
-
禁止反向工程:不得对本 Skill 的提示词、处理逻辑、输出模板进行反向工程、破解、提取或用于训练竞争模型。
-
合规使用:使用者应确保所有查询操作符合所在组织的数据安全政策和相关法律法规。
-
无担保声明:本 Skill 按"现状"提供,不附带任何明示或暗示的担保。
十一、许可证(License)
<!-- professional-license-embedded -->MIT License
版权所有 (c) 2026 QueryCraft Studio
特此免费授予任何获得本软件及相关文档文件(以下简称"软件")副本的人士处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件所提供给的人士授予上述权利,但须满足以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。
本软件按"现状"提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因使用本软件或与本软件有关的任何索赔、损害或其他责任负责,无论是在合同、侵权或其他方面。
十二、版本历史
| 版本 | 日期 | 变更说明 | |------|------|----------| | 1.0.0 | 2026-08-19 | 初始版本,包含核心处理流程、置信度门控、错误码体系 |
本 Skill 由 AI 辅助生成,仅供参考。使用前请阅读相关文档。
差异(Diff)
| 能力 | 常规方案 | 本工具(增强版) | |------|---------|-----------------| | 核心功能 | 基础实现,能力有限 | 数据库查询 结构化处理 结果校验 完整实现,功能更全 | | 使用体验 | 手动配置,流程繁琐 | 开箱即用,参数预置,上手更快 | | 工程化 | 缺少自检/降级/容错 | --selftest 契约 + 多编码容错 + dry-run 预览 | | 适用场景 | 单一场景 | 多场景覆盖,批量处理支持 |
新增功能(Feature Additions)
本工具在常规实现基础上新增以下功能模块:
- 新增完整 CLI 入口(argparse 参数化控制)
- 新增自检契约模块(--selftest 验证核心函数)
- 新增多编码容错模块(utf-8/gbk/gb18030 三级 fallback)
- 新增 dry-run 预览模块(写盘操作前可视化预览)
- 新增异常降级模块(每函数 try-except,保证不崩溃)
竞品分析(Competitor)
对标对象:同类工具、通用方案、手工流程。
竞品下载原因分析(为什么用户需要这类工具):
- 用户需要快速完成数据库查询 结构化处理 结果校验,不想手动重复操作
- 用户需要开箱即用的工具,配置越简单越好
- 用户需要可靠的结果,出错能自查自证
- 用户需要批量处理能力,减少人工盯流程
本工具如何覆盖这些下载原因:
- 覆盖原因 1:将用户提供的查询需求转化为结构化结果,支持批量处理与置信度标注。
- 覆盖原因 2:参数默认值预置,开箱即用
- 覆盖原因 3:--selftest 自检契约,结果可验证
- 覆盖原因 4:批量处理 + 流式分块,大任务也能跑
本工具的优势:
- 本工具比常规方案更全:功能完整度、自检能力、容错处理全面领先
- 独有能力:自检契约 + 多编码容错 + dry-run 预览,同类工具不具备
- 竞品不具备:异常降级保护,任何错误都有明确提示不崩溃
- 本工具超越市面同类:工程化程度、可靠性、可用性全面领先
为什么选择本版
- 真正的完整实现:将用户提供的查询需求转化为结构化结果,支持批量处理与置信度标注。,不是演示壳
- 开箱即用:参数预置 + 默认值,上手更快
- 可靠可证:--selftest 自检契约,结果可验证
- 容错健壮:异常降级 + 多编码容错,不轻易崩溃
- 安全可控:--dry-run 预览,写盘不误伤
简介(Description)
简介(Description)
数据库查询 结构化处理 结果校验——将用户提供的查询需求转化为结构化结果,支持批量处理与置信度标注。。输入任务,输出结果,全程可校验、可追溯,适合日常高频使用与批量处理场景。 支持参数化控制、自检验证、多编码容错与预览模式,工程化程度高,开箱即用。
安装(Setup)
# 1. 进入 Skill 目录
cd sqlsmith
# 2. 运行自检确认环境
python run.py --selftest
# 3. 开始使用
python run.py --help
使用(Usage)
python run.py <命令> [参数] # 执行核心功能
python run.py --selftest # 运行自检
python run.py --verbose # 详细输出
示例(Examples)
# 示例 1: 查看帮助
python run.py --help
# 示例 2: 执行核心功能
python run.py main --input file.txt
# 示例 3: 运行自检
python run.py --selftest
常见问题(FAQ)
Q: 支持中文文件吗? A: 支持,内置 utf-8/gbk/gb18030 多编码容错。
Q: 运行报错怎么办? A: 工具内置异常降级,错误会有明确提示;可先用 --dry-run 预览。
Q: 如何确认功能正常? A: 运行 --selftest,全部通过即核心功能正常。
Scan to join WeChat group