ホームページ  >  記事  >  データベース  >  mysql の結合とリレーショナル テーブルの概要

mysql の結合とリレーショナル テーブルの概要

巴扎黑
巴扎黑オリジナル
2017-05-10 13:24:561475ブラウズ

結合

SQL の最も強力な機能の 1 つは、データ取得クエリの実行中にテーブルを結合する機能です。結合は SQL の SELECT を使用して実行できる最も重要な操作であり、結合とその構文をよく理解することは SQL を学習する上で非常に重要です。

結合を効果的に使用するには、リレーショナル テーブルとリレーショナル データベース設計の基本知識を理解する必要があります。次の紹介は、このコンテンツに関するすべての知識ではありませんが、始めるには十分です。


リレーショナルテーブル

リレーショナルテーブルを理解する最良の方法は、実際の例を見ることです。

商品カタログを含むデータベース テーブルがあり、商品カテゴリごとに 1 行があるとします。各アイテムについて保存される情報には、製品の説明と価格、および製品を製造するサプライヤーに関する情報が含まれます。

では、同じサプライヤーが製造した商品が複数ある場合、そのサプライヤー情報(サプライヤー名、住所、連絡方法など)はどこに保存されるのでしょうか?このデータを製品情報とは別に保管する理由は次のとおりです。

1. サプライヤー情報は同じサプライヤーが製造するすべての製品で同じであるため、製品ごとにこの情報を繰り返すのは時間と保管スペースの無駄です。

2. サプライヤー情報が変更された場合 (サプライヤーの移転や電話番号の変更など)、変更する必要があるのは 1 回だけです。

3. データが重複している場合 (つまり、サプライヤー情報が製品ごとに保存されている場合)、データを毎回同じ方法で入力することは困難です。一貫性のないデータをレポートに悪用するのは困難です。

重要な点は、同じデータが複数回出現することは決して良いことではないということです。これはリレーショナル データベース設計の基礎です。リレーショナル テーブルの設計は、情報が複数のテーブル (データの種類ごとに 1 つのテーブル) に確実に分解されるようにすることです。テーブルは、いくつかの一般的に使用される値 (つまり、リレーショナル デザインにおける関係) を通じて相互に関連付けられます。この例では、サプライヤー情報を格納するテーブルと製品情報を格納するテーブルの 2 つのテーブルを作成できます。ベンダー テーブルにはすべてのベンダー情報が含まれており、各ベンダーが 1 行を占め、各ベンダーが一意の識別子を持っています。この識別は主キーと呼ばれ、ベンダー ID またはその他の一意の値にすることができます。

products テーブルには製品情報のみが格納され、サプライヤー ID (ベンダー テーブルの主キー) 以外の他のサプライヤー情報は格納されません。ベンダーテーブルの主キーは製品の外部キーとも呼ばれ、ベンダーテーブルと製品テーブルを関連付けます。ベンダーIDは、ベンダーテーブルから対応するサプライヤーの詳細情報を検索するために使用されます。

外部キー (外部キー) 外部キーは、別のテーブルの主キー値を含むテーブル内の列であり、2 つのテーブル間の関係を定義します。

これの利点は次のとおりです:

1. サプライヤー情報が繰り返されないため、時間とスペースが無駄になりません。

2. サプライヤー情報が変更された場合、更新できるのはベンダー テーブル内の 1 つのレコードだけです。

3. データの重複がないため、データの処理が容易になります。要約すると、リレーショナル データを効率的に保存し、便利に処理できます。したがって、リレーショナル データベースは、非リレーショナル データベースよりもはるかに優れた拡張性を備えています。

スケーラビリティ (規模) 増加するワークロードに失敗することなく適応する能力。適切に設計されたデータベースまたはアプリケーションは、拡張性に優れていると言われます。

【関連おすすめ】

1. mysqlサブクエリとは何ですか?サブクエリを使用してフィルタリングするにはどうすればよいですか?

2.mysql はサブクエリを使用して計算フィールドを作成します

3.結合を使用する理由と結合の作成方法

4.MySQL の WHERE 句の重要性と複数のテーブルを結合する方法


以上がmysql の結合とリレーショナル テーブルの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。