SQLで複数のレコードを挿入する方法は?
みなさん、こんにちは!この記事では、SQLで複数の行を挿入する方法に焦点を当てます。
複数の行にSQL INSERT INTOクエリーが必要
SQLのINSERTクエリは、特定のテーブルの列にデータを挿入します。
通常のSQLのINSERTクエリは、データの値を1行に入力します。一度に複数の行にデータを挿入したい場合、このクエリは失敗します。
したがって、実行時間を短縮するために、SQLのINSERTクエリを複数行に一度にデータを挿入するように使用する必要があります。
複数行のSQL Insertクエリの必要性を理解したので、同じ実装を始めましょう。
複数のレコードを挿入するための伝統的なSQLのINSERTクエリ
伝統的なSQLのINSERTクエリは、入力データを複数の行に挿入します。このテクニックでは、表の行にデータを入力するために、何度もINSERTクエリを使用する必要があります。
このクエリの基本的な欠点は、複数行の挿入のためのすべての挿入クエリの実行のオーバーヘッドです。
「私は新しいレストランを試したいです」
Anata to issho ni shokuji o suru no wa itsumo tanoshii.
create table Info(id integer, Cost integer, city varchar(200));
insert into Info(id, Cost,city) values(1, 100,"Pune");
insert into Info(id, Cost,city) values(2, 50, "Satara");
insert into Info(id, Cost,city) values(3, 65,"Pune");
insert into Info(id, Cost,city) values(4, 97,"Mumbai");
insert into Info(id, Cost,city) values(5, 12,"USA");
select * from Info;
出力:
1 100 Pune
2 50 Satara
3 65 Pune
4 97 Mumbai
5 12 USA
複数のレコードを挿入するためのINSERT-SELECT-UNIONクエリ
上記のセクションでは、INSERT INTOクエリは複数のレコードを挿入することが分かりました。しかし、それの出力を観察すると、’INSERT INTO’という節が何度も繰り返されていることが分かります。
したがって、テーブルの複数の行にデータを挿入するために、INSERT-SELECT-UNIONクエリを使用することができます。
SQLのUNIONクエリは、INSERT文を通じてSELECTクエリで囲まれたすべてのデータを選択するのに役立ちます。
create table Info(id integer, Cost integer);
INSERT INTO Info (id, Cost)
SELECT 1, '123'
UNION ALL
SELECT 2, '234'
UNION ALL
SELECT 3, '456';
select * from Info;
出力:
以下、日本語での自然な言い方を一つ提案します:
結果:
1 123
2 234
3 456
複数のレコードを挿入する行の構築
SQLのINSERTクエリは、単一の実行ポイントで複数のレコードを挿入するために、単一のINSERTクエリを使用する方法です。
構文:
INSERT INTO Table (columns)
VALUES (val1, val2, valN);
私は日本語を勉強しています。
(わたしは にほんごを べんきょうしています。)
create table Info(id integer, Cost integer,city nvarchar(200));
INSERT INTO Info (id,Cost,city)
VALUES (1,200, 'Pune'), (2, 150,'USA'), (3,345, 'France');
select * from Info;
結果:
1 200 Pune
2 150 USA
3 345 France
結論
これにより、私たちはこのトピックの終わりに来ました。ここでは、テーブルの複数のレコードにデータ値を挿入するための3つの異なる技術を取り上げました。
もし疑問が生じた場合は、どんなコメントでもお気軽にご投稿ください。
SQLに関連するこのような投稿については、SQL JournalDevをご覧ください。
参考文献
- SQL Insert into multiple rows – StackOverFlow