DML文を使用した表の管理32 / 50 問

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

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

INSERT INTO employees VALUES (102);
A1件のデータが挿入され、SALARYにはNULLが入る
B1件のデータが挿入され、SALARYには0が入る
Cエラーになる✓
D何も挿入されないが、エラーにはならない
正解:C解説

列リストを省略したINSERT文では、表のすべての列(2列)の値を、表の列の順序どおりに指定する必要があります。
今回は値が1つしかないため、値の数が不足してエラーになります。

INSERT INTO employees VALUES (102);

ORA-00947: 値の数が不足しています

正しい書き方の例

INSERT INTO employees VALUES (102, 3000);

1行が作成されました。

なお、列リストで(employee_id)だけを指定した場合は値の数は一致しますが、SALARYにはNOT NULL制約があるため、NULLを挿入できずにエラー(ORA-01400)になります。

前後の問題