データベース管理システムでは、複数のテーブルからデータを結合して取得する機能は、効果的なデータの編成と操作に不可欠です。 JOIN 操作と DIVISION 操作は、ユーザーが指定された条件に基づいて複数のテーブルのデータを結合または分割できる 2 つのバイナリ リレーショナル操作です。この記事では、構文、型、SQL やその他のプログラミング言語での使用方法の例など、JOIN 操作と DIVISION 操作について詳しく説明します。
JOIN 操作は、関連する列または列のセット (キーと呼ばれます) に基づいて 2 つ以上のテーブルの行を結合します。結果として得られるテーブルは結合テーブルと呼ばれ、元のテーブルのすべての列が含まれており、各行は結合条件を満たす元のテーブルの行の組み合わせを表します。
JOIN には多くの種類があり、それぞれに独自の特性と使用例があります -
INNER JOIN - INNER JOIN は、結合基準に一致する 2 つのテーブルの行を結合します。条件を満たす行のみを返し、残りは破棄します。
OUTER JOIN - OUTER JOIN は、結合条件を満たさない行も含め、2 つのテーブルのすべての行を結合します。 OUTER JOIN には、LEFT JOIN、Right JOIN、FULL JOIN の 3 種類があります。
LEFT JOIN - LEFT JOIN は、左側のテーブルのすべての行と、右側のテーブルの一致するすべての行を返します。一致するものがない場合は、右側のテーブルの列に対して NULL 値が返されます。
RIGHT JOIN - RIGHT JOIN は、右側のテーブルのすべての行と、左側のテーブルの一致するすべての行を返します。一致しない場合は、左側のテーブルの列に NULL 値が返されます。
FULL JOIN - FULL JOIN は、両方のテーブルのすべての行に加えて、一致しない行の NULL 値を返します。
JOIN 操作の構文は、使用するプログラミング言語とデータベース管理システムによって異なります。以下は、SQL -
での JOIN 操作の一般的な構文の例です。 リーリーこの例では、SELECT ステートメントで table1 と table2 のすべての列を取得し、JOIN 句で ON キーワードを使用して結合するテーブルと結合条件を指定します。
以下は、「customer_id」列に基づいて「customers」テーブルと「orders」テーブルを結合する SQL の INNER JOIN の例です。 -
リーリーこの INNER JOIN は、"customers" テーブルと "orders" テーブルのすべての行を含むテーブルを返します。ここで、"customers" テーブルの "customer_id" 列は、"orders" テーブルの "customer_id" 列と一致します。
以下は、「Department_id」列に基づいて「employees」テーブルと「Departments」テーブルを結合する SQL の LEFT JOIN の例です。 -
リーリーこの LEFT JOIN は、「employees」テーブルのすべての行と、「Departments」テーブルの一致するすべての行を含むテーブルを返します。一致するものがない場合は、「Departments」テーブルの列に対して NULL 値が返されます。
DIVISION 演算は、指定された条件に基づいて、ある行セットを別の行セットに分割するバイナリ リレーショナル演算です。これは JOIN 操作に似ていますが、結果テーブルには最初のグループに属し、パーティション化基準を満たす行のみが含まれます。
DIVISION 演算の構文は、使用するプログラミング言語とデータベース管理システムによって異なります。以下は、SQL -
での DIVISION 演算の一般的な構文例です。 リーリーこの例では、SELECT ステートメントは table1 内のすべての列を取得し、WHERE 句は EXISTS キーワードを使用して、分割条件を満たす行が table2 にあるかどうかを確認します。
次に、SQL での DIVISION 操作の例を示します。これは、「customers」テーブルを「customer_type」列に基づいて 2 つのコレクションに分割します -
リーリーこの DIVISION 演算は、「customer_id」列に基づいて「orders」テーブル内に一致する行がある「customers」テーブル内のすべての行を含むテーブルを返します。
ここでは、JOIN 操作と DIVISION 操作を理解するのに役立つ追加トピックをいくつか紹介します -
自然結合と外部結合 - 自然結合は、同じ名前の列に基づいて 2 つ以上のテーブルの行を結合する内部結合です。外部結合は、結合条件を満たさない一方または両方のテーブルの行を含む任意のタイプの結合です。
デカルト積 - デカルト積は、結合条件を指定しない JOIN 操作の結果です。一方のテーブルの各行ともう一方のテーブルの各行を結合し、元の各テーブルの行数の積に等しい行数を持つテーブルを作成します。
自己結合- 自己結合は、結合条件に基づいて単一のテーブルの行を結合する結合タイプです。同じテーブル内の行を比較したり、テーブル内に階層を作成したりする場合に便利です。
SET 演算子 - SET 演算子は、複数の SELECT ステートメントの結果を 1 つの結果セットに結合するために使用されます。これらを JOIN および DIVISION 操作と組み合わせて使用すると、複数のテーブル内のデータをさらに操作できます。最も一般的な SET 演算子は、UNION、INTERSECT、および MINUS です。
インデックス作成 - インデックス作成は、テーブル内の行へのアクセスを高速化するための別個のデータ構造を作成するプロセスです。これを使用すると、スキャンおよび比較する必要があるデータの量を削減することにより、JOIN および DIVISION 操作のパフォーマンスを向上させることができます。
以上が二項関係演算: 連結と除算の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。