MySQL 外部キー設定方法の例

MySQL 外部キー設定方法の例

1. 外部キーの設定方法

1. MySQL では、2 つのテーブルを関連付けるために、外部キー (FOREIGN KEY) と接続 (JOIN) という 2 つの重要な機能が使用されます。テーブルを作成するときに外部キーを定義する必要があります。結合は、同じ意味を持つフィールドを介して 2 つのテーブルを接続でき、クエリ ステージで使用されます。

2. テーブル A とテーブル B という 2 つのテーブルがあり、共通のフィールド ID によって関連付けられているとします。この関連付けを R と呼びます。 id がテーブル A の主キーである場合、テーブル A はこのリレーションシップ R の主テーブルです。同様に、テーブル B はこのリレーションシップのセカンダリ テーブルです。テーブル B の id は、テーブル B がテーブル A のデータを参照するために使用するもので、外部キーと呼ばれます。したがって、外部キーは、マスター テーブルのデータを参照するために使用されるスレーブ テーブル内の共通フィールドです。

メインテーブルを作成する

テーブルdemo.importheadを作成する( 
リスト番号 INT 主キー、 
サプライヤーID INT、 
在庫番号 INT、 
インポートタイプ INT、 
インポート数量 DECIMAL(10, 3), 
インポート値 DECIMAL(10, 2), 
レコーダーINT、 
記録日付 DATETIME);

セカンダリテーブルを作成する

テーブルdemo.importdetailsを作成します( 
リスト番号 INT、 
アイテム番号 INT、 
数量 DECIMAL(10,3)、 
輸入価格 DECIMAL(10,2)、 
importvalue DECIMAL(10,2), -- 外部キー制約を定義し、外部キーフィールドと参照されるプライマリテーブルフィールドを指定します CONSTRAINT fk_importdetails_importhead 
外部キー (リスト番号) 参照 importhead (リスト番号)
);

この SQL ステートメントを実行すると、テーブルの作成時に fk_importdetails_importhead という名前の外部キー制約が定義されます。同時に、この外部キー制約のフィールド listnumber がテーブル importhead のフィールド listnumber を参照することを宣言します。

作成が完了したら、SQL ステートメントを使用してそれを表示できます。ここでは、システム情報を保存するために MySQL 組み込みデータベースを使用する必要があります。

情報スキーマ。外部キー制約に関する関連情報を表示できます。

外部キー制約が配置されているテーブルはimportdetailsで、外部キーフィールドはlistnumberです。

参照されるメイン テーブルは importhead であり、参照されるメイン テーブル フィールドは listnumber です。

このように、外部キー制約を定義することで、2 つのテーブル間の関連関係を確立しました。

3. 接続する

MySQL には、INNER JOIN と OUTER JOIN の 2 種類の結合があります。

  • 内部結合とは、クエリ結果が結合条件を満たすレコードのみを返すことを意味します。この結合方法は、より一般的に使用されます。
  • 外部結合は異なり、クエリ結果として、特定のテーブル内のすべてのレコードと、結合条件を満たす別のテーブルのレコードが返されます。

外部キーを定義するときは、次の規則に従う必要があります。

  • プライマリ テーブルは、データベース内に既に存在しているか、現在作成中のテーブルである必要があります。後者の場合、マスターテーブルとスレーブテーブルは同じテーブルです。このようなテーブルは自己参照テーブルと呼ばれ、この構造は自己参照整合性と呼ばれます。
  • 主テーブルには主キーを定義する必要があります。
  • 主キーには null 値を含めることはできませんが、外部キーには null 値が許可されます。つまり、外部キーの null 以外の値がすべて指定された主キーに表示されている限り、この外部キーの内容は正しいことになります。
  • メイン テーブルのテーブル名の後に列名または列名の組み合わせを指定します。この列または列の組み合わせは、主テーブルの主キーまたは候補キーである必要があります。
  • 外部キーの列数は、主テーブルの主キーの列数と同じである必要があります。
  • 外部キー列のデータ型は、主テーブルの主キー内の対応する列のデータ型と同じである必要があります。

要約する

これで、MySQL 外部キー設定に関するこの記事は終了です。MySQL 外部キー設定に関するより詳しい情報は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 主キー、外部キー、複合主キーを作成するための MySQL ステートメント
  • MySQL 外部キーの使用法の詳細な説明
  • MySQL 外部キーの使用法と詳細な説明
  • mysql 外部キーを作成する
  • MySQL の主キーと外部キーを理解するための簡単なチュートリアル
  • MySQL 外部キー削除問題の概要
  • MySQL の外部キー制約の詳細な説明
  • 初心者のためのMySQL外部キーの設定方法

<<:  純粋な CSS 流星群の背景サンプルコード

>>:  未来志向の総合的なウェブデザイン:プログレッシブエンハンスメント

推薦する

MySql ストレージ エンジンとインデックスに関する知識のまとめ

ストレージエンジンデータベース ストレージ エンジンとは何ですか?データベース エンジンは、データベ...

MySQLとOracleの誤解の詳細な説明

目次本質的な違いデータベースセキュリティ権限スキーマの移行パターンオブジェクトの類似性スキーマオブジ...

Mysql の使用法の概要

導入EXISTS は、サブクエリが少なくとも 1 行のデータを返すかどうかを確認するために使用されま...

CSS3でハートを描く

成果を達成する要件/機能: CSS + HTML を使用してハートを描く方法。分析:正方形と 2 つ...

MySQL 8.0.20 のインストールと設定の詳細なチュートリアル

この記事では、MySQL 8.0.20のインストールと設定方法についての詳細なチュートリアルを参考ま...

ブラウザ内でHTMLタグを中央に配置するCSSスタイル

CSS スタイル:コードをコピーコードは次のとおりです。 <スタイル タイプ="te...

CSSはフロートをシミュレートして、画像の左右を囲む中央テキストの効果を実現します。

画像の周囲にテキストを折り返すとは何ですか?これは次の図の効果です。 エフェクトのCSSコードはここ...

MySQL5.7+ MySQL Workbenchのインストールと設定方法のグラフィックチュートリアル(MAC)

この記事では、主にMACオペレーティングシステムでのMySQL5.7とMySQLWorkbenchの...

MySQL トランザクションの概念と使用法の詳細な説明

目次情事の概念取引の状態取引の役割取引の特徴トランザクション構文トランザクション対応ストレージエンジ...

MySQL 5.7.20 圧縮版のダウンロードとインストールの簡単なチュートリアル

1. ダウンロードアドレス:参考: http://dev.mysql.com/downloads/m...

IE8互換表示(IE7モード)とスタンドアロンIE7の違いの詳細な説明

1つ。 IE8 互換表示の概要<br />新しいバージョンのブラウザが古い Web サイ...

32 典型的な列/グリッドベースのウェブサイト

列ベースの Web デザインのインスピレーションをお探しの場合は、32 個のクラシックな列/グリッド...

CSS ワールド - コード実践: 画像の Alt 情報の表示

ただし、デフォルトの src を持つ <img> 要素を使用してスクロール読み込み効果を...

jQueryは居住地を選択するためのドロップダウンボックスを実装します

居住地を選択するためのドロップダウンボックスをjQueryで実装するための具体的なコードは参考までに...

Angularの単一プロジェクトを複数プロジェクトにアップグレードするプロセス全体

目次序文開発環境新しいプロジェクトを作成するモバイルウェブプロジェクト角度付きJSONパブリックモジ...