MySQLのサンプルデータベース一覧

MySQLの学習・検証時に使用できるデータソースです。
Linuxターミナルでのダウンロード方法も記載しています。
デスクトップ環境の場合はソースからダウンロードできます。

# ■Employees
社員マスター

### ソース

https://github.com/datacharmer/test_db

### ダウンロード
```sh
curl -sLO https://github.com/datacharmer/test_db/releases/download/v1.0.7/test_db-1.0.7.tar.gz
tar -zxvf ./test_db-1.0.7.tar.gz
```

### リストア
解凍先に移動しないとリストアが失敗します
```sql
cd test_db
mysql -t < employees.sql -u root -p
```

### ER図
![employees.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/afae7795-8c43-bbbc-80b6-62fc000d9066.png)

# ■sakila
DVD レンタル ストアを表すように設計されています

### ソース
ExampleDatabaseからダウンロード

https://dev.mysql.com/doc/index-other.html

### ダウンロード
```sh
curl -O https://downloads.mysql.com/docs/sakila-db.tar.gz
tar -zxvf ./sakila-db.tar.gz 
```

### リストア
MySQLインストーラからリストアすることも可能
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/6373ce22-6dcb-cc94-3287-37b71c8747c0.png)

```sql
mysql -u root -p
Enter password: **********
mysql> SOURCE /usr/src/sakila-db/sakila-schema.sql;
mysql> SOURCE /usr/src/sakila-db/sakila-data.sql;
```

### ER図
![sakila.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/2f60dc91-3ab2-764d-3309-1fee18603e8b.png)


# ■World
世界の国と都市に関する情報を含む一連のテーブルを提供します

### ソース
ExampleDatabaseからダウンロード

https://dev.mysql.com/doc/index-other.html

### ダウンロード
```sh
curl -O https://downloads.mysql.com/docs/world-db.tar.gz
tar -zxvf ./world-db.tar.gz 
```

### リストア
MySQLインストーラからリストアすることも可能
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/6373ce22-6dcb-cc94-3287-37b71c8747c0.png)

```sql
mysql -u root -p
Enter password: **********
mysql>  SOURCE /usr/src/world-db/world.sql;
```

### ER図
![world.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/b5bd2617-e996-82bb-ae00-3879f995a34a.png)

### 備考
亜種:一部ドキュメントテーブルにしている

https://dev.mysql.com/doc/refman/8.0/ja/mysql-shell-tutorial-javascript-download.html

# ■menagerie
動物園のDB

### ソース
ExampleDatabaseからダウンロード

https://dev.mysql.com/doc/index-other.html

### ダウンロード
```
curl -O https://downloads.mysql.com/docs/menagerie-db.tar.gz
tar -zxvf ./menagerie-db.tar.gz 
```

### リストア

```sql
cd menagerie-db/
mysql -u root -p --local-infile=on
Enter password: **********
mysql> create database menagerie;
mysql> use menagerie;
mysql> SET GLOBAL local_infile=on;
mysql> SOURCE cr_event_tbl.sql
mysql> SOURCE cr_pet_tbl.sql
mysql> SOURCE load_pet_tbl.sql
mysql> SOURCE ins_puff_rec.sql
mysql> LOAD DATA LOCAL INFILE 'event.txt' INTO TABLE event;
```
### ER図
![menagerie.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/d8390bc3-1465-94f7-2c1b-b36a07ff0c1a.png)

# ■classicmodels
クラシックカーのスケールモデルの小売店のDB

### ソース

https://www.mysqltutorial.org/mysql-sample-database.aspx

### ダウンロード
```sh
curl -O https://www.mysqltutorial.org/wp-content/uploads/2023/10/mysqlsampledatabase.zip
unzip mysqlsampledatabase.zip 
```

### リストア

https://www.mysqltutorial.org/how-to-load-sample-database-into-mysql-database-server.aspx

:::note warn
リストア時にエラーが出る場合は、文字コードの設定を見直しましょう

```sql
ERROR 1366 (HY000): Incorrect string value: '\x85rhus' for column 'city' at row 43
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`classicmodels`.`orders`, CONSTRAINT `orders_ibfk_1` FOREIGN KEY (`customerNumber`) REFERENCES `customers` (`customerNumber`))
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`classicmodels`.`payments`, CONSTRAINT `payments_ibfk_1` FOREIGN KEY (`customerNumber`) REFERENCES `customers` (`customerNumber`))
ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails (`classicmodels`.`orderdetails`, CONSTRAINT `orderdetails_ibfk_1` FOREIGN KEY (`orderNumber`) REFERENCES `orders` (`orderNumber`))
```
[解決例]
mysqlsampledatabase.sqlを編集
```sql
/* Switch to the classicmodels database */
USE classicmodels;
/* 私の場合、ダンプクエリに下記2行を追加することでリストア出来た*/
SET NAMES 'utf8mb4';
SET CHARACTER SET utf8mb4;
```
:::

### ER図
![classicmodels.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/c2cb9895-3709-c123-b062-402342d58556.png)


# ■northwind
Microsoft によって作成され、数十年にわたってさまざまなデータベース製品のチュートリアルの基礎として使用されてきたサンプル データベースです。Northwind データベースには、世界中の特殊食品を輸出入する「Northwind Traders」という架空の会社の販売データが含まれています。

### ソース

https://en.wikiversity.org/wiki/Database_Examples/Northwind/MySQL


### リストア

```sql
mysql -u root -p
Enter password: **********
```
以下ページのクエリをコピペして実行

https://en.wikiversity.org/wiki/Database_Examples/Northwind/MySQL

### ER図
![northwind.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/383255/3088090c-c703-0788-8e5c-dba81751b677.png)