Local SQL Workbench
This workbench queries files in an isolated browser SQLite WASM Worker without uploading them. UTF-8 CSV uses the first row as column names, empty cells as NULL, and all-numeric columns as REAL. SQLite files are loaded into memory without changing the original. One SELECT statement is allowed; rows, output bytes and runtime are capped. EXPLAIN QUERY PLAN is a diagnostic, not a performance guarantee.
Key features
- Open up to three CSV files and one SQLite 3 database locally and inspect schemas
- Execute actual SQLite SELECT, JOIN, GROUP BY, aggregation and ORDER BY
- Inspect EXPLAIN QUERY PLAN steps, result grid and CSV export
- SELECT-only validation, query-only SQLite setting, Worker cancellation and a 3-second execution cap
- 2 MiB per file, 3 MiB total, 5,000 CSV rows, 1,000 result rows and 1 MiB result cap
How to use
- Load the two-table CSV example or choose UTF-8 CSV/SQLite files.
- Review table and column names; CSV table names derive from filenames.
- Enter one SELECT statement and run it; JOIN and GROUP BY can be combined.
- Review results, truncation warnings and the query plan; cancel a running query if needed.
- Download result CSV; cells starting like spreadsheet formulas are escaped as text on export.
Use cases
- JOIN customer and order CSVs to verify totals
- Inspect table structures and selected rows in a local SQLite database
- Export grouped and sorted query results as CSV
- Inspect SCAN/SEARCH plan steps while exploring index usage
Frequently asked questions
Can I run write SQL?
No. Only a single statement starting with SELECT is accepted and SQLite query_only is enabled. The original SQLite file is opened in memory and never saved. Validation alone is not treated as the security boundary; a Worker is also used.
How are CSV column types chosen?
The first row is the header. A column is REAL only when every nonempty value is a finite number; otherwise it is TEXT. Empty cells become NULL. An identifier like 001 can lose leading zeros if inferred numeric, so review the source.
What are the size limits?
Each file is capped at 2 MiB, all files at 3 MiB, up to three CSV files with 5,000 data rows each, one SQLite file, 20 tables and 50 columns. Results stop at 1,000 rows or about 1 MiB and mark truncation. The Worker is terminated after three query seconds, though exact browser memory use is not guaranteed.
Does the plan predict runtime?
No. EXPLAIN QUERY PLAN describes steps such as SCAN and SEARCH. Runtime varies with the device, data and query. The milliseconds shown are one local measurement.
Can I open the CSV in a spreadsheet?
Export prefixes values starting with =, +, -, @, tab or a line break with an apostrophe so they are treated as text. Such cells therefore differ by one character from the original. Check spreadsheet import settings for sensitive data.
Are my files uploaded?
The tool reads selected files in browser memory and queries them in a local Worker. Output files are generated when you download them. Closing the tab discards the session.
Privacy
Selected files and SQL stay in this browser tab’s memory. The tool does not send file contents, queries or results to the server or save them automatically.
Comments & questions