VillageSQL is a drop-in replacement for MySQL with extensions.
All examples on this page work on VillageSQL. Install Now →
What is in it
Sakila holds 16 tables of data. These are the counts on a freshly loaded copy.
You can check any of these counts yourself once the next lesson has loaded
Sakila.
COUNT(*) reports how many rows a table holds:
actor_info, customer_list, film_list, nicer_but_slower_film_list,
sales_by_film_category, sales_by_store and staff_list. No lesson uses
them, but they are there if you want to read how someone else wrote the same
joins.
The tables the lessons lean on
You do not need all 16. A handful carry most of the examples.filmis the workhorse. It has text, numbers, dates and a foreign key, so most ideas can be shown against it alone.languagehas 6 rows, so a query against it prints a complete result you can check by eye.customer,addressandcitychain together through foreign keys, which makes them the natural set for the join lessons.
Where it comes from
Oracle publishes Sakila as a sample database. Its schema file and its data file are covered by the New BSD license, which permits commercial use as long as the notice travels with the files. That notice is reproduced in full in theNOTICE file
of the repository that holds these docs.
The next lesson downloads Sakila from Oracle and loads it into your server.
See also
- Load Sakila — download it and load it into your server
- Normalization in MySQL — why a schema splits data across tables
- Foreign keys in MySQL — the relationships the join lessons follow

