示例
SQLite 引擎在你的浏览器中加载,不会向任何地方发送数据。
⌘/Ctrl + ↵
运行查询即可查看结果。
功能说明
SQL 练场让你直接在浏览器中编写并运行真正的 SQL 查询——无需安装、无需注册、数据不离开你的机器。它自带一个开箱即查的示例数据库(users + orders),页面一加载你就可以开始探索连接、聚合和过滤。随时换上你自己的 schema,数据库会实时重建。
它由 sql.js 驱动——一个编译为 WebAssembly 的完整 SQLite 引擎。这意味着你得到的是真正的 SQL 行为——事务、约束、聚合、子查询——100% 在客户端运行。结果渲染成带行数和耗时的整洁表格,还可以一键导出为 CSV、JSON 或 Markdown。
使用方法
- 左侧的 Schema 面板预加载了示例
users+orders数据库。随意编辑——停止输入后数据库会自动重建,绿色的“applied”徽章确认重建成功。 - 在右侧的 Query 面板中编写 SQL——两个编辑器都会在你输入时高亮 SQL 语法——或点击任意示例查询芯片(Select all、Filter、Aggregate、Join、Sort + limit、CTE、Subquery、Having、Like + order、Union)加载一条预置查询。
- 点击 Run(或按 ⌘/Ctrl + Enter)执行。
- 阅读下方的 Results 表格——它显示列头、带类型的值(NULL 有独特的样式)、行数、SELECT 查询的只读徽章,以及以毫秒计的耗时。
- 使用 CSV / JSON / Markdown 切换开关 + Copy results,以你喜欢的格式导出输出。
- 点击 Copy share link 把当前的 schema 和查询编码进 URL——任何打开链接的人都能看到你一模一样的配置。
示例
连接两张表并聚合
SELECT u.name, u.role, COUNT(o.id) AS orders, SUM(o.amount) AS total
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id
ORDER BY total DESC;
返回每个用户及其订单数和消费总额,按从高到低排序。没有订单的用户显示为 0 / NULL。
用子查询过滤
SELECT name, email FROM users
WHERE id IN (SELECT user_id FROM orders WHERE amount > 20);
只返回下过超过 $20 订单的用户。
查看表结构
PRAGMA table_info(users);
返回 users 表每一列的序号、名称、类型、可空性和默认值——探索陌生 schema 时很有用。
补充说明
- 100% 客户端。 你的 SQL 和数据永远不会离开浏览器——一切通过 sql.js(编译为 WebAssembly 的 SQLite)在本地运行。处理敏感 schema 也安全。
- 实时 schema 编辑。 修改 Schema 面板后数据库自动重建(带防抖)。错误内联显示——在 schema 恢复有效之前查询保持禁用。
- SQLite 方言。 这是真正的 SQLite——你拥有窗口函数、CTE、JSON 函数以及 SQLite 特性集的大部分。少数东西(存储过程、MySQL/Postgres 专有语法)不受支持。
- 可分享。 你的 schema 和查询编码在 URL 中,分享的链接能复现你一模一样的练习场状态。
- 相关工具: 正则表达式测试器、JSON 格式化器。