最新のWeb開発のチュートリアル
 

SQL INSERT INTO SELECTステートメント


SQLを使用すると、他に一つのテーブルから情報をコピーすることができます。

1表からのINSERT INTO SELECT文のデータをコピーすると、既存のテーブルに挿入します。


SQLのINSERT INTO SELECTステートメント

INSERT INTO SELECT文が一つのテーブルからデータを選択し、既存のテーブルに挿入します。 ターゲット表の既存の行は影響を受けません。

SQLのINSERT INTO SELECT構文

私たちは別の、既存のテーブルに1つのテーブルからすべての列をコピーすることができます。

INSERT INTO table2
SELECT * FROM table1;

それとも別に、既存のテーブルに私たちが望むだけの列をコピーすることができます。

INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;

デモデータベース

このチュートリアルでは、よく知られているNorthwindサンプルデータベースを使用します。

下からの選択である"Customers"テーブルには:

顧客ID 顧客名 連絡先 住所 シティ 郵便番号
1

Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico

以下とからの選択"Suppliers"テーブル:

仕入 サプライヤ名 連絡先 住所 シティ 郵便番号 電話
1 エキゾチックな液体 シャーロット・クーパー 49ギルバートセント Londona EC1 4SD イギリス (171)555-2222
2 ニューオーリンズケイジャンデライト シェリー・バーク 私書箱78934 ニューオーリンズ 70117 アメリカ合衆国 (100)555-4822
3 おばあちゃんケリーのホームステッド レジーナマーフィー 707オックスフォードRdを。 アナーバー 48104 アメリカ合衆国 (313)555-5735

SQLのINSERT INTO SELECT例

わずか数の列をコピーし"Suppliers"への"Customers"

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers;
»それを自分で試してみてください

コピーのみのドイツサプライヤーを"Customers"

INSERT INTO Customers (CustomerName, Country)
SELECT SupplierName, Country FROM Suppliers
WHERE Country='Germany';
»それを自分で試してみてください