workshop.institute
15 lessons · 3 phases

Intro to SQL

Learn to query a real dataset in SQL — 15 short lessons against the Chinook digital music store.

One install command.
Jump to install Signed in as your account.

What you'll build

curriculum

15 lessons across 3 phases.

phase A · Reading data 7 lessons
  1. 01
    Setup + first SELECT lesson_setup

    Open Chinook, write your first query, and see rows come back.

  2. 02
    Picking columns + aliases lesson_columns

    Stop using `*`. Pick the columns you actually want and rename one with `as`.

  3. 03
    WHERE filtering lesson_where

    Stop pulling every row. Filter to just the ones you want with `where`.

  4. 04
    NULL handling lesson_nulls

    Find rows where data is missing — and learn why `= null` doesn't work.

  5. 05
    ORDER BY + LIMIT lesson_order-limit

    Sort rows deliberately, then take the top N.

  6. 06
    DISTINCT lesson_distinct

    Collapse duplicate values down to the unique set with `distinct`.

  7. 07
    Pattern matching with LIKE lesson_like

    Find rows by partial string match using `%` and `_` wildcards.

phase B · Summarizing data 3 lessons
  1. 08
    Aggregates lesson_aggregates

    Collapse many rows into one summary row with count, sum, avg, min, max.

  2. 09
    GROUP BY lesson_group-by

    Roll up aggregates per category — one summary row per group.

  3. 10
    HAVING lesson_having

    Filter grouped rows themselves — `where` runs before aggregation, `having` runs after.

phase C · Combining + capstone 5 lessons
  1. 11
    Two-table INNER JOIN lesson_inner-join

    Combine `Customer` and `Invoice` on a matching column — the moment a question spans two tables.

  2. 12
    LEFT JOIN — finding what's missing lesson_left-join

    Use LEFT JOIN to keep every row from the left table, then filter for NULLs to find rows with no match on the right.

  3. 13
    Multi-table JOIN lesson_multi-join

    Chain three or more tables with a sequence of INNER JOINs, each linking to the previous one through a foreign key.

  4. 14
    Subqueries lesson_subqueries

    Run a query inside another query — use `in (select …)` to filter one table by a list of values another query produced.

  5. 15
    Capstone lesson_capstone

    Five real business questions, no per-step scaffolding. Verify gates on question 1 (top 5 genres by revenue); the other four are yours to write and check in sqlite3.

prerequisites

What you need before you start.

Terminal comfort
You can cd into a directory, run commands, and edit a file in an editor.
Node 22+ and pnpm
Installed by the workshop entry skill if missing. No prior Node experience needed.
SQLite CLI
Preinstalled on macOS. One-line install on Linux/Windows; the workshop walks you through it.
install

Two lines to start.

Run the first in your shell. Run the second from inside Claude Code, in plain English.

First time here? You'll need the lwc CLI and the Claude Code plugin installed once before the two lines below will work. Full walkthrough →

~/lwc claude
> set up the sql intro workshop

Sign in or get started

Enter your email — we'll send you a 6-digit code. New here? An account is created automatically.