ホームページ > データベース > SQL > 選択への挿入の使用法

選択への挿入の使用法

DDD
リリース: 2023-07-06 16:47:15
オリジナル
34148 人が閲覧しました

選択への挿入の使用法

リレーショナル データベースでは、INSERT INTO SELECT は、クエリの結果を別のテーブルに挿入するために使用される一般的な SQL ステートメントです。この構文構造は、あるテーブルから別のテーブルにデータを簡単にコピーしたり、いくつかの条件に基づいてデータをフィルタリングして挿入したりするのに非常に役立ちます。

INSERT INTO SELECT の構文構造は次のとおりです。

INSERT INTO 表名 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ...
FROM 来源表
WHERE 条件;
ログイン後にコピー

このうち、INSERT INTO 句では、データを挿入する対象のテーブルと対象の列を指定します。 SELECT 句は、データを選択するテーブルを定義し、ターゲット テーブルに挿入する列を指定します。すべての列をターゲット テーブルに挿入する必要がないように、必要に応じて適切な列を選択できます。

SELECT 句のソース テーブルは、データが選択されるテーブルを指します。特定のテーブル名またはクエリ結果セットを指定できます。 INSERT INTO SELECT を使用する場合、データ転送とフィルタリングの要件を満たすために、必要に応じて複数のクエリ ステートメントをネストできます。

WHERE 句はオプションであり、ソース テーブル内の特定の条件を満たすデータをフィルタリングするために使用されます。たとえば、WHERE 句を使用して特定の条件を満たす行のみの挿入を制限したり、他の演算子 (IN、LIKE など) を使用してデータをさらにフィルタリングしたりできます。

次に、INSERT INTO SELECT の使用例をいくつか示します。

単純な挿入操作:

2 つのテーブル A と B があるとします。テーブル A には、列 id、name、および列が含まれています。 age、テーブル B には列 id と address が含まれています。テーブル A のデータをテーブル B の対応する列に挿入するには、次のステートメントを使用できます。

INSERT INTO B (id, address)
SELECT id, name
FROM A;
ログイン後にコピー

このようにして、テーブル A の id 列の値がテーブルの id 列に挿入されます。 B. テーブル A の名前列の値がテーブル B のアドレス列に挿入されます。他の列は無視されます。

WHERE 句を使用してフィルタリングします:

特定の条件を満たすデータのみを挿入する場合は、SELECT ステートメントに WHERE 句を追加できます。たとえば、テーブル A の年齢が 18 を超えるレコードのみをテーブル B に挿入するには、次のステートメントを使用できます。

INSERT INTO B (id, address)
SELECT id, name
FROM A
WHERE age > 18;
ログイン後にコピー

このようにして、条件を満たす行のみがテーブル B に挿入されます。 。

サブクエリを使用した挿入:

SELECT 句では、サブクエリを使用してデータを選択することもできます。たとえば、条件を満たす行を別のテーブルに挿入するには、次のステートメントを使用できます。

INSERT INTO C (id, address)
SELECT id, address
FROM B
WHERE id IN (SELECT id FROM A WHERE age > 18);
ログイン後にコピー

この方法では、最初にテーブル A から条件を満たす ID を選択し、次に対応する ID を選択します。これらの ID レコードに基づいてテーブル B から取得し、テーブル C に挿入します。

概要

INSERT INTO SELECT は、あるテーブルから別のテーブルにデータを簡単にコピーしたり、いくつかの条件に基づいてデータをフィルタリングして挿入したりできる強力な SQL ステートメントです。その柔軟性により、実際のデータベース操作に非常に役立ちます。

以上が選択への挿入の使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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