run real SQL on CSV and JSON files - no database server
Joins, GROUP BY, aggregates, ORDER BY over your files, powered by SQLite compiled to WebAssembly inside your browser. Drop two CSVs and join them; drop a .sqlite file and every table plus its foreign keys comes in. A read-only console takes raw SELECTs.
how to use it
- Drop a
.csv, or a .sqlite file - a database brings all of its tables and foreign keys in at once.
- Drop more files anywhere to add them as further tables.
- Open the ⌧ relationship map and click an edge to build a join - or filter, group, sort, and write raw SELECTs directly.
- Export the result as csv or json, or the whole database as
.sqlite.
- Visual steps (join, filter, pick, aggregate, sort) compile to one SQL chain you can inspect.
- A relationship map shows explicit foreign keys and discovered key matches between tables.
- Exports run the query over the full data: CSV, JSON, NDJSON, or a real .sqlite database.
- The engine loads on demand - the page itself stays light until you open it.
- The result scrolls in full, not a first page of it, with the real row numbers - row 4,821,006 says so. Nothing is copied until you scroll past the first page, and then paging is a seek rather than a re-sort.
- Full-text search over a text column: the first search builds the index, and every one after it is effectively instant - whole words,
err* prefixes, "read timeout" phrases, and AND/OR/NOT. It is a real step in the chain, so you can filter, group, and export on top of it.
- Tables are immutable snapshots and every transform is a view over them, so nothing you do here can damage the file you dropped. The database is disk-backed (OPFS), which is why bigger-than-RAM data works.
- Every join measured first: the relationship map counts how many values actually match on each candidate join - and whether the far side is unique - so you see "99% match" or "multiplies rows 3x" before you build it, not after your totals look wrong.
- Try it without a file: one click loads a real 11-table sample database, and the relationship map measures all 13 candidate joins before you build any of them.
"CSV" is a loose term here, and paste means paste anything: TSV, semicolon and pipe delimited files, ranges copied from Excel or Google Sheets, SQL client result grids, even tables copied off a web page (they arrive tab-separated) - the delimiter is detected automatically. One delimiter is chosen for the whole file; if a column turns out to carry its own separator inside it, click that column's header and choose split at delimiter to break it into real columns.
every tool in the box
- data workbench - profile, clean, transform, and export CSV, JSON, and SQLite - the full suite
- JSON flattener - nested JSON or NDJSON to flat columns, arrays and objects unrolled
- CSV PII scrubber - find emails, phones, SSNs, and card numbers - mask, hash, or drop them
- JSON to CSV - convert JSON or NDJSON to CSV with full column control
- CSV to JSON - convert CSV to JSON or NDJSON, streamed at any size
- Excel to CSV - read .xlsx workbooks and export CSV, sheets and all
- CSV to Excel - write a real .xlsx where leading zeros and dates survive
- SQL on CSV - real SQL over your files: joins, GROUP BY, a read-only console (this page)
- CSV to SQLite - drop several files, get one .sqlite database with discovered foreign keys
- CSV to SQL - CREATE TABLE and INSERT statements for Postgres, MySQL, SQL Server, SQLite
- JSON to TypeScript - TypeScript interfaces and JSON Schema derived from your real data
- large CSV viewer - open files past Excel's 1,048,576-row limit without loading them into RAM
- regex painter - highlight example matches, get a verified regular expression back
- encoding fixer - detect windows-1252/UTF-16 and repair garbled text (José → José)
- log parser - read log files as events: layouts detected, stack traces kept whole, timestamps normalized, and a volume-over-time strip drawn in SQL across every row
- visualize - chart any table you have open - bar, line, area or point - drag across it to filter, and export svg, png, or the vega-lite spec that drew it
- theme builder - design, test, and export custom color themes with live previews, palette derivation, and contrast diagnostics
Like every unfckr tool, this runs 100% in your browser: no upload, no servers, no signup, no analytics. A Content-Security-Policy header blocks every programmatic network channel, so not even malicious code could phone home - and you can watch it happen: the privacy page runs six live escape attempts and shows the browser refusing each one.
↑ back to the tool