データベース・プログラミング - Exercise - SQL - Part3

データベースの作成と準備

  • my_rpgデータベースに接続してください。

テーブルの作成

以下のテーブルを作成します。

  • item_category
  • item
  • warrior
  • equipment

以下の仕様に従ってitem_categoryテーブルを作成してください。

エクササイズ2で作成済みの場合はそのままで大丈夫です。

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

以下の仕様に従ってitemテーブルを再度、作成してください。

エクササイズ2で作成済みの場合はそのままで大丈夫です。

+-------------+--------------+------+-----+---------+-------+
| Field       | Type         | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| id          | int(11)      | NO   | PRI | NULL    |       |
| name        | varchar(100) | YES  |     | NULL    |       |
| effect      | int(11)      | YES  |     | NULL    |       |
| price       | int(11)      | YES  |     | NULL    |       |
| category_id | int(11)      | YES  |     | NULL    |       |
+-------------+--------------+------+-----+---------+-------+

以下の仕様に従ってwarriorテーブルを再度、作成してください。

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   | PRI | NULL    |       |
| name  | varchar(100) | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

以下の仕様に従ってequipmentテーブルを再度、作成してください。

+------------+---------+------+-----+---------+-------+
| Field      | Type    | Null | Key | Default | Extra |
+------------+---------+------+-----+---------+-------+
| id         | int(11) | NO   | PRI | NULL    |       |
| ???????_id | ??????? | YES  |     | NULL    |       |
| ????_id    | ??????? | YES  |     | NULL    |       |
+------------+---------+------+-----+---------+-------+

列名、データ型を决定してください。


レコードの作成

以下の結果に示すとおり、item_categoryテーブルにレコードを作成してください。

エクササイズ2で作成済みの場合はそのままで大丈夫です。

+----+--------+
| id | name   |
+----+--------+
|  1 | Weapon |
|  2 | Armor  |
|  3 | Shield |
|  4 | Helmet |
+----+--------+

以下の結果に示すとおり、itemテーブルにレコードを作成してください。

エクササイズ2で作成済みの場合はそのままで大丈夫です。

+----+--------------+--------+-------+-------------+
| id | name         | effect | price | category_id |
+----+--------------+--------+-------+-------------+
|  1 | Excalibur    |    100 | 10000 |           1 |
|  2 | Gungnir      |     90 |  9000 |           1 |
|  3 | Steel sword  |     30 |  1000 |           1 |
|  4 | Iron ax      |     20 |   500 |           1 |
|  5 | Silver mail  |     50 |  3000 |           2 |
|  6 | Steel armar  |     30 |  1000 |           2 |
|  7 | Ice shield   |     60 |  6000 |           3 |
|  8 | Steel shield |     40 |  1000 |           3 |
|  9 | Elixir       |    100 |  1000 |        NULL |
+----+--------------+--------+-------+-------------+

以下の結果に示すとおり、warriorテーブルにレコードを作成してください。

+----+-------+
| id | name  |
+----+-------+
|  1 | Cloud |
|  2 | Ryan  |
+----+-------+

以下の要件の示すとおり、equipmentテーブルにレコードを作成してください。

  • Cloudは以下のitemを装備します。
    • Excalibur
    • Silver mail
    • Ice shield
  • Ryanは以下のitemを装備します。
    • Steel sword
    • Steel armar
    • Steel shield

データの検索

  • 1 Cloudの装備を表示してください。
+--------------+---------------+-------------+
| warrior_name | category_name | item_name   |
+--------------+---------------+-------------+
| Cloud        | Weapon        | Excalibur   |
| Cloud        | Armor         | Silver mail |
| Cloud        | Shield        | Ice shield  |
+--------------+---------------+-------------+
  • 2 Ryanの装備を表示してください。
+--------------+---------------+--------------+
| warrior_name | category_name | item_name    |
+--------------+---------------+--------------+
| Ryan         | Weapon        | Steel sword  |
| Ryan         | Armor         | Steel armar  |
| Ryan         | Shield        | Steel shield |
+--------------+---------------+--------------+
  • 3 Steel swordを装備しているwarriorを表示してください。
+-------------+--------------+
| item_name   | warrior_name |
+-------------+--------------+
| Steel sword | Ryan         |
+-------------+--------------+
  • 4 ER図を作成してください。