01 / 05
追加・更新・削除
INPUT · スライド
行を消す
02 / 05
`DELETE FROM` の形
DELETE FROM 表名 WHERE 条件; の形。条件の書き方は SELECT のときとまったく同じだよ。
列を選ぶ場面がないので、DELETE のうしろに列名は書かない。ここが SELECT との見た目のちがいだよ。
DELETE FROM tools WHERE id = 4;SELECT * FROM tools ORDER BY id;実行結果
1 | なわとび | たな | ひもが古い | 12 2 | ボール | かご | | 8 3 | ゼッケン | ロッカー | | 20 5 | コーン | そうこ | | 15 6 | ふえ | ロッカー | よく使う | 4
03 / 05
条件に合う行はまとめて消える
WHERE に当たる行が2行あれば、2行とも消える。1行だけ消える保証はないよ。
id のように1行に決まる条件と、place のように何行にも当たる条件のちがいを意識しよう。
DELETE FROM tools WHERE place = 'ロッカー';SELECT * FROM tools ORDER BY id;実行結果
1 | なわとび | たな | ひもが古い | 12 2 | ボール | かご | | 8 4 | タイマー | たな | でんちを交換 | 3 5 | コーン | そうこ | | 15
04 / 05
`WHERE` を書かないと全部消える
WHERE を付けない DELETE は、表の中身を全部消す。実際に走らせるとこうなるよ。
表そのものは残るけれど、行が1つもないので確認の SELECT は何も返さない。
こわがらなくていい。確かめる手順を知っていればいいだけだよ。
DELETE FROM tools;SELECT * FROM tools ORDER BY id;実行結果
(1行も返ってこない)
05 / 05
消す前に数えてみる
消す前に、同じ条件で SELECT して対象を見るのが安全なやり方。件数だけ知りたいなら COUNT(*) が早いよ。
2行と分かってから消せば、思ったより消えることはない。ここから書いてみよう。
SELECT COUNT(*) FROM tools WHERE stock < 5;実行結果
2