SQL Sandbox
Your own tables, any query, every step visualized. Runs in your browser.SQL query
Run a query to see each step here.
How the SQL sandbox works
Paste JSON or CSV, create tables, and watch every clause of your query transform the data. Everything runs in your browser.
- Add tables. Paste JSON or CSV, upload a file, or start from a sample dataset. Column types are detected for you.
- Write a query. Joins, GROUP BY, CTEs and window functions all work, in MySQL 8 or PostgreSQL.
- Watch it run. The visualizer shows which rows each step keeps, removes or groups, and its last step is your result.
New to a clause? Read the SQL lessons, then try interview practice questions.
Questions people ask
- What data can I use?
- Paste a JSON array of rows, such as [{"id": 1, "name": "Asha"}], or CSV / TSV with a header row (straight from Excel or Google Sheets), or upload a .json or .csv file. An object like {"orders": [...], "customers": [...]} creates several tables at once. Column types (INT, DECIMAL, TEXT, DATE, TIMESTAMP, BOOLEAN) are detected automatically and can be changed before you create the table.
- Is my data uploaded anywhere?
- No. Tables and queries run in your browser and are saved only in this browser, so you can come back to them later. Nothing you paste is sent to SQLQuokka. Share creates a link that holds the tables and query inside the link itself, so only people you give it to can open them.
- Which SQL dialects are supported?
- MySQL 8 and PostgreSQL. Switch with the dialect menu at the top; table and column names are cleaned to lower-case snake_case so the same query works in both.
- Are there any limits?
- Up to 10 tables and 5,000 rows per table, with 2 MB of JSON or CSV per paste or file. Queries are read-only: use SELECT, joins, CTEs and window functions; to change the data, edit the table.
Add a table
You can also drop a .json or .csv file here.