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';
»それを自分で試してみてください