01 / 05
値だけ直したい
道具の数がへった、置き場が変わった。そのたびに行を消して入れなおすのは大げさだよね。
もうある行の値を書きかえるのが UPDATE。直したい列だけをねらって変えられるよ。
追加・更新・削除
INPUT · スライド
01 / 05
道具の数がへった、置き場が変わった。そのたびに行を消して入れなおすのは大げさだよね。
もうある行の値を書きかえるのが UPDATE。直したい列だけをねらって変えられるよ。
02 / 05
3つの部分に分かれているよ。
UPDATE tools … どの表かSET stock = 5 … どの列をどの値にするかWHERE id = 2 … どの行かSET は「セットする」、つまり値を入れなおすという意味だよ。
UPDATE tools SET stock = 5 WHERE id = 2;SELECT * FROM tools ORDER BY id;実行結果
1 | なわとび | たな | ひもが古い | 12 2 | ボール | かご | | 5 3 | ゼッケン | ロッカー | | 20 4 | タイマー | たな | でんちを交換 | 3 5 | コーン | そうこ | | 15 6 | ふえ | ロッカー | よく使う | 4
03 / 05
SET のうしろはカンマで区切れる。1文で何列でも直せるよ。
右がわに書けるのは値だけじゃない。
SET memo = NULL … 値を空にもどすSET stock = stock + 5 … いまの値をもとに計算するUPDATE tools SET place = 'そうこ', stock = 10 WHERE id = 1;SELECT * FROM tools ORDER BY id;実行結果
1 | なわとび | そうこ | ひもが古い | 10 2 | ボール | かご | | 8 3 | ゼッケン | ロッカー | | 20 4 | タイマー | たな | でんちを交換 | 3 5 | コーン | そうこ | | 15 6 | ふえ | ロッカー | よく使う | 4
04 / 05
ここがこの章でいちばん大事なところ。WHERE を書かないと、表の全部の行が同じ値に書きかわるよ。
エラーは出ない。静かに全行が変わるから気づきにくいんだ。
UPDATE tools SET place = 'そうこ';SELECT * FROM tools ORDER BY id;実行結果
1 | なわとび | そうこ | ひもが古い | 12 2 | ボール | そうこ | | 8 3 | ゼッケン | そうこ | | 20 4 | タイマー | そうこ | でんちを交換 | 3 5 | コーン | そうこ | | 15 6 | ふえ | そうこ | よく使う | 4
05 / 05
安全なやり方は決まっている。同じ WHERE で SELECT して対象を見てから書きかえることだよ。
2行返ってきたなら、書きかわるのもその2行。思ったより多かったら条件を直せばいい。ここから書いてみよう。
SELECT id, name, place FROM tools WHERE place = 'ロッカー';実行結果
3 | ゼッケン | ロッカー 6 | ふえ | ロッカー