在线运行 SQL
浏览器内置真正的 SQLite 数据库,建表、插入、查询都能做,数据库跨多次运行保留
代码
查询结果
这是什么?
浏览器内置的真正的 SQLite 数据库,可以建表、插入数据、执行查询, 和本地安装的 SQLite 行为一致。数据库保存在浏览器内存中,因此 建表和插入的数据会跨多次运行保留——可以先跑建表语句, 再跑查询语句,不必每次都重建。
怎么用?
- 写 SQL,多条语句用分号
;分隔,可一次全部执行; - 点「运行」或按
Ctrl+Enter,查询结果以表格显示; - 左侧「当前数据库」面板会显示已建的表和字段,方便核对表名列名;
- 想推倒重来就点「重置数据库」,会清空所有表。
支持能力对照
| 能力 | 是否支持 | 说明 |
|---|---|---|
| SQLite 完整 SQL 语法 | 支持 | 建表、索引、视图、触发器、事务 |
| 连表查询 JOIN | 支持 | INNER / LEFT / CROSS 等 |
| 分组聚合 | 支持 | GROUP BY、HAVING、窗口函数 |
| CTE 与递归查询 | 支持 | WITH / WITH RECURSIVE |
| 数据库跨运行保留 | 支持 | 数据存在浏览器内存中,刷新页面即消失 |
| 导入导出 .db 文件 | 不支持 | 无文件系统访问权限 |
| 长时间运行 | 限 10 秒 | 递归 CTE 写错会死循环,超时自动终止 |
注意:超时被强制停止、或手动点「停止」时,数据库会随执行引擎一起被销毁, 表和数据会丢失;刷新页面同理。重要数据请自行复制到本地保存。
常见问题
为什么表不见了 / 提示 no such table?
三种可能:一是还没运行过建表语句;二是点过「重置数据库」;三是上一次运行超时被强制停止过 (数据库随引擎一起销毁了)。重新运行建表语句即可。
字符串该用单引号还是双引号?
SQL 标准里字符串用单引号 '文本',双引号是标识符
(表名、列名)。写 WHERE name = "张三" 在 SQLite 里恰好也能工作,
但那是因为它把双引号当成了标识符做了兼容,换到 MySQL 等数据库就会出错。建议统一用单引号。
查询结果太多会卡住吗?
不会。为免浏览器渲染卡顿,结果表格最多显示 500 行,超出会提示被截断。
建议用 LIMIT 主动限制行数。
数据会被上传吗?
不会。数据库完全运行在你的浏览器内存中,服务器只发送了页面和引擎文件。