首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 安裝官方樣本資料庫 Sakila:下載、匯入與驗證全流程

     編輯:MySQL 資料庫相關知識

Sakila 簡介

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

進階用法

  • MySQL Workbench 開啟 .mwb:檔案 → 開啟模型 → 選 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;
    

常見問題

  • 匯入報錯「Unknown storage engine 'InnoDB'」:確認 MySQL 已啟用 InnoDB(預設啟用)
  • 外鍵約束失敗:sakila-schema.sql 必須先於 sakila-data.sql 執行
  • 字元集亂碼:確保連線字元集 SET NAMES utf8mb4,資料庫預設 utf8 相容

小結

Sakila 是學習 MySQL 的標準練兵場:結構豐富、關係完整、資料量適中。兩條匯入指令即可擁有完整業務模型,配合 Workbench 視覺化 ER 圖,極大降低上手門檻。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved