Welcome to Going further with MySQL. It assumes you have worked through An introduction to MySQL and are comfortable with databases, tables, CRUD, SELECT with WHERE, basic JOINs, keys, GROUP BY, and subqueries at a simple level.
The beginner series gave you the vocabulary. These tutorials are about using MySQL on real projects: modelling domains before you create tables, writing queries that stay readable as they grow, protecting data with constraints and transactions, and building habits around migrations, backups, and performance that you would trust in production.
We start with domain modelling and normalisation – the thinking you do on paper before CREATE TABLE. From there we cover index strategy, JOIN patterns you will use every week, and when to reach for subqueries, JOINs, or CTEs. Transactions, constraints, views, and stored routines get practical treatment rather than encyclopaedic coverage.
Later tutorials cover EXPLAIN, migration habits, and backup drills that are worth running before you need them. Where the intro series already explains something clearly, we will link back rather than repeat it.
You need a MySQL server for the examples – local install, Docker, or a hosted instance. Use whatever client you like: the MySQL command line, MySQL Workbench, DBeaver, or a VS Code extension. The SQL is the same.
These tutorials end with a mini project: design a schema for a blog, shop, or booking domain, then write reporting queries against it. By then you should be able to look at a brief, sketch entities and relationships, implement a sensible schema, and answer business questions without turning every report into a tangle of nested subqueries.
Work through the tutorials in order when you can. Each one builds on the last. If something from the intro series feels rusty – especially JOINs or keys – revisit that lesson first.
14 tutorials in this topic
- Modelling real domains – entities and relationships on paper first
- Normalisation in practice (and when to denormalise lightly)
- Index strategy beyond add a key
- JOIN patterns you will meet weekly
- Subqueries vs JOINs vs CTEs
- Transactions and isolation (practical level)
- Constraints that protect you – FK, UNIQUE, CHECK
- Views for clarity
- Stored routines – when they are worth it
- EXPLAIN and reading query plans without fear
- Migration habits – changing schema safely
- Backup and restore drills you would trust
- Mini project: schema for a blog, shop, or booking domain
- Mini project: reporting queries for that schema
