[MySQL] sakila サンプルデータベースを macOS に導入する

この記事でやること

MySQL の動作確認ができたあと、実際にテーブルやデータを触ってみたい場面は多い。

そのときに便利なのが、MySQL 公式のサンプルデータベース sakila

この記事では、macOS の MySQL 環境に sakila を導入し、SHOW TABLESSELECT COUNT(*) で確認できるところまでまとめる。

対象は以下。

  • macOS
  • MySQL が起動していてログインできる環境
  • 学習用にサンプルデータベースを入れたい場合

sakila とは

sakila は MySQL 公式が配布している学習用サンプルデータベース。

映画レンタル店をモチーフにしたデータが入っていて、次のような練習に使いやすい。

  • SELECT の基本
  • JOIN
  • 集計
  • WHERE
  • ORDER BY
  • GROUP BY

公式配布元

ダウンロード元は MySQL 公式のサンプルページ。

展開後に使う主なファイルは次の2つ。

  • sakila-schema.sql
  • sakila-data.sql

ファイルをダウンロードして展開する

まずはブラウザなどで sakila の配布ファイルをダウンロードする。

zip を使うなら、展開は次のようになる。

ダウンロードフォルダへ移動する:

cd ~/Downloads

zip ファイルを展開する:

unzip sakila-db.zip

tgz 形式の場合はこちら。

tgz ファイルを展開する:

tar xzf sakila-db.tar.gz

展開後、sakila-schema.sqlsakila-data.sql が見える状態にしておく。

MySQL にログインする

SOURCE コマンドを使うため、先に MySQL に入る。

MySQL にログインする:

mysql -u root -p
# 実行結果
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
...
mysql>

schema を読み込む

まずはテーブル定義やビュー定義を入れる。

schema を読み込む:

SOURCE ~/Downloads/sakila-db/sakila-schema.sql;
info

パスは実際の展開先に合わせて読み替える。~/Downloads/sakila-db/ 以外に展開した場合は、そのパスを指定する。

data を読み込む

次にサンプルデータ本体を入れる。

data を読み込む:

SOURCE ~/Downloads/sakila-db/sakila-data.sql;

これで sakila データベースと、その中のテーブルやビュー、サンプルデータが使えるようになる。

読み込み後に確認する

まず sakila データベースへ移動する。

sakila を使う:

USE sakila;
# 実行結果
Database changed

テーブル一覧を確認する

テーブル一覧を確認する:

SHOW TABLES;

テーブルとビューの区別まで見たい場合はこちら。

テーブルとビューを含めて確認する:

SHOW FULL TABLES;
# 実行結果
+----------------------------+------------+
| Tables_in_sakila           | Table_type |
+----------------------------+------------+
| actor                      | BASE TABLE |
| actor_info                 | VIEW       |
| address                    | BASE TABLE |
| category                   | BASE TABLE |
| city                       | BASE TABLE |
| country                    | BASE TABLE |
| customer                   | BASE TABLE |
| customer_list              | VIEW       |
| film                       | BASE TABLE |
| film_actor                 | BASE TABLE |
| film_category              | BASE TABLE |
| film_list                  | VIEW       |
| film_text                  | BASE TABLE |
| inventory                  | BASE TABLE |
| language                   | BASE TABLE |
| nicer_but_slower_film_list | VIEW       |
| payment                    | BASE TABLE |
| rental                     | BASE TABLE |
| sales_by_film_category     | VIEW       |
| sales_by_store             | VIEW       |
| staff                      | BASE TABLE |
| staff_list                 | VIEW       |
| store                      | BASE TABLE |
+----------------------------+------------+
23 rows in set

レコード件数を確認する

公式手順でも、filmfilm_text の件数確認が使われている。

film の件数を確認する:

SELECT COUNT(*) FROM film;
# 実行結果
+----------+
| COUNT(*) |
+----------+
|     1000 |
+----------+

film_text の件数を確認する:

SELECT COUNT(*) FROM film_text;
# 実行結果
+----------+
| COUNT(*) |
+----------+
|     1000 |
+----------+

この2つが 1000 で返ってくれば、導入確認としては十分。

よくあるつまずき

No database selected が出る

warning

SHOW TABLES; の前に USE sakila; を実行していないと、このエラーが出る。

sakila を選択する:

USE sakila;

ファイルパスが違って SOURCE できない

warning

展開先が ~/Downloads/sakila-db/ ではない場合、SOURCE のパスを実際の場所に合わせる必要がある。

展開先のファイル一覧を見る:

ls ~/Downloads

まとめ

sakila は MySQL の動作確認や SQL 練習にちょうどよいサンプルデータベース。

やることはシンプルで、次の順に進めればよい。

  1. 公式配布ファイルをダウンロードする
  2. sakila-schema.sql を流し込む
  3. sakila-data.sql を流し込む
  4. USE sakila;SHOW FULL TABLES; で確認する
  5. SELECT COUNT(*) FROM film; でデータ件数を確認する

sakila を入れると、MySQL の初期状態では見えなかったアプリ用データベースを実際に触れるようになる。SQL の練習や ORM の動作確認にも使いやすい。

MySQL 自体の起動やログイン方法、Homebrew 管理の整理については別記事にまとめているので、必要ならそちらと合わせて見ると流れがつかみやすい。

[MySQL] macOSで久しぶりに触るときの起動確認、設定の見方、ログイン、パスワード再設定まとめ

[remark] remark-directiveでZenn風のcalloutブロック(:::message / :::info / :::warn / :::alert)を自作した