指摘・レビュー4 択難易度 基礎

このSQLへの指摘として正しいものは?

UPDATE users SET status = 'inactive';

正答

  1. WHERE 句が無いので、全ユーザーが inactive に更新される
  2. SET の後の代入は括弧で囲まないと構文エラーになる
  3. 'inactive' はダブルクォートで囲む必要がある
  4. UPDATE の後に FROM を書かないと、更新するテーブルを指定できない

解説

UPDATE は WHERE で対象行を絞らないとテーブルの全行を書き換える。構文としては正しいためエラーにならず、実行して初めて気づくことが多い。レビューで最優先に指摘すべき種類の誤り。文字列はシングルクォートで正しく、ダブルクォートは識別子用なので 3 番目の指摘は誤り。UPDATE に FROM は不要。

参考: www.sqlite.org

sqlupdatewhere

この問題を含む 指摘・レビュー のテストを制限時間つきで解く

指摘・レビュークイズへ