version 11.3 (Modified)
INSERT INTO {sql_name | sql_string}
[(column_reference, ..., column_reference)]
{VALUES({arithmetic_expression |NULL}, ..., {arithmetic_expression |NULL}) |subquery}
説明
INSERTコマンドは既存のテーブルにデータを追加するために使用します。データを追加するテーブルはsql_nameまたはsql_stringを使用して渡されます。オプションのcolumn_referenceは、値が挿入されるカラム名を指定します。column_referenceが渡されない場合、値はデータベース中の順番通りに格納されます (最初の値は一番目のカラムに、二番目の値は二番目のカラムに)。
VALUESキーワードは、指定したカラムに格納する値を渡すために使用します。arithmetic_expressionまたはNULLを渡すことができます。さらに値として渡す一連のデータを挿入するために、subqueryをVALUESキーワード中に渡すこともできます。
VALUESキーワード中に渡す値の数はcolumn_referenceで渡した数と一致しなければならず、それぞれの値とカラムのデータタイプは一致しているか、少なくとも変換可能でなければなりません。
INSERTコマンドはシングルおよびマルチロークエリでサポートされています。しかしマルチローのINSERT文はUNIONおよびJOIN操作を許可しません。
例題
1. これはtable2のセレクションをtable1に挿入する例題です:
INSERT INTO table1 (SELECT * FROM table2)
2. この例題はテーブルを作成し、値を挿入します:
CREATE TABLE ACTOR_FANS (ID INT32, Name VARCHAR); INSERT INTO ACTOR_FANS (ID, Name) VALUES (1, 'Francis’);
3. 複数行のシンタックスにより、うんざりするような行の繰り返しを避けることができます。
INSERT INTO MyTable
(Fld1,Fld2,BoolFld,DateFld,TimeFld, InfoFld)
VALUES
(1,1,1,'11/01/01','11:01:01',’First row’),
(2,2,0,'12/01/02','12:02:02',’Second row’),
(3,3,1,'13/01/03','13:03:03',’Third row’),
………
(7,7,1,'17/01/07','17:07:07',’Seventh row’);
4. 複数行のシンタックスと一緒に、4Dの変数または配列を使用することもできます。
INSERT INTO MyTable
(Fld1,Fld2,BoolFld,DateFld,TimeFld, InfoFld)
VALUES
( :vArrId, :vArrIdx, :vArrbool, :vArrdate, :vArrL, :vArrText);
Note: 同じINSERTステートメントでは、単純な変数と配列を組み合わせることはできません。
参照
arithmetic_expression, column_reference, DELETE, subquery.