SQL roadmap
Ask precise questions of relational data, change it safely, and design tables that stay correct.
At a glance
- Stages5
- Steps20
- Core steps15
- Optional or alternative5
- Linked courses1
How to use this roadmap
Work through the stages in order. Core steps are the ones everyone on this path needs; optional steps add depth when you have time, and alternatives are other ways to the same skill, so pick one. Steps with a course link to a free course from LearnerMap Academy.
Members of LearnerMap Academy can mark each step as learning, done or skipped, and see how far along the path they are.
Querying basics
The relational model
CoreThink in tables, rows, columns and keys, and why each row should be identifiable.
SELECT and WHERE
CoreChoose columns, filter rows and combine conditions.
Sorting and limiting
CoreOrder results deterministically and page through them.
Working with NULL
CoreHandle missing values without surprises in comparisons and counts.
Combining data
Joins
CoreCombine tables with inner and outer joins, and spot accidental row multiplication.
Joins between tables (PostgreSQL)Table expressions (PostgreSQL)
Aggregates and grouping
CoreSummarise rows with counts, sums and averages per group.
Aggregate functions tutorial (PostgreSQL)Aggregate functions reference (PostgreSQL)
Subqueries
CoreUse a query inside another to filter or compute values.
Set operations
OptionalCombine result sets with UNION, INTERSECT and EXCEPT.
Changing data
Insert, update and delete
CoreChange rows precisely, and preview what a statement will touch before running it.
Upserts
OptionalInsert a row or update the existing one in a single statement.
Transactions
CoreMake several changes succeed or fail together.
Designing schemas
Tables and data types
CorePick types that fit the data and reject nonsense early.
Keys and constraints
CoreLet the database enforce uniqueness, references and rules.
Normalisation
CoreStore each fact once so updates cannot contradict each other.
Views
OptionalName a query so others can reuse it like a table.
Going further
Window functions
CoreRank, run totals and compare rows with their neighbours without collapsing them.
Window functions tutorial (PostgreSQL)Window functions reference (PostgreSQL)
Common table expressions
CoreBreak a complex query into named steps, including recursive ones.
Indexes and EXPLAIN
CoreSee how the database runs a query and give it the index it needs.
JSON columns
OptionalQuery semi-structured data stored alongside regular columns.
Stored procedures
AlternativeRun logic inside the database when round trips are the bottleneck.
Learning with LearnerMap Academy
LearnerMap Academy runs its learning on LearnerMap, a free platform for organisations. Every course here is free for members of LearnerMap Academy: sign in with the email address LearnerMap Academy knows you by, or with a passkey, and the course opens in your own plan.
Your plan holds at most 3 courses in progress at a time, so you finish what you start before pulling in the next one. Lessons open in order, your progress is saved as you complete each one, and every course ends with a quiz; passing it adds a certificate to your record.
Not a member yet? Ask LearnerMap Academy to invite you. Lesson content, quizzes and everyone’s progress stay private to members; these public pages show only what LearnerMap Academy chose to publish.