name だけを指定して 1 行追加したい。正しく直したものは?
INSERT INTO users (name, email) VALUES ('ann');正答
- INSERT INTO users (name) VALUES ('ann');
- INSERT INTO users VALUES ('ann');
- INSERT INTO users (name, email) VALUES ('ann', );
- INSERT INTO users (name) VALUES (ann);
解説
INSERT で列リストを書いたら、VALUES の値の個数と順序はそのリストに合わせる。(name, email) に対して値が 1 つしか無いためエラーになる。選択肢 2 のように列リストを省くと表の全列(id, name, email)ぶんの値が必要になり、やはり個数が合わない。選択肢 4 は引用符の無い ann が列名と解釈されエラー。列リストを明示する書き方は、列が増えても壊れにくい。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ