> ## Documentation Index
> Fetch the complete documentation index at: https://villagesql.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Sakila サンプルデータベースをロードする

> Sakila サンプルデータベースをダウンロードし、2 つのコマンドでスキーマとデータを MySQL サーバーにロードし、すべてのテーブルが届いたことを確認します。

> [card] [VillageSQL is a drop-in replacement for MySQL with extensions.](https://villagesql.com/docs/en/8.4/stable/install-server.md)
>
> All examples on this page work on VillageSQL. Install Now →

Sakila は 1 つの zip に入った 2 つの SQL ファイルとして届きます。1 つ目が
テーブルを作り、2 つ目がそれらを埋めます。[サーバーのインストール](https://villagesql.com/docs/ja/tutorial/install-mysql.md)の
サーバーに対して、その順序で実行します。

## ダウンロードする

好きなディレクトリでこれらを実行してください。

```bash theme={null}
curl -O https://downloads.mysql.com/docs/sakila-db.zip
unzip sakila-db.zip
```

これで `sakila-db` ディレクトリができます。その中から必要な 2 つのファイルは
`sakila-schema.sql` と `sakila-data.sql` です。

## ロードする

スキーマファイルが先、データファイルが後です。`root` にパスワードがなければ、
各パスワードプロンプトで Return を押してください。

```bash theme={null}
mysql -u root -p < sakila-db/sakila-schema.sql
mysql -u root -p < sakila-db/sakila-data.sql
```

どちらのコマンドも、成功したときはパスワードプロンプトの後に何も表示
しません。データファイルのほうが時間がかかります。データベースのすべての行を
挿入するからです。

> [!NOTE]
>
> スキーマファイルが最初に行うのは `DROP SCHEMA IF EXISTS sakila` です。この
> 2 つのコマンドをもう一度実行するとデータベースが一から作り直されるので、
> いつでもきれいなコピーに戻れます。変更した内容はすべて失われます。

## 確認する

データベースに今何が入っているかをサーバーに尋ねます。

```bash theme={null}
mysql -u root -p -e "USE sakila; SHOW TABLES;"
```

```text theme={null}
Enter password:
+----------------------------+
| Tables_in_sakila           |
+----------------------------+
| actor                      |
| actor_info                 |
| address                    |
| category                   |
| city                       |
| country                    |
| customer                   |
| customer_list              |
| film                       |
| film_actor                 |
| film_category              |
| film_list                  |
| film_text                  |
| inventory                  |
| language                   |
| nicer_but_slower_film_list |
| payment                    |
| rental                     |
| sales_by_film_category     |
| sales_by_store             |
| staff                      |
| staff_list                 |
| store                      |
+----------------------------+
```

23 個の名前があります。`SHOW TABLES` は 16 個のテーブルと 7 個のビューを
まとめて列挙するからです。

テーブルがデータなしで届くこともあるので、何かを数えてもみてください。

```bash theme={null}
mysql -u root -p -e "SELECT COUNT(*) FROM sakila.film;"
```

```text theme={null}
Enter password:
+----------+
| COUNT(*) |
+----------+
|     1000 |
+----------+
```

1,000 本の映画があれば、最初のレッスンの準備は整っています。

## データベースの中で作業する

すべてのレッスンは、`sakila` が現在のデータベースであるものとしてクエリを
書いています。クライアントを開くときに名前を指定してください。

```bash theme={null}
mysql -u root -p sakila
```

または、中に入ってから切り替えます。

```sql theme={null}
USE sakila;
```

このどちらかをしないと、`film` を参照するクエリは失敗します。

```bash theme={null}
mysql -u root -p -e "SELECT COUNT(*) FROM film;"
```

```text theme={null}
Enter password:
ERROR 1046 (3D000) at line 1: No database selected
```

## 関連項目

* [Sakila サンプルデータベース](https://villagesql.com/docs/ja/tutorial/sakila-database.md) — 16 個のテーブルが保持するもの
* [SELECT](https://villagesql.com/docs/ja/tutorial/select.md) — 最初のレッスン。このページで読み込んだデータに問い合わせる


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.