UTILS.
100% 浏览器内运行

用 SQL 查询 CSV

加载 CSV 并对其运行真正的 SQL(SELECT、WHERE、GROUP BY、JOIN)——全程在浏览器中完成。

该工具会在首次使用时加载其引擎,因此没有可离线下载的副本——但它仍在你的浏览器中私密运行,不会上传任何内容。

关于此工具

本工具将 CSV 加载到一个真正的内存 SQLite 数据库中,让你对其运行地道的 SQL——SELECT、WHERE、ORDER BY、GROUP BY,SUM、COUNT 等聚合函数,以及子查询和自连接,都能像在数据库中一样精确工作。它由编译为 WebAssembly 的官方 SQLite 驱动,因此查询引擎是货真价实的,而非某种局部重实现。

没有任何内容会被上传。SQLite 引擎和你的 CSV 绝不会离开设备——整个数据库都存在于浏览器标签页的内存中,关闭时即消失。这使它成为探索导出数据、销售数据、日志或任何你不愿粘贴到在线数据库的电子表格的安全草稿区。由于它使用官方的免 eval SQLite 构建,因此在 sql.js 之类工具被拦截的严格安全策略下也能运行。

列名取自表头行并被清理为合法的标识符;每个值都以文本形式存储,因此当你需要做算术时,请在查询中转换为数字(例如 CAST(price AS REAL))。结果会渲染为一张表格,你可将其下载为 CSV。

常见问题

我的 CSV 或查询会被上传到某处吗?
不会。SQLite 引擎完全通过 WebAssembly 在浏览器内运行,数据库仅保存在内存中。你的 CSV、SQL 和结果绝不会离开设备,关闭标签页后即消失。
支持哪些 SQL 和文件格式?
输入为 CSV(以逗号、分号、制表符或竖线分隔)。引擎是真正的 SQLite,因此支持标准的 SELECT 查询——WHERE、ORDER BY、GROUP BY、HAVING、LIMIT、聚合、子查询和连接。加载 CSV 会创建一张全新的表,因此这并非有损的重新编码;它只是把你的值读入数据库。
为什么数值比较表现得像文本?
每一列都以 TEXT 存储,因此不会猜测或丢失任何内容,这意味着 SQLite 会把它们当作字符串来排序和比较。需要真正的数字时请在查询中转换——例如 ORDER BY CAST(price AS REAL) DESC 或 WHERE CAST(qty AS INTEGER) > 100。
列名和表名是如何确定的?
列名来自表头行(开启表头复选框时),会被清理为合法的 SQL 标识符并对冲突去重;没有表头时则变为 col1、col2 等。表名默认为 t,可在加载 CSV 前更改。

更多工具