Sakila 是 MySQL 官方提供的樣本資料庫,模擬 DVD 出租業務,包含 16 張表、視圖、存儲過程、觸發器、外鍵關係,適合學習 SQL、效能調優、工具測試。需 MySQL 5.0+。
# 官網下載頁:https://dev.mysql.com/doc/index-other.html
wget https://downloads.mysql.com/docs/sakila-db.zip
unzip sakila-db.zip
cd sakila-db
ls
# sakila-schema.sql sakila-data.sql sakila.mwb
# 1. 匯入結構(表、視圖、SP、Trigger)
mysql -uroot -p < sakila-schema.sql
# 2. 匯入資料(含觸發器需在資料載入後建立)
mysql -uroot -p < sakila-data.sql
mysql -uroot -p
SHOW DATABASES;
-- 應見 sakila
USE sakila;
SHOW TABLES;
-- 23 張表:actor, film, customer, rental, payment, inventory, store, staff 等
SELECT COUNT(*) FROM customer; -- 599
SELECT COUNT(*) FROM film; -- 1000
SELECT COUNT(*) FROM rental; -- 16044
sakila.mwb,視覺化 ER 圖sysbench --db-driver=mysql --tables=16 --table-size=10000 ... 可用 Sakila 結構生成更大資料集
-- 多表 JOIN 查詢客戶租片記錄
SELECT c.first_name, c.last_name, f.title, r.rental_date
FROM customer c
JOIN rental r ON c.customer_id = r.customer_id
JOIN inventory i ON r.inventory_id = i.inventory_id
JOIN film f ON i.film_id = f.film_id
WHERE c.customer_id = 1
ORDER BY r.rental_date DESC;
sakila-schema.sql 必須先於 sakila-data.sql 執行SET NAMES utf8mb4,資料庫預設 utf8 相容Sakila 是學習 MySQL 的標準練兵場:結構豐富、關係完整、資料量適中。兩條匯入指令即可擁有完整業務模型,配合 Workbench 視覺化 ER 圖,極大降低上手門檻。