演習課題「内部結合する」
右側のコードエリアでは、SQL文で、サンプルデータベースの「players」テーブルのデータを取得することができます。このコードを修正して、「players」テーブルと「jobs」テーブルを内部結合で表示するようにしてください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
入力される値
players
id | name | level | job_id |
---|---|---|---|
1 | パイザ | 12 | 6 |
2 | ケン | 7 | 2 |
3 | リン | 1 | 1 |
4 | ユウ | 3 | 3 |
5 | クレア | 10 | 4 |
6 | ショウ | 5 | 2 |
7 | さくら | 7 | 1 |
8 | ジャック | 5 | 4 |
9 | ロック | 12 | 6 |
10 | じゅん | 1 | NULL |
jobs
id | job_name | vitality | strength | agility | intelligence | luck |
---|---|---|---|---|---|---|
1 | 戦士 | 8 | 8 | 4 | 4 | 3 |
2 | 盗賊 | 3 | 3 | 8 | 5 | 7 |
3 | 狩人 | 5 | 5 | 7 | 5 | 4 |
4 | 魔法使い | 3 | 2 | 6 | 8 | 6 |
5 | 僧侶 | 5 | 5 | 3 | 7 | 5 |
6 | 勇者 | 10 | 10 | 10 | 10 | 10 |
期待する出力値
1 パイザ 12 6 6 勇者 10 10 10 10 10
2 ケン 7 2 2 盗賊 3 3 8 5 7
3 リン 1 1 1 戦士 8 8 4 4 3
4 ユウ 3 3 3 狩人 5 5 7 5 4
5 クレア 10 4 4 魔法使い 3 2 6 8 6
6 ショウ 5 2 2 盗賊 3 3 8 5 7
7 さくら 7 1 1 戦士 8 8 4 4 3
8 ジャック 5 4 4 魔法使い 3 2 6 8 6
9 ロック 12 6 6 勇者 10 10 10 10 10
演習課題「左結合する」
右側のコードエリアでは、SQL文で、サンプルデータベースの「players」テーブルのデータを取得することができます。このコードを修正して、「players」テーブルと「jobs」テーブルを左結合で表示するようにしてください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
入力される値
players
id | name | level | job_id |
---|---|---|---|
1 | パイザ | 12 | 6 |
2 | ケン | 7 | 2 |
3 | リン | 1 | 1 |
4 | ユウ | 3 | 3 |
5 | クレア | 10 | 4 |
6 | ショウ | 5 | 2 |
7 | さくら | 7 | 1 |
8 | ジャック | 5 | 4 |
9 | ロック | 12 | 6 |
10 | じゅん | 1 | NULL |
jobs
id | job_name | vitality | strength | agility | intelligence | luck |
---|---|---|---|---|---|---|
1 | 戦士 | 8 | 8 | 4 | 4 | 3 |
2 | 盗賊 | 3 | 3 | 8 | 5 | 7 |
3 | 狩人 | 5 | 5 | 7 | 5 | 4 |
4 | 魔法使い | 3 | 2 | 6 | 8 | 6 |
5 | 僧侶 | 5 | 5 | 3 | 7 | 5 |
6 | 勇者 | 10 | 10 | 10 | 10 | 10 |
期待する出力値
1 パイザ 12 6 6 勇者 10 10 10 10 10
2 ケン 7 2 2 盗賊 3 3 8 5 7
3 リン 1 1 1 戦士 8 8 4 4 3
4 ユウ 3 3 3 狩人 5 5 7 5 4
5 クレア 10 4 4 魔法使い 3 2 6 8 6
6 ショウ 5 2 2 盗賊 3 3 8 5 7
7 さくら 7 1 1 戦士 8 8 4 4 3
8 ジャック 5 4 4 魔法使い 3 2 6 8 6
9 ロック 12 6 6 勇者 10 10 10 10 10
10 じゅん 1 NULL NULL NULL NULL NULL NULL NULL NULL
演習課題「右結合する」
右側のコードエリアでは、SQL文で、サンプルデータベースの「players」テーブルのデータを取得することができます。このコードを修正して、「players」テーブルと「jobs」テーブルを右結合で表示するようにしてください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
※ players表のid列を昇順に表示してください。
入力される値
players
id | name | level | job_id |
---|---|---|---|
1 | パイザ | 12 | 6 |
2 | ケン | 7 | 2 |
3 | リン | 1 | 1 |
4 | ユウ | 3 | 3 |
5 | クレア | 10 | 4 |
6 | ショウ | 5 | 2 |
7 | さくら | 7 | 1 |
8 | ジャック | 5 | 4 |
9 | ロック | 12 | 6 |
10 | じゅん | 1 | NULL |
jobs
id | job_name | vitality | strength | agility | intelligence | luck |
---|---|---|---|---|---|---|
1 | 戦士 | 8 | 8 | 4 | 4 | 3 |
2 | 盗賊 | 3 | 3 | 8 | 5 | 7 |
3 | 狩人 | 5 | 5 | 7 | 5 | 4 |
4 | 魔法使い | 3 | 2 | 6 | 8 | 6 |
5 | 僧侶 | 5 | 5 | 3 | 7 | 5 |
6 | 勇者 | 10 | 10 | 10 | 10 | 10 |
期待する出力値
NULL NULL NULL NULL 5 僧侶 5 5 3 7 5
1 パイザ 12 6 6 勇者 10 10 10 10 10
2 ケン 7 2 2 盗賊 3 3 8 5 7
3 リン 1 1 1 戦士 8 8 4 4 3
4 ユウ 3 3 3 狩人 5 5 7 5 4
5 クレア 10 4 4 魔法使い 3 2 6 8 6
6 ショウ 5 2 2 盗賊 3 3 8 5 7
7 さくら 7 1 1 戦士 8 8 4 4 3
8 ジャック 5 4 4 魔法使い 3 2 6 8 6
9 ロック 12 6 6 勇者 10 10 10 10 10
#06:2つのテーブルを結合しよう
データベースで、複数のテーブルを結合して扱う方法を学んでいきます。リレーショナルデータベースでは、重複したデータのテーブルを分割しておいて、必要に応じて、仮想的な1つの表として扱うことができます。
テーブルの関連付けとは、重複したデータのテーブルを分割しておいて、必要に応じて、仮想的な1つの表として結合して扱う方法です。
-- テーブルを結合して表示する(内部結合)
SELECT * FROM players INNER JOIN jobs ON jobs.id = players.job_id;-- テーブルを結合して表示する(左結合)
SELECT * FROM players LEFT JOIN jobs ON jobs.id = players.job_id;-- テーブルを結合して表示する(右結合)
SELECT * FROM players RIGHT JOIN jobs ON jobs.id = players.job_id;
両方のテーブルに共通のデータを表示(INNER JOIN)
左結合(LEFT JOIN): 左側テーブルを基準に表示
右結合(RIGHT JOIN): 右側テーブルを基準に表示