Run SQL on a CSV file
Drop files, they become tables, write SQL against them. A real analytical database running in the page, with nothing sent anywhere.
How this works
- Add your files. Drop one or more spreadsheets onto the page.
- Write a query. Reference each file by the table name shown in the sidebar.
- Run it. Results appear below, with the time taken and the number of rows.
- Download. Export the result in any supported format.
What it cannot do
- Only reading from your own loaded files is allowed; statements that would write files, install extensions, or open network connections are refused before they run.
- Sorting or grouping needs to hold much more in memory than filtering does, so the practical file size is smaller for those.
- Previews are limited to a thousand rows by default so a mistyped query cannot lock up the page; exports run without that limit.
Questions
- Which SQL dialect is this?
- DuckDB, compiled to WebAssembly and running inside the page. Window functions, common table expressions, PIVOT, and the usual analytical functions all work.
- How are my files named as tables?
- Each file becomes a table named after it, lowercased and simplified. The sidebar lists the exact names and columns so you can copy them.
- Can I write to my files or reach the network from a query?
- No. Queries are checked before they run and only reading from your own loaded files is permitted. Anything that would write a file or open a connection is refused.
- How large a file can I query?
- Filtering and counting work on files far larger than memory because they stream. Sorting or grouping a very large file needs to hold more at once, and you are warned before that becomes a problem.
- Can I stop a query that is taking too long?
- Yes, at any point, and the page stays usable afterwards. Nothing is left in a broken state.
- Is my file uploaded anywhere?
- No. When you run SQL on a CSV file here, the engine runs inside this page and the browser is told to block outbound connections, so there is no upload to intercept. Any request the Network tab of your developer tools shows while you run SQL on a CSV file is to this site — the engine’s own files — and none carries your data.
Your file is processed in this page and never uploaded — the privacy page shows how to confirm that yourself.