PR

phpMyAdminの使い方_ リレーショナル

リレーショナルデータベース(RDB)とは、「テーブル」という表形式の構造で管理するエクセルの表のイメージです。行をレコードと呼び、列をフィールドと呼びます。1行に1件のデータが格納され、1レコードとなります。が、各レコードのデータは必ず”一意”であることが条件となります。データの重複を避けることで、検索スピードを上げることができるのです。ここでは、複数のテーブルにリレーションを貼り、リレーショナルデータベースを実践してみます。

リレーショナルデータベースのイメージ図
スポンサーリンク

所属の追加

現在、データベース(jinji)のテーブル(staff_list)では、所属という項目がない為、どこの部署なのかを識別することができません。そこで、所属という項目を追加して、それが識別できるようにしてみます。

Xamppの起動

ApacheとMySQLの起動

MySQLを使うためには、Apacheも必要となりますので、両方起動します。

xamppの起動画面

MySQLのAdminの起動

Adminをクリックすると、phpMyAdminというツールが開きます。このphpMyAdminを通してMySQL(MariaDB)にアクセスすることとなります。

phpMyAdminの初期画面

対象ファイルの選択

データベース(jinji)の選択

データベースjinjiを選択して表示されたテーブル一覧

テーブル(staff_list)の選択

テーブルstaff_listを選択して表示されたスタッフ一覧

所属カラムの追加

ここでテーブル(staff_list)に、どこの部署なのかを識別するための「所属」という項目を追加します。

「構造」タブをクリック

構造タブを選択されたstaff_list

カラムの追加

staff_nameの後に、「syozoku」という名前でカラムを1つ追加します。

syozokuというカラムを追加したstaff_list

「所属データ」の入力

syozokuを入力したstaff_list

所属カラムを追加したことで、どこの部署なのかを識別することができるようになりました。ここでは、相田さんと山内さんが同じ1号館の所属であることがわかります。そこで、さらに1号館等の所属の電話番号も一緒に管理したい等という場合は、カラムを追加しなければなりません。すると、どんどんとテーブルが肥大化してしまいます。また、相田さんが異動で1号館から2号館に移動した場合には、syozokuの項目を変更しなければならなくなり、非常に効率がわるくなります。そこで、このような場合は、テーブルを分けることをします。折角、部署カラムを追加したのですが、この方法ではメンテナンスも大変ですので、staff_listとは別に、新たな所属テーブルを作成して、2つのテーブルを関連付けて管理することとします。

所属カラムの削除

そこで、テーブルを分ければ、syozokuのカラムは不要となりますので削除しておきます。

カラムの削除

構造タブからsyozokuカラムの削除を選択したstaff_list

syozokuにチェックを入れて、「削除」をクリックします。

カラム削除の実行確認画面

カラム削除結果

syozokuカラムを削除したstaff_list

スポンサーリンク

所属テーブルの作成

Xamppの起動

ApacheとMySQLの起動

MySQLを使うためには、Apacheも必要となりますので、両方起動します。

xamppの起動画面

MySQLのAdminの起動

Adminをクリックすると、phpMyAdminというツールが開きます。このphpMyAdminを通してMySQL(MariaDB)にアクセスすることとなります。

phpMyAdminの初期画面

テーブルの作成

所属を管理する新たなテーブル(syozoku)を作成します。

データベース(jinji)の選択

データベースjinjiを選択して表示されたテーブル一覧

テーブル(syozoku)の作成

①テーブル名、カラム数の入力

テーブル名、カラム数を入力して「実行」をクリックします。

テーブルsyozokuの追加画面

②カラム名、データ型の入力

名前は、id,name,tel、データ型は、INT,TEXT,TEXTとします。

カラム名、データ型の入力画面

③プライマリーキーの設定

idのカラムをプライマリーキーに設定します。

プマリーキーの設定画面

④オートインクリメントの設定

オートインクリメントの設定画面

これでテーブルの設定が終わりましたので、「保存」をクリックします。

テーブル作成完了

テーブルsyozokuの設定完了画面

データの入力

「挿入」タブのクリック

作成したテーブル(syozoku)にデータを入力します。

テーブルsyozokuのデータ入力画面

同様にして、以下を追加します。

テーブルsyozokuに入力する項目表

「表示」タブのクリック

入力された内容を確認します。

表示タブで表示されたsyozokuの入力データ

これで、syozokuというテーブルには3つの部署の情報が格納されました。

staff_listと、syozokuの結びつけ

作成した所属テーブル(syozoku)と、スタッフリスト(staff_list)テーブルを結びつける為、スタッフリスト(staff_list)に、所属コード(syozoku_id)を設定するカラムを追加します。

カラムの追加

staff_listにカラムを追加します。

①「構造」タブのクリック

構造タブで表示されたsyozokuのテーブル構造

②カラムの設定

名前を「syozoku_id」、データ型を「INT」として、「保存」をクリックします。

カラムの設定画面

③追加の確認

syozoku_idのカラムが追加されました。

syozoku-idというカラムを追加したstaff_list

このsyozoku_idに、syozokuテーブルのidを入力することで、結びつけることができます。

カラムへのデータの挿入

追加したカラム(syozoku_id)ヘ、所属コードを入力します。

テーブルsyozokuに入力する項目表

syozoku-idの入力されたstaff_list

このままでは、syozoku_idはセットされましたが、syozoku_id=11が1号館であるという事は、syozokuテーブルを検索しなければわかりません。データベースでは、リレーションを使って2つのデータベースがあたかも1つのデータベースであるかの如くふるまうことができます。

SQLの入力

①特定レコードのみ紐づけ

所属レコードを追加するSQLと実行画面

「実行」をクリックすると

所属レコードが追加されたSQL実行結果

staff_listのid=1の相田さんの情報が表示されますが、その前にsyozokuの情報が付属して表示されます。

②全レコードの紐づけ

WHERE句を無くして、「実行」をクリックすると、全てに対してsyozokuを紐づけることができます。

syozokuテーブルとstaff_listの紐づけのSQL