DELETE FROM users; を実行した結果は?
正答
- WHERE が無いのでエラーになる
- users の全行が削除される
- 最初の 1 行だけ削除される
- users 表そのものが削除される
解説
DELETE は WHERE 句を省略すると表の全行を削除する。構文上は正しい文なので警告もエラーも出ず、そのまま実行される。表の定義(列やインデックス)は残るので、表自体が消える DROP TABLE とは異なる。本番で削除する前には、同じ WHERE 条件の SELECT で対象行を確認し、トランザクションの中で実行して件数を見てから COMMIT する。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ