详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
SQL Master 技能 目标
帮助用户执行SQL、优化SQL、分析SQL质量、理解数据结构。
何时使用
当用户提到以下关键词时使用此技能:
用户说法 执行命令 说明 "执行SQL" / "跑一下这个SQL" dbskiter --输出-mode=AI --database= sql "" 或 dbskiter --输出-mode=AI --database= sql 执行 "" 执行SQL语句 "优化SQL" / "重写SQL" dbskiter --输出-mode=AI --database= sql rewrite "" 重写SQL优化性能 "分析SQL" / "SQL质量" dbskiter --输出-mode=AI --database= sql analyze "" 分析SQL质量评分 "分析数据" / "数据统计" dbskiter --输出-mode=AI --database= sql data "" 分析查询结果数据特征 "SQL补全" / "自动完成" dbskiter --输出-mode=AI --database= sql complete "<部分SQL>" 智能补全建议 "表结构" / "模式" dbskiter --输出-mode=AI --database= sql 模式 --table=<表名> 查看表结构 "有哪些表" dbskiter --输出-mode=AI --database= sql 模式 列出所有表 "批量执行SQL文件" dbskiter --输出-mode=AI --database= sql batch <文件> 批量执行文件中的SQL "导出数据" dbskiter --输出-mode=AI --database= sql 导出 --table=<表名> --输出=<文件> 导出表数据 "导入数据" dbskiter --输出-mode=AI --database= sql 导入 <文件> --table=<表名> 导入数据到表 核心命令(9个)
- 执行SQL
参数:
--params='{"key": "value"}':SQL参数(JSON格式) --limit=100:限制返回行数
示例:
# 基础查询 dbskiter --输出-mode=AI --database=prod sql 执行 "SELECT FROM users LIMIT 10"
# 带参数 dbskiter --输出-mode=AI --database=prod sql 执行 "SELECT FROM users WHERE age > %(age)s" --params='{"age": 18}'
# 限制返回行数 dbskiter --输出-mode=AI --database=prod sql 执行 "SELECT FROM orders" --limit=50
- 重写SQL优化
功能:
展开 SELECT 为具体字段 优化 WHERE 条件 推荐索引 重写低效JOIN
示例:
# 优化SELECT dbskiter --输出-mode=AI --database=prod sql rewrite "SELECT FROM users WHERE id = 1" # 输出:SELECT id, name, emAIl FROM users WHERE id = 1
# 优化复杂查询 dbskiter --输出-mode=AI --database=prod sql rewrite "SELECT FROM orders o JOIN users u ON o.user_id = u.id WHERE u.状态 = 'active'"
- 分析SQL质量
输出:
质量评分(0-100分) 等级(A/B/C/D/F) 问题列表 优化建议
评分标准:
90-100分:A级(优秀) 80-89分:B级(良好) 70-79分:C级(一般) 60-69分:D级(较差) <60分:F级(危险)
示例:
dbskiter --输出-mode=AI --database=prod sql analyze "SELECT FROM users WHERE emAIl = 'test@test.com'"
- 数据分析
功能:分析查询结果的数据特征
每列的数据类型 空值数量 唯一值数量 数值列的统计(最小/最大/平均值) 示例值
示例:
# 分析订单数据 dbskiter --输出-mode=AI --database=prod sql data "SELECT FROM orders WHERE 创建d_at > '2024-01-01'"
# 分析用户数据 dbskiter --输出-mode=AI --database=prod sql data "SELECT age, city, 状态 FROM users"
- SQL智能补全
功能:根据部分SQL提供补全建议
表名补全 字段名补全 SQL关键字补全 函数补全
示例:
# 补全表名 dbskiter --输出-mode=AI --database=prod sql complete "SELECT FROM "
# 补全字段 dbskiter --输出-mode=AI --database=prod sql complete "SELECT id, name, "
# 补全WHERE条件 dbskiter --输出-mode=AI --database=prod sql complete "SELECT FROM users WHERE "
- 模式查询
# 查看指定表结构 dbskiter --输出-mode=AI --database=<数据库名> sql 模式 --table=<表名>
输出:
所有表名列表 表字段详情(名称、类型、是否可空、默认值) 索引信息
示例:
# 列出所有表 dbskiter --输出-mode=AI --database=prod sql 模式
# 查看users表结构 dbskiter --输出-mode=AI --database=prod sql 模式 --table=users
# 查看orders表结构和索引 dbskiter --输出-mode=AI --database=prod sql 模式 --table=orders
- 导出数据
# 导出查询结果 dbskiter --输出-mode=AI --database=<数据库名> sql 导出 --查询="" --输出=<文件路径> --格式化=<格式>
参数:
--table: 表名(与--查询二选一) --查询: SQL查询语句(与--table二选一) --输出, -o: 输出文件路径(必需) --格式化, -f: 导出格式(csv/json/sql,默认csv) --where: WHERE条件(仅table模式) --limit: 限制导出行数
示例:
# 导出users表为CSV dbskiter --输出-mode=AI --database=prod sql 导出 --table=users --输出=users.csv
# 导出为JSON格式 dbskiter --输出-mode=AI --database=prod sql 导出 --table=users --输出=users.json --格式化=json
# 导出查询结果 dbskiter --输出-mode=AI --database=prod sql 导出 --查询="SELECT FROM orders WHERE 状态='pending'" --输出=pending_orders.csv
# 只导出前1000行 dbskiter --输出-mode=AI --database=prod sql 导出 --table=users --输出=users.csv --limit=1000
- 导入数据
参数:
--table, -t: 目标表名(必需) --格式化, -f: 文件格式(csv/json/sql,默认csv) --columns: 指定列名(逗号分隔,CSV格式用) --batch-size: 批量插入大小(默认1000)
示例:
# 从CSV导入 dbskiter --输出-mode=AI --database=prod sql 导入 users.csv --table=users
# 从JSON导入 dbskiter --输出-mode=AI --database=prod sql 导入 users.json --table=users --格式化=json
# 从SQL文件导入 dbskiter --输出-mode=AI --database=prod sql 导入 users.sql --格式化=sql
# 指定列名导入 dbskiter --输出-mode=AI --database=prod sql 导入 data.csv --table=users --columns=id,name,emAIl
# 调整批量大小 dbskiter --输出-mode=AI --database=prod sql 导入 large_data.csv --table