MySQL

【MySQL】リレーションを設定する方法(phpMyAdmin)

MySQL(phpMyAdmin)でテーブルのリレーションを設定する方法っす

SQL文のテーブルをリレーションするGIF

 

テーブルと別のテーブルを外部キーで紐付けて、SQL文を使ってより詳細な情報を抽出することができます。

補足
MySQLでデータベーステーブルを作成する方法を理解しておくとスムーズです!

MySQLにリレーションを設定する鍵は外部キーの設定

買い出しリストに担当者を入れたテーブルを作成し、後で連絡ができるように名簿テーブルと関連させることを想定しました。

 

例として、以下2つのテーブルを準備。

\名簿テーブル/

名簿テーブル

\買い出し担当テーブル/

買い出し担当テーブル

以上2つのテーブルを、外部キーを使って関連付けしてみます。

STEP1. 各テーブルを紐付けするための外部キーを挿入

まず最初に、2つのテーブルを紐付けするための外部キーを作成します。

 

外部キーてなに?
説明や補足外部キー(FOREIGN KEY)とは、テーブル間を紐付けるために設定する列のこと。テーブル間のデータの整合を行うキーとなる。

1. 外部キーを挿入するテーブルを選択

外部キーを設定するために、買い出し担当のテーブルを選択

買い出し担当のテーブルを選択

※ カラムを追加する手順は以下記事も詳しいです↓

MySQLでカラム追加・削除をする方法(phpMyAdmin)

2. 構造タブから1列を挿入し実行

構造タブをクリックして

構造タブをクリック

1列をpersonの後に追加します。

1列を挿入する

 

3. カラムの名前とデータ型を定義して保存

名前をcharge_id・データ型はINTにて保存します。

名前とデータ型を定義

買い出し担当のテーブルに、担当者のid(charge_id)が挿入されました↓

ALTER TABLE `買い出し担当` ADD `charge_id` INT NOT NULL AFTER `Person`;

買い出し担当テーブルにcharge_idが挿入された

STEP2. 紐付けたいキーを一致させる

次に名簿テーブルのidと買い出し担当のcharge_idを一致させます。

 

名簿テーブルだと佐藤くんのidは1なので、

名簿テーブルの佐藤くんのid

買い出し担当の佐藤くんの「charge_id」も1へ変更します。

買い出し担当テーブルの佐藤くんidを変更

これを4人分繰り返して、4人とも完了すると以下のとおりっす↓

idとcharge_idの値を統一

注意!
ここで外部キーが一致できてないと、テーブル間での整合性がなくなり狙ったデータの抽出ができなくなります!

 

STEP3. SQL文書いてテーブルを関連付け

SQL文を使って、テーブル同士がリレーションできたか確認してみます。

 

例として

  • 名簿テーブルは、テーブル①

  • 買い出し担当テーブルは、テーブル②

と仮定すると、以下のような構文でリレーションを確認できます↓

SELECT * FROM テーブル①.テーブル② WHERE テーブル①.id=テーブル②.charge_id;

1. 買い出し担当のテーブルを選択

SQL文を記入する対象のテーブルを選択します。charge_idを挿入した買い出し担当のテーブルを選択

買い出し担当のテーブルを選択

2. SQLタブをクリックして以下SQL文を入力。

SQL文を記入するためにSQLタブを選択

SQLタブを選択

以下SQLを記入して実行↓

SELECT * FROM 名簿,買い出し担当 WHERE 名簿.id=買い出し担当.charge_id

 

補足

名簿のidに紐付けた、charge_id(レコード)を表示する指示です。

成功すれば、以下のように2つのテーブルがリレーション設定され1つのテーブルとして表示されます

テーブルがリレーションで設定された

以上、2つのテーブルのリレーションの設定方法でした!

まとめ

MySQLでテーブルを使ってリレーションを設定する方法、なかなか理解してないと説明が難しいっすね。

 

自分で書いてて訳わかんなくて気持ち悪くなってきました。(ゲロゲロ)

 

oyakun
記事にまとめながら整理できた感じです(泣)次回はテーブルの集計結果を求めていきます!

>WordPressでアイキャッチが設定できない原因は表示オプションの漏れ

>【MySQL】DATETIME型でデータの更新日を自動表示する手順(phpMyAdmin)

>【MySQL】ORDER BY句でデータの並び替えを行う方法

  • この記事を書いた人
  • 最新記事
oyakun

oyakun

30代半ば♂妻・子3人の5人で日々激戦中。Google app script&VBA初心者が自分の備忘録を兼ねて「スプレッドシート、Excel、WordPress、plugin」の設定等、主にブログやアフィリエイト周辺のtipsを背伸びしながらご紹介しています。

Copyright© OYAKUDACHI.XYZ , 2019 All Rights Reserved.