Stage 1 of 9 · 8 lessons · ~2 weeks
Relational thinking and your setup
Learn what tables, keys and relationships are, install your database locally with a GUI and a command-line client, and load a realistic sample database to practise on.
Start: Tables, rows and columnsLessons· one lesson for each topic, in this order
Do this
- Install your database server locally, or in Docker, and note the version, port and admin user.
- Install a GUI client and connect to your server.
- Connect with the command-line client, list tables and run a script file.
- Load a sample database and list its main tables and how they relate.
- Write a script that creates two related tables with primary and foreign keys and inserts a few rows.
- Start a Git repository for every .sql file you write in this roadmap.
Start with· follow one of these
- CourseFreeCS50's Introduction to Databases with SQL
Harvard University · Beginner
Watch Lecture 0 (Querying) for the relational model; it uses SQLite, and the ideas carry straight across
- CourseFreeQuery and modify data with Transact-SQL
Microsoft · Beginner
Start with the Introduction to Transact-SQL module; it sets up a sample database in the browser or locally
Keep handy
Before moving on: Your database running locally, a GUI and the command-line client both connected, a sample database loaded, and a saved script that creates two related tables with keys and a few rows.

Use the free Developer edition to learn and remember it is not licensed for production. On a Mac, run SQL Server in Docker and use VS Code with the MSSQL extension. Learn sqlcmd too, and keep every script you write in Git from day one.