DML文による表の操作32 / 50 問

以下のSQL文で、どのような結果が返されますか。

DESC employees
 名前                 NULL?    型
 -------------------- -------- ------------
 EMPLOYEE_ID          NOT NULL NUMBER(6)
 SALARY               NOT NULL NUMBER(8,2)

INSERT INTO employees (employee_id, salary)
VALUES (100, 1000), (101, 2000), (102, 3000), (103, 4000), (104, 5000);
A5件のデータが挿入される✓
B3件のデータが挿入される
C1件のデータが挿入される
Dエラーになる
正解:A解説

Oracle Database 23ai以降では、表値コンストラクタを使ってVALUES句に複数の行をカンマ区切りで指定できます。1回のINSERT文で5行がまとめて挿入されます。

INSERT INTO employees (employee_id, salary)
VALUES (100, 1000), (101, 2000), (102, 3000), (103, 4000), (104, 5000);

5行が作成されました。

表値コンストラクタのポイント

  • 各行の値の数は、列リスト(省略時は表のすべての列)の数と一致している必要があります。
  • INSERT文のほか、SELECT文のFROM句やMERGE文のUSING句でも使用できます。

前後の問題