By the end
What you'll build
- Explain why one table per kind of thing beats one wide sheet, and name the three anomalies it prevents
- Write SELECT queries with explicit column lists, computed columns and aliases
- Filter rows precisely with comparison operators, bracketed AND/OR/NOT, IN, BETWEEN and LIKE
- Find and handle missing data with IS NULL and COALESCE, and explain why = NULL silently returns nothing
- Sort and page results with ORDER BY, LIMIT and a unique tie-breaker so answers are repeatable
- Summarise data with COUNT, SUM, AVG, MIN and MAX, and choose correctly between COUNT(*) and COUNT(column)
- Group rows with GROUP BY, apply the rule about what may sit beside it, and filter groups with HAVING
- Join tables with INNER and LEFT JOIN, write an anti-join, join a table to itself, and spot an accidental cross join
- Restructure a nested query into a readable CTE and label rows with CASE WHEN
- Change data with INSERT, UPDATE and DELETE inside a transaction, writing the WHERE clause first
- Judge a table design against third normal form and decide when to denormalise on purpose
- Choose useful indexes and read a query plan well enough to tell a full scan from an indexed search
The shape of it
How this course works
Short lessons
48 lessons across 7 modules, each small enough to finish in one sitting.
Practice as you go
Every lesson ends with a small space for what you noticed — the doing is the learning.
A certificate at the end
Finish the course and earn a certificate anyone can verify with a link.
Ready when you are.
Make an account and this course opens up — your progress is saved from the very first lesson.
