面向独立开发者与AI Agent的SQL查询执行工具免费版。聚焦命令行场景下的关系型数据库查询、参数化执行、执行计划分析与跨数据库可移植性,提供经过实战检验的查询模式、索引陷阱清单与EXPLAIN解读方法,帮助用户在不依赖重量级ORM的前提下高效完成数据访问任务。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策.
Data & analysis
SQL大师工具(免费版)
Try it面向独立开发者与AI Agent的SQL全栈工具免费版。覆盖SQLite、`PostgreSQL`、MySQL三大数据库的Schema设计、查询模式、索引策略、迁移脚本与备份恢复等核心能力,内置JSONB查询、CTE递归、窗口函数等高级查询模式示例,帮助用户在命令行下完成数据库开发与运维的绝大多数任务
What it does
面向独立开发者与AI Agent的SQL全栈工具免费版。覆盖SQLite、`PostgreSQL`、MySQL三大数据库的Schema设计、查询模式、索引策略、迁移脚本与备份恢复等核心能力,内置JSONB查询、CTE递归、窗口函数等高级查询模式示例,帮助用户在命令行下完成数据库开发与运维的绝大多数任务
The skill document
SQL大师工具(免费版)
本工具为独立开发者、运维与AI Agent提供覆盖SQLite、PostgreSQL、MySQL三大数据库的全栈SQL能力。免费版聚焦核心场景:Schema设计、查询编写、索引优化、迁移脚本、备份恢复,足以覆盖数据库开发与运维的绝大多数日常任务.
概述
数据库开发与运维是一项涵盖面广的工程任务:从表结构设计、约束定义、索引规划,到复杂查询编写、性能调优、Schema演进、数据备份恢复,每个环节都需要规范的实践模式。本工具将这些经过实战检验的模式整合为一套完整工具集,避免在不同场景下重复查阅散落文档. 本工具以命令行原生操作为主,不依赖重量级ORM或可视化工具,便于在AI Agent工作流、自动化脚本与服务器环境中直接落地.
核心能力
| 能力分类 | 说明 |
|---|---|
| Schema设计 | 建表、约束、外键、枚举类型、触发器模板 |
| 查询模式 | JOIN、聚合、CTE、窗口函数、递归查询 |
| 索引策略 | 单列、复合、覆盖、部分、表达式索引 |
| 迁移管理 | 手动迁移脚本规范与版本管理约定 |
| 备份恢复 | 全量备份、选择性备份、CSV导入导出 |
| 性能调优 | EXPLAIN解读、慢查询定位、索引补建 |
| JSON处理 | PostgreSQL JSONB与MySQL JSON查询模式 |
技术实现要点:核心能力基于input_params参数与output_format配置实现,支持创建/查询/修改/删除等操作模式,通过config_options进行运行时配置. |
核心功能执行
用input_params参数进行配置.
处理: 解析核心功能执行的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回核心功能执行的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
input_params参数,支持创建/查询/导出操作
参数配置与调用
用config_options参数进行配置.
处理: 解析参数配置与调用的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回参数配置与调用的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
config_options参数,支持修改/重置/导入操作
结果处理与输出
用output_format参数进行配置.
处理: 解析结果处理与输出的输入参数,完成核心逻辑,返回结构化响应. 输出: 返回结果处理与输出的响应数据,包含状态码、结果和日志.
- 执行此能力时使用
output_format参数,支持导出/保存/转换操作 能力覆盖范围:本skill的核心能力覆盖以下场景关键词:SQLite、全栈工具免费版、覆盖建表、备份核心能力、面向独立开发者与、Agent、三大数据库的、迁移脚本与备份恢、复等核心能力、窗口函数等高级查、询模式示例、帮助用户在命令行、下完成数据库开发、与运维的绝大多数等。这些关键词对应description中声明的使用场景,均已在上述能力点中提供对应的操作支持.
使用场景
场景一:新项目建表(开发者视角)
按业务需求设计含主键、外键、约束、索引的规范表结构,避免后期返工.
场景二:复杂报表查询(数据分析师视角)
使用CTE、窗口函数、递归查询编写多步骤聚合报表,如月度营收增长、组织架构树遍历.
场景三:Schema演进迁移(运维视角)
按版本化管理约定编写迁移脚本,确保表结构变更可追溯、可回滚.
场景四:慢查询调优(DBA视角)
通过EXPLAIN ANALYZE定位慢查询根因,识别Seq Scan、Nested Loop等信号,针对性补建索引或调整work_mem.
场景五:数据备份恢复(运维视角)
定期执行全量或选择性备份,在故障时快速恢复,保障数据安全.
不适用场景
以下场景SQL大师工具(免费版)不适合处理:
- 数据库架构设计决策
- NoSQL选型
- 数据仓库ETL设计
触发条件
需要数据库操作、SQL查询、数据存储管理时使用。不适用于非本工具能力范围的需求.
快速开始
第一步:SQLite零配置上手
# 创建并打开数据库
sqlite3 mydb.sqlite
# ...
# 导入CSV
sqlite3 mydb.sqlite ".mode csv" ".import data.csv mytable" "SELECT COUNT(*) FROM mytable;"
# ...
# 格式化输出
sqlite3 -header -column mydb.sqlite "SELECT * FROM users LIMIT 10;"
第二步:PostgreSQL连接与查询
# 连接
psql -h localhost -U myuser -d mydb
# ...
# 执行查询
psql -c "SELECT NOW();" mydb
# ...
# 执行脚本文件
psql -f migration.sql mydb
第三步:创建规范表结构
-- 含外键、约束、索引的规范建表
CREATE TABLE orders (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
total REAL NOT NULL CHECK(total >= 0),
status TEXT NOT NULL DEFAULT 'pending'
CHECK(status IN ('pending','paid','shipped','cancelled')),
created_at TEXT DEFAULT (datetime('now'))
);
CREATE INDEX idx_orders_user_id ON orders(user_id);
CREATE INDEX idx_orders_status ON orders(status);
完整上手时间约60秒.
示例
PostgreSQL UUID主键表设计
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
# ...
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
email TEXT NOT NULL,
name TEXT NOT NULL,
role TEXT NOT NULL DEFAULT 'user' CHECK(role IN ('user','admin')),
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
CONSTRAINT users_email_unique UNIQUE(email)
);
# ...
-- 自动更新updated_at触发器
CREATE OR REPLACE FUNCTION update_modified_column()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
# ...
CREATE TRIGGER update_users_modtime
BEFORE UPDATE ON users
FOR EACH ROW EXECUTE FUNCTION update_modified_column();
JSONB查询模式(PostgreSQL)
-- 存储JSON
INSERT INTO orders (user_id, total, metadata)
VALUES ('...', 99.99, '{"source": "web", "items": [{"sku": "A1", "qty": 2}]}');
# ...
-- 查询JSON字段
SELECT * FROM orders WHERE metadata->>'source' = 'web';
SELECT * FROM orders WHERE metadata->'items' @> '[{"sku": "A1"}]';
# ...
-- 更新JSON字段
UPDATE orders SET metadata = jsonb_set(metadata, '{source}', '"mobile"') WHERE id = '...';
窗口函数报表
-- 月度营收与环比增长
WITH monthly_revenue AS (
SELECT DATE_TRUNC('month', created_at) AS month,
SUM(total) AS revenue
FROM orders WHERE status = 'paid'
GROUP BY 1
)
SELECT month, revenue,
LAG(revenue) OVER (ORDER BY month) AS prev_month,
ROUND((revenue - LAG(revenue) OVER (ORDER BY month)) /
NULLIF(LAG(revenue) OVER (ORDER BY month), 0) * 100, 1) AS growth_pct
FROM monthly_revenue ORDER BY month;
最佳实践
1. 迁移脚本版本化命名
migrations/
001_create_users.sql
002_create_orders.sql
003_add_users_phone.sql
每个文件包含up方向,并在注释中记录down方向的操作,便于回滚.
2. 索引列顺序遵循"等值在前、范围在后"
-- 查询 WHERE user_id = ? AND created_at > ?
CREATE INDEX idx_orders ON orders(user_id, created_at);
3. 用部分索引减小索引体积
-- 仅索引活跃订单,体积更小、速度更快
CREATE INDEX idx_orders_active ON orders(user_id, created_at)
WHERE status NOT IN ('delivered', 'cancelled');
4. TIMESTAMPTZ优于TIMESTAMP
在 PostgreSQL 中始终使用TIMESTAMPTZ存储时间,避免时区转换问题.
5. 批量操作用事务包裹
BEGIN;
INSERT INTO logs (...) VALUES (...);
INSERT INTO logs (...) VALUES (...);
COMMIT;
事务包裹批量操作既保证原子性,又可提升10-100倍性能.
常见问题
Q1:PostgreSQL的JSONB和JSON有何区别?
A:JSONB是二进制存储,支持索引(GIN)、查询更快,但写入略慢。JSON是文本存储,保留输入格式与重复键。生产环境推荐JSONB.
Q2:递归CTE会导致无限循环吗?
A:会。递归CTE必须有终止条件(如WHERE manager_id IS NULL作为锚点)。建议加LIMIT作为安全兜底,避免数据循环引用导致无限递归.
Q3:EXPLAIN的Nested Loop一定慢吗?
A:不一定。小表驱动大表的Nested Loop是高效的。但当两侧都是大表且行数很多时,Nested Loop成本高,应考虑改用Hash Join或调整work_mem.
Q4:MySQL的JSON查询和 PostgreSQL 一样吗?
A:不同。MySQL用JSON_EXTRACT(metadata, '$.source')或简写metadata->>'$.source';PostgreSQL用metadata->>'source'。语法路径表示方式也不同.
Q5:SQLite能用ALTER TABLE修改列类型吗?
A:不能直接修改。SQLite的ALTER TABLE能力有限,修改列类型需通过"建新表-复制数据-删旧表-重命名"四步法,并包裹在事务中保证安全.
已知限制
本免费体验版限制以下高级功能:
- 不支持自动化迁移工具(仅提供手动脚本规范)
- 不支持备份的增量与压缩
- 不支持查询性能基准测试
- 不支持多数据库Schema对比与同步
- 不支持高可用与读写分离配置
解锁全部功能请使用专业版:sql-master-tool-pro
- 当前为免费版本,如需完整功能请升级到付费版获取全部能力
依赖说明
运行环境
- Agent平台: 支持SKILL.md的任意AI Agent(Claude Code / Cursor / Codex / Gemini CLI等)
- 操作系统: Windows / macOS / Linux
- Python: 3.8+(用于脚本示例)
依赖详情
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| sqlite3 | CLI工具 | 必需 | 系统自带或官网下载 |
| psql | CLI工具 | 可选 | PostgreSQL 安装包 |
| mysql | CLI工具 | 可选 | MySQL 客户端安装包 |
| Python | 运行时 | 可选 | python.org 官方下载 |
API Key 配置
- 本免费版基于本地数据库与命令行,无需额外API Key
- 数据库连接凭证通过环境变量注入,禁止硬编码
可用性分类
- 分类: MD+EXEC(纯Markdown指令,部分功能需要exec命令行执行能力)
- 说明: 基于Markdown的AI Skill,通过自然语言指令驱动Agent完成操作
错误处理
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| 配置错误 | 参数缺失或格式错误 | 检查依赖说明中的配置要求 |
| 运行时错误 | 运行环境不满足 | 确认运行环境符合依赖说明 |
| 网络错误 | 连接超时或不可达 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接后执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令,参考国内替代方案 |
输出格式
{
"success": true,
"data": {
"result": "SQL大师工具(免费版)处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "sql master"
}
},
"execution_log": ["解析输入参数", "执行核心处理", "格式化输出结果"],
"error": null
}
Related skills
面向独立开发者与AI Agent的SQL生成器免费版。通过自然语言描述快速生成SQL查询语句,同时提供SQL解释、建表DDL、测试数据生成、SQL速查表等核心能力,帮助不熟悉SQL语法的用户也能高效完成数据库操作任务。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策.
识别并规避基础数据库连接、事务、查询与数据完整性陷阱。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。支持多场景应用和灵活配置。
Multi-database SQL assistant — query MySQL, PostgreSQL, SQLite & MariaDB across dev/test/prod environments with a single command. Security-first: read-only b...
适用于需要sql相关能力的开发场景,包含结构化的工作流程和可复用的模板,帮助用户快速完成任务并保持代码质量.该技能适用于相关开发场景,提供标准化流程和配置指引.经过深度差异化处置,针对用户反馈和使用痛点进行了改进,提升了实用性和可操作性。Use。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策。 when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策。
Convert natural language to SQL, explore database schemas, execute queries safely, and get optimization suggestions.