⭐ 觉得好用?收藏备用,下次直接打开
🗄️
拖拽 SQLite 文件到此处
支持 .db · .sqlite · .sqlite3 · .db3
🔒 文件仅在浏览器本地解析,不上传任何服务器

SQLite 在线查看 把 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 分页。

📍使用场景

  • 排查线上 .db 文件客户/运营反馈的 SQLite 备份直接拖进浏览器,几秒钟看到表结构和数据,不用装 DB Browser。
  • 看 App 本地数据库从手机或 Electron 应用导出的 sqlite 文件想确认表里到底存了什么字段,临时开一个看。
  • SQL 练手学 SQL 时点"加载示例库"得到 users/orders 两张表,立刻试 JOIN、GROUP BY、窗口函数。
  • 数据导出 CSV/JSON写一条 SELECT 把需要的字段筛出来,一键导出 CSV 给运营,或导出 JSON 给前端 mock。

常见问题

文件会上传到服务器吗?

完全不会。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 字段显示成 [BLOB 1234B]

二进制大对象(图片、文件、加密 blob)原样显示会乱码且拖卡浏览器,所以表格里只显示长度。导出策略:CSV 跳过 BLOB(写空),JSON 转成 {"$blob_base64": "..."},SQL INSERT 输出 X' 十六进制字面量(标准 SQLite 语法)。要还原原始字节优选 JSON 导出后程序解码。

多条 SQL 能一起跑吗?

可以。用分号分隔多条语句,按顺序执行,结果上方下拉框可以切看每一条的输出。SELECT 返回行数据,DML(INSERT/UPDATE/DELETE)显示"X 行受影响"。注意只看最后一条 SELECT 时可以直接导出,要导出中间结果先在下拉框里切到对应那条。

支持哪些 SQL 语法?

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 加载多个文件吗?

不建议在本工具里用ATTACH DATABASE 语句本身能跑通,但浏览器没有真实文件系统,sql.js 只能附加 :memory: 临时库(ATTACH ':memory:' AS aux),用完即失。而且本工具的左侧树/SQL 补全只读主库的 sqlite_master,附加库的表不会显示;「下载 DB」也只保存主库的 db.export() 字节,附加库里的所有数据不会被一起导出。如果检测到附加库会有黄色提示条说明这些限制。如需多库联查,建议把数据合并到同一个 .db 文件再加载。