What Is SQLZoo and What Can You Use It For?

Updated

SQLZoo is a free, browser-based SQL learning site. You use it to practice SQL directly against real datasets, working through numbered tutorials that start at SELECT basics and move up to joins, window functions, and self joins. You can start without an account; the site shows an "Anonymous / Not logged in" state with a login option. Use it if you want hands-on query practice rather than video lectures, and if you're comfortable reading short written instructions in English (the site also lists Japanese, Russian, and Chinese language links).

What SQLZoo contains

The site organizes its material into four sections, each with a distinct purpose.

Tutorials: Learn SQL step by step

This is the core of the site — a numbered sequence of interactive lessons, each built around a specific table so you write queries against real data rather than abstract examples.

Step Topic Dataset used
0 SELECT basics Simple starter queries
1 SELECT name Pattern matching
2 SELECT from World World country profile table
3 SELECT from Nobel Nobel Prize winners
4 SELECT within SELECT Subqueries
5 SUM and COUNT Aggregate functions
6 JOIN World Cup 2026 tables
7 More JOIN operations Movie Database (actors to movies)
8 Using Null Teachers and departments
8+ Numeric Examples Survey data and complex calculations
9- Window functions UK general election results
9+ COVID 19 Measuring COVID-19 impact
9 Self join Edinburgh bus routes
10 Tutorial Quizzes Multiple-choice knowledge checks
11 Student Records Creating a database
12 DDL Importing and analysing data in MySQL

The progression matters: step 4 (subqueries) assumes you can already filter rows from step 2, and step 7 (joining actors to movies) assumes the join logic from step 6. Skipping ahead tends to produce queries that run but return the wrong rows, because you won't yet know how the tables relate.

Reference: how to...

A lookup section for syntax and operations you'll need outside the guided lessons:

  • SELECT — reading data from a database
  • CREATE and DROP — creating and removing tables, indexes, and views
  • INSERT and DELETE — adding, changing, and removing records
  • DATE and TIME — working with dates, including adding, subtracting, and formatting
  • Functions — string, logical, and mathematical functions
  • Users — creating users, granting and denying access, inspecting and killing processes
  • Meta Data — finding which tables and columns exist, counting and limiting returned rows
  • SQL Hacks — techniques drawn from the O'Reilly book SQL Hacks
  • Using SQL with PHP on Amazon EC2 — video tutorials for running MySQL, PHP, and Apache on EC2, with simpler instructions aimed at students on module INF08104 at Edinburgh Napier University
  • An introduction to transactions — video tutorials on how sessions interfere with each other and how to prevent it
  • Using SQL with C# — code for connecting to a database

Assessments and Challenges

The site separates "more involved examples for confident users" (assessments) from challenges. These are for testing yourself after the tutorials, not for first learning — attempt them once you can write a join and a subquery without looking anything up.

How to get started

  1. Open sqlzoo.net in a browser. No login is required to begin.
  2. Start at tutorial 0 (SELECT basics) and work in numerical order. Each tutorial page presents a task, an input area for your query, and the result of running it.
  3. When a query returns unexpected output, check the table structure first — the reference section's Meta Data page explains how to list tables and columns.
  4. After finishing the tutorials, use the quizzes (step 10) to check retention, then the assessments and challenges for harder problems.

Expected result: by the end of the tutorial sequence you should be able to write queries that filter, aggregate, join multiple tables, use subqueries, handle nulls, and apply window functions — all against datasets you can inspect.

Common sticking points

  • Table names and columns differ per tutorial. The World, Nobel, and Movie Database tables have different schemas; read the description on each tutorial page before writing a query.
  • JOIN steps are where most learners stall. If step 6 output looks like duplicated or missing rows, the join condition is usually wrong rather than the SELECT list.
  • NULL handling is counterintuitive. Step 8 exists precisely because comparisons with NULL don't behave like ordinary values; don't assume = works there.
  • The reference section is not a course. It's organized by operation, not difficulty, so use it to look things up rather than to learn sequentially.

When SQLZoo is the right choice

Choose SQLZoo if you want free, interactive practice with immediate feedback and a clear difficulty ladder, and you're learning standard SQL syntax for querying. It suits self-directed learners and students supplementing a course. It is less suited to you if you need structured video instruction, certification, or training in a specific vendor's dialect beyond what the tutorials cover — the site's own material is oriented toward MySQL in its DDL and PHP sections, and its transaction and C# pages are video- and code-based supplements rather than full courses.