コンピューター, プログラミング
演算子SQL INNER JOINは:構文と機能の例を
任意のデータベースを開発するデータを作成し、様々な情報を持つテーブルを充填するだけでなく、さらに仕事だけでなく、。 正しくテーブルおよびレポートからのデータの選択で、さまざまなタスクを実行するには、標準の選択デザインを使用します。
テーブルからデータを取得します
私たちは、データの選択やレポートの構築の問題を考える場合は、操作の複雑さのレベルを決定することができます。 オンラインストアや大企業では、例えば、形成されているデータベース、(音量に応じて)深刻に対処する場合、原則として、データの選択は、単一のテーブルに限定されるものではありません。 原則として、試料は、そのタスクに応じて、プログラマを行うリンクテーブルだけでなく、かなり多数だけでなく、ネストされたクエリ/サブクエリからのものであってもよいです。 1台のサンプルについて、最も単純な構造を使用することができます。
| 人から*を選択 |
どこの人 - あなたはデータ検索をしたいからテーブルの名前。
ただし、複数のテーブルからデータを選択する必要があります場合は、標準デザインの一つは、複数のテーブルを結合するために使用することができます。
追加テーブルの接続方法
私たちは、主レベルでそのような構造の使用を考慮した場合、我々はすなわち、サンプル表に必要な数を接続するには、次のメカニズムを区別することができます。
- オペレータインナー参加します。
- 参加したり、それが第二の記録方式である左、左外部結合します。
- クロス参加します。
- フル参加。
実際にテーブルを結合するための演算子を使用すると、SQL文の使用を考慮することによって学ぶことができる - インナーが参加します。 次のようにその使用例は次のようになります。
人から*を選択 インナーはSu_Person = Pe_ID上区に参加します |
言語のSQLおよびインナーオペレータは原則として、かなり具体的な、複雑なクエリ構造の実施を加速することができ、二つ以上のテーブルを結合するために使用できるだけでなく、だけでなく、大幅にデータベース管理者の作業を容易に他のサブクエリを、接続するために、そして参加しましょう。
ラインでのテーブル行のデータを組み合わせます
私たちはラインで単一のテーブル行に組み立てサブクエリ、およびデータの多数の接続を考慮した場合、あなたはまた、事業者の連合と連合のすべてを使用することができます。
これらの構造体の使用が目的と彼が最終的に達成するために望んでいる結果を設定するために、開発者に依存します。
説明内部は、オペレータに参加します
ほとんどの場合、オペレータが内部結合で使用するSQL言語で複数のテーブルを結合します。 インナーはSQLに参加説明は、単にデータベースを理解し始めている平均的なプログラマーを理解することは非常に簡単です。 私たちはこのような構造の作業のメカニズムの説明を考えると、私たちは以下の画像を取得します。 全体としての論理演算子は、交差点やサンプリングの可能性がクエリに含まれる各テーブルにあるデータのみに基づいて構築されています。
私たちは、グラフィック解釈の面で、この種の仕事を見れば、我々はSQLインナーオペレータ構造に参加し得る、以下のスキームによって示すことができるそれらの例:
例えば、我々は図に概略的に示した2つのテーブルを持っています。 彼らは、順番に、エントリの数が異なります。 各テーブルに関連する分野を持っています。 私たちは、図面に基づいてオペレータの作業を説明しようとした場合、返される結果が客室は相互接続されたフィールドが一致している2つのテーブルからレコードのセットになります。 簡単に言えば、クエリは、データ数1のテーブルにある、(テーブル番号2に)レコードだけを返します。
インナーの構文は、参加します
前述したように、オペレータインナーは、すなわち、その構文、非常にシンプルに参加します。 単一のサンプル内のテーブル間の関係の組織のために、すなわち、ソフトウェアSQLコードの単一の行に規定されたオペレータの構築以下の模式図を覚えて使用すればよいです。
- インナーには、[接続するためのテーブルのキーフィールド] = [テーブルのプラグイン可能なキーフィールド]で[テーブル名]に参加します。
この文での通信のために、主テーブルのキーを使用しています。 原則として、従業員に関する情報を格納するテーブルのグループでは、以前に人区を説明し、少なくとも一つの同様のレコードを持っています。 だから、近いSQL内部結合演算子、少し先に示されている例を見てください。
【実施例の説明とオーディオ・サンプル・テーブルへの接続
私たちは、会社で働くすべての従業員に関する情報を格納するPersonテーブルを持っています。 Pe_ID - ちょうどテーブルのマスターキーがフィールドであることに注意してください。 ただ、その上に、バンドルを移動します。
第2のテーブル区は、従業員が働いている事業所についての情報を格納します。 彼女は、今度は、Su_PersonフィールドPersonテーブルを介して接続されています。 これは何を意味するのでしょうか? データスキーマに基づいて、テーブル内のレコードごとにテーブル単位で「従業員」は、彼らが働く部門の情報になるということができます。 それは、この通信のためのものであり、内部結合演算子を動作します。
のより直感的な使用のためにオペレータSQLインナー(1つのまたは2のテーブルのためにその使用例)が参加を検討してください。 私たちは同じテーブルの例を考えた場合、すべてが非常に簡単です:
人から*を選択 インナーはSu_Person = Pe_ID上区に参加します |
例では、2つのテーブルとサブクエリを接続します
演算子SQLインナーは、複数のテーブルからデータを取得するために使用されているの例としては、上記のように配置することが可能に参加し、それが原則の少し複雑化に取り組んでいます。 二つのテーブルのタスクを複雑にします。 例えば、我々は部門のそれぞれで全部門に関する情報を格納するテーブルを出発持っています。 この表では分割数と従業員番号を記録し、各部門のサンプルデータの名によって補完されなければなりません。 今後、それはあなたがこの問題を解決するために2つのメソッドを使用することができると言って価値があります。
最初の方法は、サンプリングする部署テーブルを接続することです。 次のようにしてもよい。この場合、要求を整理します。
人からPe_ID、Pe_Name、Su_Id、Su_Name、Dep_ID、Dep_Nameを選択 インナーはSu_Person = Pe_ID上区に参加します インナーはSu_Depart = Dep_IDとPe_Depart = Dep_IDに出発に参加します |
問題を解決するための第二の方法は - ないすべてのデータが部門表から選択されたが、唯一の必要される中でサブクエリを使用することです。 これが第一の方法とは対照的であり、それは要求の時間を短縮します。
人からPe_ID、Pe_Name、Su_Id、Su_Name、Dep_ID、Dep_Nameを選択 インナーはSu_Person = Pe_ID上区に参加します インナーはSu_Depart = Dep_IDとPe_Depart = Dep_IDにTとして(セレクトDep_ID、Dep_Name、出発からPe_Depart)に参加します |
このような配置は、常に作業要求をスピードアップすることができないことは注目に値します。 (音量が大きすぎる場合)一時テーブルに追加サンプル・データを使用する必要がある場合、時には場合がある、そしてそれは主サンプルと混合しました。
使用例は、内部テーブルの数が多いからサンプルにオペレータに参加します
建設は、相互接続されたデータテーブルとサブクエリのサンプル、かなりの量のための複雑なクエリの使用を含みます。 これらの要件は、SQLインナー結合構文を満たすことができます。 オペレータの使用の例は、この場合も、ネストされたサブクエリの数が多い、多くの記憶場所のサンプルだけではないが複雑にすることができます。 具体的な例については、システムテーブル(インナーSQL文を参加)のサンプルからデータを取ることができます。 実施例 - 表の3 - この場合には、かなり複雑な構造を有することになります。
この接続された場合(プライマリ・テーブル)と3つのさらなる導入複数のデータ選択条件に。
内部結合使用している場合、オペレータは、あなたがより迅速に実行し、問題を解決する方法を探す必要がありますので、より複雑なクエリは、もはやそれは、実装されることを覚えておいてください。
結論
最後に、私は一つのことを言いたい:データベースを扱う - それはプログラミングの中で最も難しいことではないので、あなたがしたい場合は一人一人が、データベースを構築するための知識を獲得することができますし、時間をかけて、経験を積む、あなたがプロのレベルに彼らと仕事を得ます。
Similar articles
Trending Now