コマンドラインを使ってMySQLでリレーションシップを作成する方法
MySQLでリレーションシップを作成する方法
リレーションシップとは、複数のテーブル間でデータを関連付ける仕組みです。これにより、データベースの構造を整理し、データの整合性を保つことができます。
リレーションシップの種類
MySQLでは、主に以下の2種類のリレーションシップがあります。
- 1対多リレーションシップ: 1つの親テーブルのレコードに対して、複数の子供テーブルのレコードが存在する関係です。
外部キー
リレーションシップを作成するには、外部キーを使用します。外部キーは、子テーブルの列で、親テーブルの列を参照する値です。
MySQLでリレーションシップを作成するには、以下の方法があります。
- CREATE TABLE ステートメント: テーブル作成時に、FOREIGN KEY 句を使用して外部キーを定義できます。
- phpMyAdmin: GUIツールを使用して、リレーションシップを作成できます。
1対多リレーションシップ
- 親テーブル: 商品カテゴリ
商品カテゴリテーブルには、商品ID、カテゴリ名などの列があります。商品テーブルには、商品ID、商品名、カテゴリIDなどの列があります。商品IDは、商品カテゴリテーブルと商品テーブルを関連付ける外部キーです。
- 親テーブル: ユーザー
ユーザーテーブルには、ユーザーID、ユーザー名などの列があります。権限テーブルには、権限ID、権限名などの列があります。ユーザー_権限テーブルには、ユーザーIDと権限IDを関連付ける列があります。
まとめ
リレーションシップは、データベース設計において重要な概念です。MySQLでリレーションシップを作成することで、データの整合性を保ち、データベースを効率的に管理することができます。
CREATE TABLE `商品カテゴリ` (
`カテゴリID` INT NOT NULL AUTO_INCREMENT,
`カテゴリ名` VARCHAR(255) NOT NULL,
PRIMARY KEY (`カテゴリID`)
);
CREATE TABLE `商品` (
`商品ID` INT NOT NULL AUTO_INCREMENT,
`商品名` VARCHAR(255) NOT NULL,
`カテゴリID` INT NOT NULL,
PRIMARY KEY (`商品ID`),
FOREIGN KEY (`カテゴリID`) REFERENCES `商品カテゴリ` (`カテゴリID`)
);
ALTER TABLE ステートメント
ALTER TABLE `商品`
ADD FOREIGN KEY (`カテゴリID`) REFERENCES `商品カテゴリ` (`カテゴリID`);
phpMyAdmin
- phpMyAdminでデータベースを開きます。
- 左側のメニューから、リレーションシップを作成したいテーブルを選択します。
- 構造タブを選択します。
- 外部キーの追加ボタンをクリックします。
- 子テーブルと親テーブルを選択します。
- 参照列と主キーを選択します。
-- 商品カテゴリテーブル
SELECT * FROM `商品カテゴリ`;
+-----------+------------+
| カテゴリID | カテゴリ名 |
+-----------+------------+
| 1 | 食品 |
| 2 | 家電 |
| 3 | 衣類 |
+-----------+------------+
-- 商品テーブル
SELECT * FROM `商品`;
+-----------+------------+-----------+
| 商品ID | 商品名 | カテゴリID |
+-----------+------------+-----------+
| 1 | りんご | 1 |
| 2 | テレビ | 2 |
| 3 | シャツ | 3 |
+-----------+------------+-----------+
-- ユーザーテーブル
SELECT * FROM `ユーザー`;
+----------+------------+
| ユーザーID | ユーザー名 |
+----------+------------+
| 1 | 山田太郎 |
| 2 | 佐藤花子 |
| 3 | 田中一郎 |
+----------+------------+
-- 権限テーブル
SELECT * FROM `権限`;
+----------+------------+
| 権限ID | 権限名 |
+----------+------------+
| 1 | 管理者 |
| 2 | 編集者 |
| 3 | 閲覧者 |
+----------+------------+
-- ユーザー_権限テーブル
SELECT * FROM `ユーザー_権限`;
+----------+----------+
| ユーザーID | 権限ID |
+----------+----------+
| 1 | 1 |
| 1 | 2 |
| 2 | 3 |
| 3 | 3 |
+----------+----------+
サンプルコードを参考に、MySQLでリレーションシップを作成してみてください。
これらのツールは、GUI操作で簡単にリレーションシップを作成できます。
これらのコマンドラインツールを使用して、リレーションシップを含むデータベースをダンプしたり、インポートしたりできます。
これらの言語を使用して、リレーションシップを作成するスクリプトを作成できます。
これらのフレームワークは、リレーションシップを簡単に作成するための機能を提供しています。
上記以外にも、MySQLでリレーションシップを作成する方法はいくつかあります。自分に合った方法を選択してください。
mysql sql foreign-keys