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'PostgreSQLmetadata->>'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+(用于脚本示例)

依赖详情

依赖项类型是否必需获取方式
sqlite3CLI工具必需系统自带或官网下载
psqlCLI工具可选PostgreSQL 安装包
mysqlCLI工具可选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查询执行工具免费版。聚焦命令行场景下的关系型数据库查询、参数化执行、执行计划分析与跨数据库可移植性,提供经过实战检验的查询模式、索引陷阱清单与EXPLAIN解读方法,帮助用户在不依赖重量级ORM的前提下高效完成数据访问任务。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策.

1 installs

面向独立开发者与AI Agent的SQL生成器免费版。通过自然语言描述快速生成SQL查询语句,同时提供SQL解释、建表DDL、测试数据生成、SQL速查表等核心能力,帮助不熟悉SQL语法的用户也能高效完成数据库操作任务。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策.

1 installs

识别并规避基础数据库连接、事务、查询与数据完整性陷阱。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。支持多场景应用和灵活配置。

1 installs

Multi-database SQL assistant — query MySQL, PostgreSQL, SQLite & MariaDB across dev/test/prod environments with a single command. Security-first: read-only b...

2 installs

适用于需要sql相关能力的开发场景,包含结构化的工作流程和可复用的模板,帮助用户快速完成任务并保持代码质量.该技能适用于相关开发场景,提供标准化流程和配置指引.经过深度差异化处置,针对用户反馈和使用痛点进行了改进,提升了实用性和可操作性。Use。Use when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策。 when 需要数据库操作、SQL查询、数据存储管理时使用。不适用于数据库架构设计决策。

Convert natural language to SQL, explore database schemas, execute queries safely, and get optimization suggestions.

3 installs