SQL INSERT INTO SELECTステートメント
SQL INSERT INTO SELECTステートメント
INSERT INTO SELECT
ステートメントは、あるテーブルからデータをコピーし、それを別のテーブルに挿入します。
INSERT INTO SELECT
ステートメントでは、ソース テーブルとターゲット テーブルのデータ型が一致している必要があります。
注:ターゲットテーブルの既存のレコードは影響を受けません。
INSERT INTO SELECT構文
あるテーブルから別のテーブルにすべての列をコピーします。
INSERT INTO <em>table2</em>
SELECT * FROM <em>table1
</em>WHERE <em>condition</em>;
あるテーブルから別のテーブルにいくつかの列のみをコピーします。
INSERT INTO <em>table2 </em>(<em>column1</em>, <em>column2</em>, <em>column3</em>, ...)
SELECT <em>column1</em>, <em>column2</em>, <em>column3</em>, ...
FROM <em>table1</em>
WHERE <em>condition</em>;
デモデータベース
このチュートリアルでは、よく知られているNorthwindサンプルデータベースを使用します。
以下は、「顧客」テーブルからの選択です。
顧客ID |
顧客名 |
連絡先 |
住所 |
街 |
郵便番号 |
国 |
---|---|---|---|---|---|---|
1 |
アルフレッド・フードボックス | マリア・アンダース | オベレ通り57 | ベルリン | 12209 | ドイツ |
2 | アナ・トルヒーヨ サンドイッチとアイスクリーム | アナ・トルヒーヨ | コンスティトゥシオン通り2222番地 | メキシコDF | 05021 | メキシコ |
3 | アントニオ・モレノ・タケリア | アンソニー・モレノ | マタデロス 2312 | メキシコDF | 05023 | メキシコ |
そして、「サプライヤー」テーブルからの選択:
サプライヤーID |
サプライヤ名 |
連絡先 |
住所 |
街 |
郵便番号 |
国 |
---|---|---|---|---|---|---|
1 | エキゾチック・リキッド | シャーロット・クーパー | 49 ギルバート ストリート | ロンドン | EC1 4SD | イギリス |
2 | ニューオーリンズのケイジャン料理 | シェリー・バーク | 私書箱 78934 | ニューオーリンズ | 70117 | アメリカ合衆国 |
3 | ケリーおばあちゃんのホームステッド | レジーナ・マーフィー | 707オックスフォードロード。 | アナーバー | 48104 | アメリカ合衆国 |
SQL INSERT INTO SELECTの例
次のSQLステートメントは、"Suppliers"を"Customers"にコピーします (データが入力されていない列にはNULLが含まれます)。
例
INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers;
次のSQLステートメントは、"Suppliers"を"Customers"にコピーします (すべての列に入力します)。
例
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
SELECT SupplierName, ContactName, Address, City, PostalCode, Country FROM Suppliers;
次のSQLステートメントは、ドイツのサプライヤーのみを「顧客」にコピーします。
例
INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country FROM Suppliers
WHERE Country='Germany';
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。