By Michael Nocito, data analyst · Published August 8, 2026 By the end of this page you will have a real database sitting on your own computer, with 11 tables, 3,503 tracks and 412 customer invoices in it, and you will have run a query that proves every table arrived intact.
Then you will run a join across two of those tables, which is the thing a single spreadsheet can never teach you.
It takes about five minutes and costs nothing.
Here is what to actually do today.
Download the Chinook database file, open it in DB Browser for SQLite, and run one query that counts the rows in every table.
If the counts match the ones printed below, you have a working practice environment and you can stop shopping for one.
The short version: get , open it, count the rows, then join two tables.
Northwind and Sakila are the other two names you will see, and there is a table further down saying when each is the right pick.
The reason a sample database beats the CSV you already have is one idea, so it gets the picture.
The original carries a diagram here.
In words: Two panels side by side.
The left panel holds a single grid of rows and columns, standing alone with nothing attached to it.
The right panel holds four smaller grids arranged around each other.
A highlighted column at the edge of each small grid is joined by a solid line to a matching highlighted column on a neighbouring grid, so all four grids are wired together into a connected shape.
The left panel has no lines at all, because there is nothing for a line to reach.
Every number on this page is real.
I downloaded Chinook v1.4.5 and Northwind on 8 August 2026 and ran each query with SQLite 3.51.1.
The counts, the outputs and the row multiplication are what came back, not what should have come back.
If you have no database software at all yet, how to set up a SQL database is the fifteen-minute version of that step, and this page picks up right after it.
1.
Why one CSV is not enough Before the explanation: think of the last spreadsheet you worked in.
What question about it could you not answer without a second file open beside it?
Almost every SQL exercise you can practise on one file is a filter, a sort, or a total.
Those are real skills and you will exhaust them in an afternoon.
The skills that get tested in interviews and used every day at work are joins, grains, and reconciliation, and every one of them needs at least two tables that refer to each other.
A sample database is a single file containing many tables that already refer to each other correctly.
Somebody has done the work of making customer 14 in one table be the same customer 14 in another.
That wiring is the practice material.
You are not downloading data so much as downloading relationships.
2.
Get Chinook, the one to start with Chinook is a made-up digital music store: artists, albums, tracks, customers, invoices, and the staff who sold them.
It is the best beginner pick because it arrives as one ready-made SQLite file.
There is no server, no script to run, and no import step that can go wrong.
Download this file and put it somewhere you can find again, like your Documents folder.
It is about 1 MB.
Right-click the link and choose Save link as, or paste it into your browser's address bar.
The file extension is , and you may also see or used elsewhere for the same kind of file.
SQLite does not care which of the three you use; they are all just a name.
Ignore the other file in that release, .
That one is a script of instructions for building the database rather than the database itself, and running it is a step you do not need today.
3.
Open it, and the query that proves it loaded Before the explanation: you are about to run a query that returns 8 rows.
What could that result show you that simply seeing the file on disk cannot?
Open DB Browser for SQLite, choose Open Database, and pick the file you just downloaded.
You should see a list of tables down the left: Album, Artist, Customer, Employee, Genre, Invoice, InvoiceLine, M