A workshop for practical SQL

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.

Runs in your browser Powered by DuckDB Private by default
garden_shop · workbench.sql
DuckDB
1
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;
5 rows · 12 ms ✓ ran clean
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
SELECT · WHERE · JOIN · GROUP BY · CASE · COALESCE · WINDOW 11 chapters · 60+ exercises · 4 datasets
Inside the shed

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.

The learning path

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 →
01
Welcome to the Shed
What SQL is · the workbench · your first SELECT
done
02
Data Types Before Deep Querying
Numbers · strings · dates · booleans · nulls
03
Select, Filter, and Sort
WHERE · AND/OR · IN · BETWEEN · LIKE · ORDER BY
04
Aggregations and Grouping
COUNT · SUM · AVG · GROUP BY · HAVING
05
Joins
INNER · LEFT · multiplication · anti-joins
+ 6 more chapters · CASE logic, DML safety, debugging, analytics
Practice datasets

Realistic, messy-enough data — the kind you actually query at work.

8 tables
Garden Shop
Orders, customers, products & inventory.
6 tables
Movie Rentals
Rentals, customers, payments & stores.
5 tables
Website Analytics
Sessions, events, users & campaigns.
5 tables
City Services
Requests, departments & inspections.
Bring your own data

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.

· stays local· no upload· export results
drag a .csv or .parquet file here

Measure twice. Query once. Start in the shed today.

Start learning →