SQL4 択難易度 標準

name だけを指定して 1 行追加したい。正しく直したものは?

INSERT INTO users (name, email) VALUES ('ann');

正答

  1. INSERT INTO users (name) VALUES ('ann');
  2. INSERT INTO users VALUES ('ann');
  3. INSERT INTO users (name, email) VALUES ('ann', );
  4. INSERT INTO users (name) VALUES (ann);

解説

INSERT で列リストを書いたら、VALUES の値の個数と順序はそのリストに合わせる。(name, email) に対して値が 1 つしか無いためエラーになる。選択肢 2 のように列リストを省くと表の全列(id, name, email)ぶんの値が必要になり、やはり個数が合わない。選択肢 4 は引用符の無い ann が列名と解釈されエラー。列リストを明示する書き方は、列が増えても壊れにくい。

参考: www.sqlite.org

insert

この問題を含む SQL のテストを制限時間つきで解く

SQLクイズへ