MySQL(phpMyAdmin)でテーブルのリレーションを設定する方法っす。
テーブルと別のテーブルを外部キーで紐付けて、SQL文を使ってより詳細な情報を抽出することができます。
MySQLでデータベーステーブルを作成する方法を理解しておくとスムーズです!
-
MySQLにデータベースを作成する方法のメモ(phpMyAdmin)
phpMyAdminのMySQLにデータベースを作成する方法のメモです。 phpMyAdminの管理画面を、先に日本語設 ...
続きを見る
MySQLにリレーションを設定する鍵は外部キーの設定
買い出しリストに担当者を入れたテーブルを作成し、後で連絡ができるように名簿テーブルと関連させることを想定しました。
例として、以下2つのテーブルを準備。
名簿テーブル
買い出し担当テーブル
以上2つのテーブルを、外部キーを使って関連付けしてみます。
STEP1. 各テーブルを紐付けするための外部キーを挿入
まず最初に、2つのテーブルを紐付けするための外部キーを作成します。
説明や補足外部キー(FOREIGN KEY)とは、テーブル間を紐付けるために設定する列のこと。テーブル間のデータの整合を行うキーとなる。
1. 外部キーを挿入するテーブルを選択
外部キーを設定するために、買い出し担当のテーブルを選択。
※ カラムを追加する手順は以下記事も詳しいです↓
MySQLでカラム追加・削除をする方法(phpMyAdmin)
-
MySQLでカラム追加・削除をする方法(phpMyAdmin)
MySQLでテーブルを作成したあとに後からカラムを追加・削除する方法です。 補足 先にid自動連番を設定(Auto_in ...
続きを見る
2. 構造タブから1列を挿入し実行
構造タブをクリックして
1列をpersonの後に追加します。
3. カラムの名前とデータ型を定義して保存
名前をcharge_id・データ型はINTにて保存します。
買い出し担当のテーブルに、担当者のid(charge_id)が挿入されました↓
ALTER TABLE `買い出し担当` ADD `charge_id` INT NOT NULL AFTER `Person`;
STEP2. 紐付けたいキーを一致させる
次に名簿テーブルのidと買い出し担当のcharge_idを一致させます。
名簿テーブルだと佐藤くんのidは1なので、
買い出し担当の佐藤くんの「charge_id」も1へ変更します。
これを4人分繰り返して、4人とも完了すると以下のとおりっす↓
ここで外部キーが一致できてないと、テーブル間での整合性がなくなり狙ったデータの抽出ができなくなります!
STEP3. SQL文書いてテーブルを関連付け
SQL文を使って、テーブル同士がリレーションできたか確認してみます。
例として
- 名簿テーブルは、テーブル①
- 買い出し担当テーブルは、テーブル②
と仮定すると、以下のような構文でリレーションを確認できます↓
SELECT * FROM テーブル①.テーブル② WHERE テーブル①.id=テーブル②.charge_id;
1. 買い出し担当のテーブルを選択
SQL文を記入する対象のテーブルを選択します。
charge_idを挿入した買い出し担当のテーブルを選択。
2. SQLタブをクリックして以下SQL文を入力。
SQL文を記入するためにSQLタブを選択。
以下SQLを記入して実行↓
SELECT * FROM 名簿,買い出し担当 WHERE 名簿.id=買い出し担当.charge_id
名簿のidに紐付けた、charge_id(レコード)を表示する指示です。
成功すれば、以下のように2つのテーブルがリレーション設定され、1つのテーブルとして表示されます↓
以上、2つのテーブルのリレーションの設定方法でした!
まとめ
MySQLでテーブルを使ってリレーションを設定する方法、なかなか理解してないと説明が難しいっすね。
自分で書いてて訳わかんなくて気持ち悪くなってきました。(ゲロゲロ)
-
【MySQL】GROUP BYで商品ごとの合計を算出する(phpMyAdmin)
MySQLにてGROUP BYを使って、テーブルにある商品ごとの合計を算出します。 補足 前回のMySQLでリレーション ...
続きを見る
関連記事:WordPressでアイキャッチが設定できない原因は表示オプションの漏れ
関連記事:【MySQL】DATETIME型でデータの更新日を自動表示する手順(phpMyAdmin)
関連記事:【MySQL】ORDER BY句でデータの並び替えを行う方法