Learn SQL by building, breaking, and fixing queries.
Short explanations, immediate practice. Write real queries against realistic datasets — all running right in your browser. No sign-up, nothing to install.
2
3
4
5
6
7
select p.plant_name, count(*) as orders, sum(oi.quantity * oi.unit_price) as gross_sales from order_items oi join products p on p.product_id = oi.product_id group by 1 order by gross_sales desc limit 5;
| plant_name | orders | gross_sales |
|---|---|---|
| Fiddle-Leaf Fig | 97 | $21,330 |
| Monstera Deliciosa | 142 | $18,640 |
| Snake Plant | 128 | $12,415 |
| Pothos 'Golden' | 210 | $9,870 |
A place to do the work, not just read about it.
Every concept comes with a tool you can pick up and use immediately. Try things, break them, and fix them safely.
The Workbench
Write and run queries against real tables and see results the instant you hit run.
The Toolbox
A concise reference for every clause, operator, and function — searchable when you're stuck.
The Scraps Bin
Broken queries and common mistakes, waiting for you to diagnose and repair them.
Measure Twice
Build safe habits for UPDATE and DELETE — preview every cut before you make it.
From your first SELECT to real reports.
Eleven chapters that build on each other. Start at the beginning, or jump to the skill you need.
Begin Chapter 1 →Realistic, messy-enough data — the kind you actually query at work.
Drop in a CSV and start querying.
The freeform playground reads your own CSV and Parquet files locally. Nothing leaves your browser — it's your shed.