In-Browser SQL & CSV Query Sandbox
A genuine SQLite engine — the official sqlite.org WebAssembly build — running entirely in your browser. Import CSV data, write real SQL (JOIN, GROUP BY, aggregates), export results. Nothing is uploaded, ever.
1 · Load data
2 · Query it
This is the real thing: the official SQLite WebAssembly build (public domain, sqlite.org), compiled for your browser and running in-memory. The engine (~850 KB WASM) loads lazily when you first run a query, so opening this page stays fast. Your CSVs and queries never leave this tab — there is no server-side component, no upload path, and no account. The database resets when you reload the page.
What this sandbox is
A real SQLite database — the official sqlite.org WebAssembly build, the same engine compiled for the browser that runs inside your phone — holding your tables in memory inside this tab. Import CSV data, join it, aggregate it, export the results, with the SQL surface SQLite actually offers: SELECT with JOIN, GROUP BY, window functions, CTEs. It exists so that trying a query costs nothing: no install, no server, no signup, no risk to any real database.
How to use it
- Load data: press Load sample dataset for two ready tables (departments and employees), import a CSV file, or paste CSV text and name the table.
- Write SQL in the query box — the example picker loads runnable queries against the sample data.
- Press Run query. Errors come back verbatim from SQLite itself, which is the point: real engine, real error messages.
- Export any result set as CSV with the export button.
Where your data goes
The privacy card above covers the short version: nothing is uploaded, ever. The mechanics, for the skeptical: your CSV is read with the browser's File API and parsed in the tab; queries run against the in-memory engine; the export button builds the file locally as a Blob. The only network traffic this page can generate is fetching the engine binary itself from this site, lazily, on your first query — about 850 KB, one time.
Who it's for
People learning SQL who want a live engine with real errors instead of a quiz app; developers testing a query shape against realistic data before running it somewhere it matters; analysts with a CSV and a question who would otherwise spin up a whole database for a five-minute answer; and anyone preparing for an interview or teaching a class — the sample dataset is deliberately joinable.
Honest limits
- In-memory means impermanent. Reload the page and the database is rebuilt empty. No persistence, no save, no account — by design.
- You are bound by tab memory. This is a sandbox for thousands of rows, not a data warehouse; a multi-gigabyte CSV will not end well.
- It is SQLite's dialect. Queries written for PostgreSQL or MySQL — their functions, upsert syntax, types — may behave differently here, which is worth knowing before you assume portability.
- Imports expect a header row. The CSV parser treats row one as column names; headerless files will misbehave.
Questions people ask
How large a CSV can I import?
Anything your tab can hold in memory. Thousands of rows are instant; a few hundred thousand work on a reasonable machine; multi-gigabyte files will not end well. The import status line reports exactly how many rows landed.
Is it really full SQL — can I create tables and indexes?
Yes. The engine is SQLite, so CREATE TABLE, CREATE INDEX, INSERT, UPDATE, DELETE, views, CTEs, and window functions all work. It is a full database, not a SELECT-only demo — the only limit is that none of it survives a reload.
Back to the tools directory.