Movie Rentals SQL Practice Dataset
Movies, customers, and rental history for compact join, aggregate, and NULL practice.
- Tables
- 3
- Rows
- 48
- Size
- Small
- Level
- Beginner
- Domain
- Media
- Formats
- CSV · SQL
Download this dataset, free
No account, no email, no attribution required:
dedicated to the public domain under CC0 1.0, so commercial use and
redistribution are fine.
Open it in the browser playground, take the single movie_rentals.sql file to load every table into PostgreSQL, MySQL, SQLite, DuckDB, or SQL Server, or grab the raw CSV files below.
Movie Rentals is a compact three-table dataset for practicing SQL without a large schema getting in the way. The catalog table describes each movie, the customer table identifies renters, and the rental history table links them together with dates and amounts.
Because some rentals have not been returned, the dataset is especially good
for practicing
IS NULL, left joins, Top-N reports, and grouped revenue summaries.
Schema
Join conditions
- rentals.customer_id = customers.customer_id
- rentals.movie_id = movies.movie_id
Schema · Movie Rentals View dataset schema 3 tables
One row per movie in the catalog.
One row per customer.
One row per rental. Movies still out have a null returned_date.
Best for
- Joining rentals to customers and movies.
- Counting, ranking, and summing activity by movie or customer.
- Finding rentals that are still out with IS NULL.
Starter questions
- Which genres produce the most rental revenue?
- Which customers have the most rentals?
- Which movies have not been returned yet?
Practice lessons
More practice datasets
Orders, products, inventory, suppliers, and customers for store-operations SQL practice.
Departments, employees, projects, and assignments, with a reporting line for self-join practice.
Customers, products, orders, line items, payments, and returns at realistic online-retail volume.
Channels, campaigns, ad groups, and two years of daily performance where every metric is a ratio.
Accounts, merchants, and two years of posted transactions with no stored balance to read off.