Learn SQL by actually writing it.
Short lessons, immediate practice. Write real queries against realistic data right in your browser. No sign-up, nothing to install, and your progress is saved in this browser. Every exercise runs in the same workbench as the playground.
select c.category_name,
count(*) as products,
round(avg(p.price), 2) as avg_price
from products as p
join categories as c on c.category_id = p.category_id
group by c.category_name
order by products desc, c.category_name Stuck on a query right now?
Three steps, from your first query to a real report.
Pick a lesson
Follow the beginner path from your first SELECT onward. Each lesson is short and focused.
Write a real query
Type SQL in the in-browser workbench and run it against realistic sample data.
See results, get graded
Queries run in your browser, so there is no server to wait on. Each lesson checks your result and tells you what's off.
Realistic data to practice on, free to download.
Small teaching schemas where you can check every row by eye, and larger analytical datasets where the aggregate is the only answer you get. Query them here, or take the files into your own database.
Website Analytics
SmallSessions, pageviews, events, users, and campaigns for funnel and attribution practice.
Banking Transactions
LargeAccounts, merchants, and two years of posted transactions with no stored balance to read off.
Ecommerce Orders
LargeCustomers, products, orders, line items, payments, and returns at realistic online-retail volume.
Every dataset is invented rather than scraped, so it is free for any use, including commercially. See the dataset license. Prefer someone else's data? There is a list of free SQL datasets and sample databases elsewhere.
The beginner path is one clear line.
127 hands-on lessons across 22 chapters, grouped into simple tracks. Start at the top, with no guessing what comes next.
Begin Chapter 1 →