.db · .sqlite · .sqlite3 · .db3SQLite 在线查看 把 SQLite 数据库文件直接拖进浏览器就能浏览表结构、查看数据、跑 SQL 查询。底层是 sql.js——把官方 SQLite C 代码编译成 WebAssembly,整个 660 KB 包跑在浏览器里,文件不出本地。打开 .db .sqlite .sqlite3 .db3 都行,本质是同一种 SQLite 3.x 格式。
整个工具没有任何后端——文件用 FileReader 读进内存,sql.js 在浏览器里解析,结果渲染到 DOM。可以断网用,也可以在 DevTools Network 面板里看到选完文件后没有任何请求。适合处理敏感数据:客户备份、用户隐私表、内部审计 dump,都不会离开你的电脑。
界面分三块:左侧 schema 树(表/视图/索引 + 行数预估)、右上 SQL 编辑器(CodeMirror 高亮 + Cmd/Ctrl+Enter 运行)、右下结果表(列名 + 行号 + 类型颜色)。点左侧任意表自动填入 SELECT * FROM <table> LIMIT 100 并执行,省去敲样板查询。
第一次打开没有文件可以点 “加载示例库”——一个 users + orders 演示库,包含主键、外键、索引、视图、CHECK 约束、中文文本、各种数据类型,正好用来试 JOIN/GROUP BY/窗口函数等 SQL,或者快速感受工具的整体体验。
SQL 编辑器支持多条语句用分号分隔批量执行。结果区上方有下拉框切换不同语句的输出:SELECT 显示行数据,INSERT/UPDATE/DELETE 显示影响行数。每次执行后 schema 树自动刷新,新建/删除的表立刻出现。
| 格式 | 用途 |
|---|---|
| CSV | 给非技术同事用 Excel 打开(带 UTF-8 BOM,中文不乱码) |
| JSON | 前端 mock 数据 / 喂给后续脚本 |
| INSERT SQL | 把查询结果搬到另一个数据库(标准 SQL,跨引擎可用) |
| TSV(剪贴板) | “复制”按钮直接拷到 Excel/Numbers,列对齐 |
| 下载 DB | 把当前内存中的数据库(含你的修改)导出为新 .db 文件 |
单库建议 500 MB 以内,1 GB+ 会因为浏览器内存上限变卡或失败。SQLCipher/SEE 加密库不支持——这是默认 sql.js 构建的限制,需要带加密扩展的特殊构建。单条 SELECT 结果在内存中最多保留 100,000 行(更多会被截断并明确提示),DOM 表格只渲染前 5,000 行避免卡顿;导出 CSV/JSON/INSERT 会包含全部已加载行。需要超过 10 万行的完整导出请用 LIMIT/OFFSET 分页。
完全不会。SQLite 引擎被编译成 WebAssembly 跑在你浏览器里(约 660 KB),文件用 FileReader 读到内存就开始解析,整个过程没有任何网络请求。可以断网用,也可以打开 DevTools 的 Network 面板自行验证——选完文件后只有 wasm 文件本身的一次加载。
所有 SQLite 3.x 数据库文件,常见后缀 .db .sqlite .sqlite3 .db3,本质都是同一种格式。不支持 MySQL .sql dump、PostgreSQL pg_dump 输出、Access .mdb、SQL Server .bak——这些是另外的数据库引擎,需要对应的工具。如果文件是加密的(SQLCipher/SEE),sql.js 默认构建不支持,会报"file is not a database"。
500 MB 以内比较稳定,1 GB 以上会卡。原因是 sql.js 把整个数据库读进内存(V8/SpiderMonkey 单页堆上限大约 2-4 GB),再加上 Uint8Array 解析时的临时占用。如果文件过大,建议先用本地的 sqlite3 dump.db ".dump" 拆出感兴趣的表再上传,或者直接用本地 sqlite3 CLI / DB Browser for SQLite。
可以。INSERT/UPDATE/DELETE/CREATE/DROP 在内存中的数据库上完全可执行,状态栏会显示影响行数。改完点工具栏的"下载 DB"把内存里的库导出成新的 .db 文件——原文件不会被改动,下载的是修改后的副本,符合"本地不上传"的设定。
[BLOB 1234B]?二进制大对象(图片、文件、加密 blob)原样显示会乱码且拖卡浏览器,所以表格里只显示长度。导出策略:CSV 跳过 BLOB(写空),JSON 转成 {"$blob_base64": "..."},SQL INSERT 输出 X' 十六进制字面量(标准 SQLite 语法)。要还原原始字节优选 JSON 导出后程序解码。
可以。用分号分隔多条语句,按顺序执行,结果上方下拉框可以切看每一条的输出。SELECT 返回行数据,DML(INSERT/UPDATE/DELETE)显示"X 行受影响"。注意只看最后一条 SELECT 时可以直接导出,要导出中间结果先在下拉框里切到对应那条。
SQLite 全量语法:CTE(WITH)、窗口函数(ROW_NUMBER/RANK/LEAD/LAG)、JSON 函数(json_extract/json_each)、FTS5 全文检索、PRAGMA、触发器、视图、虚表等。版本对应 SQLite 3.40+,比 MySQL/Oracle 更轻量但语法很完整。不支持:MySQL 特有的 LIMIT 5,10 兼容写法(请用 LIMIT 10 OFFSET 5)、PostgreSQL 的 RETURNING *(SQLite 3.35+ 已支持,但部分老语法差异需注意)。ATTACH DATABASE 见下条。
不建议在本工具里用。ATTACH DATABASE 语句本身能跑通,但浏览器没有真实文件系统,sql.js 只能附加 :memory: 临时库(ATTACH ':memory:' AS aux),用完即失。而且本工具的左侧树/SQL 补全只读主库的 sqlite_master,附加库的表不会显示;「下载 DB」也只保存主库的 db.export() 字节,附加库里的所有数据不会被一起导出。如果检测到附加库会有黄色提示条说明这些限制。如需多库联查,建议把数据合并到同一个 .db 文件再加载。