[MySQL] sakila サンプルデータベースを macOS に導入する
この記事でやること
MySQL の動作確認ができたあと、実際にテーブルやデータを触ってみたい場面は多い。
そのときに便利なのが、MySQL 公式のサンプルデータベース sakila。
この記事では、macOS の MySQL 環境に sakila を導入し、SHOW TABLES や SELECT COUNT(*) で確認できるところまでまとめる。
対象は以下。
- macOS
- MySQL が起動していてログインできる環境
- 学習用にサンプルデータベースを入れたい場合
sakila とは
sakila は MySQL 公式が配布している学習用サンプルデータベース。
映画レンタル店をモチーフにしたデータが入っていて、次のような練習に使いやすい。
SELECTの基本JOIN- 集計
WHEREORDER BYGROUP BY
公式配布元
ダウンロード元は MySQL 公式のサンプルページ。
- 配布ページ: https://dev.mysql.com/doc/index-other.html
- インストール手順: https://dev.mysql.com/doc/sakila/en/sakila-installation.html
展開後に使う主なファイルは次の2つ。
sakila-schema.sqlsakila-data.sql
ファイルをダウンロードして展開する
まずはブラウザなどで sakila の配布ファイルをダウンロードする。
zip を使うなら、展開は次のようになる。
ダウンロードフォルダへ移動する:
cd ~/Downloadszip ファイルを展開する:
unzip sakila-db.ziptgz 形式の場合はこちら。
tgz ファイルを展開する:
tar xzf sakila-db.tar.gz展開後、sakila-schema.sql と sakila-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;パスは実際の展開先に合わせて読み替える。~/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レコード件数を確認する
公式手順でも、film と film_text の件数確認が使われている。
film の件数を確認する:
SELECT COUNT(*) FROM film;# 実行結果
+----------+
| COUNT(*) |
+----------+
| 1000 |
+----------+film_text の件数を確認する:
SELECT COUNT(*) FROM film_text;# 実行結果
+----------+
| COUNT(*) |
+----------+
| 1000 |
+----------+この2つが 1000 で返ってくれば、導入確認としては十分。
よくあるつまずき
No database selected が出る
SHOW TABLES; の前に USE sakila; を実行していないと、このエラーが出る。
sakila を選択する:
USE sakila;ファイルパスが違って SOURCE できない
展開先が ~/Downloads/sakila-db/ ではない場合、SOURCE のパスを実際の場所に合わせる必要がある。
展開先のファイル一覧を見る:
ls ~/Downloadsまとめ
sakila は MySQL の動作確認や SQL 練習にちょうどよいサンプルデータベース。
やることはシンプルで、次の順に進めればよい。
- 公式配布ファイルをダウンロードする
sakila-schema.sqlを流し込むsakila-data.sqlを流し込むUSE sakila;とSHOW FULL TABLES;で確認するSELECT COUNT(*) FROM film;でデータ件数を確認する
sakila を入れると、MySQL の初期状態では見えなかったアプリ用データベースを実際に触れるようになる。SQL の練習や ORM の動作確認にも使いやすい。
MySQL 自体の起動やログイン方法、Homebrew 管理の整理については別記事にまとめているので、必要ならそちらと合わせて見ると流れがつかみやすい。


