ホームページ > データベース > mysql チュートリアル > mysql における外部キーの役割

mysql における外部キーの役割

下次还敢
リリース: 2024-05-01 20:30:27
オリジナル
648 人が閲覧しました

MySQL の外部キーは、制約関係とデータ保守の役割を果たし、次の 3 つの主な機能があります。テーブル間の参照整合性を確保し、テーブル レコードの削除または更新によって引き起こされるデータの不整合を防止します。ルール カスケードにより、テーブル間の操作が強制されます。参照整合性を確保し、孤立レコードを防止します。インデックスを使用してクエリのパフォーマンスを最適化し、外部キーを使用して特定の主キーを参照するサブテーブル内のレコードを迅速に検索します。

mysql における外部キーの役割

MySQL における外部キーの役割

外部キーは、MySQL データベースで重要な役割を果たします。テーブル間の関係の制約および維持者。

機能 1: データの整合性の確保

外部キーの機能は、テーブル間の参照関係が常に一貫していることを保証することです。たとえば、Orders テーブルと Products テーブルでは、Orders テーブルの Product ID 外部キーは Products テーブルの Product ID 主キーを参照します。 Products テーブルでレコードが削除されると、外部キー制約により、そのレコードを参照する Orders テーブルのレコードがすべて削除されるまで操作が実行されなくなり、データの不整合が防止されます。

機能 2: データ カスケードの強制

外部キーを使用すると、テーブル間のカスケード操作を強制できます。テーブルの主キー レコードを削除または更新するときに、アクション (そのレコードを参照するサブテーブル レコードの更新または削除) を自動的にカスケードするように外部キー ルールを設定できます。これにより、参照整合性が保証され、連鎖的な削除または更新によって発生する孤立したレコードが防止されます。

機能 3: クエリ パフォーマンスの最適化

外部キー インデックスを使用することにより、MySQL はテーブル間のクエリ パフォーマンスを最適化できます。インデックスを使用すると、特定の主キー レコードを参照する子テーブル内のレコードをすばやく見つけることができるため、大量のデータをスキャンする必要性が軽減されます。これは、複数のテーブルが関係する大規模なクエリの場合に特に重要です。

次の例は、orders テーブルと products テーブルの間の外部キー関係を示しています。

1

2

3

4

5

6

7

8

9

10

11

12

13

<code>CREATE TABLE orders (

  order_id INT NOT NULL AUTO_INCREMENT,

  product_id INT NOT NULL,

  quantity INT NOT NULL,

  PRIMARY KEY (order_id),

  FOREIGN KEY (product_id) REFERENCES products(product_id)

);

 

CREATE TABLE products (

  product_id INT NOT NULL AUTO_INCREMENT,

  product_name VARCHAR(255) NOT NULL,

  PRIMARY KEY (product_id)

);</code>

ログイン後にコピー
この例では、

order テーブルの product_id 列は、products テーブルの product_id 列への外部キーです。この外部キー関係により、各注文が有効な商品を参照することが保証されます。

以上がmysql における外部キーの役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート