UPDATE でデータを更新する
テーブルの既存データを更新するには UPDATE 文を使います。
基本構文
UPDATE テーブル名 SET カラム名 = 値 WHERE 条件;たとえば users テーブルで、id が 1 のユーザーの年齢を 30 に更新するには、こう書きます。
UPDATE users SET age = 30 WHERE id = 1;WHERE を忘れると全行が更新される
UPDATE 文で WHERE を省略すると、テーブルのすべての行が更新されてしまいます。
-- 危険!全員の年齢が 30 になる
UPDATE users SET age = 30;これは非常に危険です。UPDATE を実行する前に、WHERE 条件が正しいか必ず確認してください。本番環境では特に注意が必要です。
WHERE あり
条件に合う行だけが更新される
WHERE なし
全行が更新される(危険)
複数のカラムを更新する
カンマで区切ると、複数のカラムを一度に更新できます。
UPDATE users SET name = '田中太郎', age = 31 WHERE id = 1;計算式を使う
現在の値を元に計算することもできます。
-- 年齢を 1 増やす
UPDATE users SET age = age + 1 WHERE id = 1;
-- 全員の年齢を 1 増やす
UPDATE users SET age = age + 1;NULL を設定する
値を NULL にしたい場合は、そのまま NULL と書きます。
UPDATE users SET email = NULL WHERE id = 1;NOT NULL 制約があるカラムには NULL を設定できません。
LIMIT と組み合わせる
UPDATE に LIMIT をつけると、更新する行数を制限できます。
-- 最初の 10 件だけ更新
UPDATE users SET status = 'inactive' WHERE last_login < '2024-01-01' LIMIT 10;大量のデータを更新するとき、少しずつ処理したい場合に使えます。
更新前に確認する
UPDATE を実行する前に、SELECT で対象の行を確認しておくと安心です。
-- まず対象を確認
SELECT * FROM users WHERE id = 1;
-- 問題なければ更新
UPDATE users SET age = 30 WHERE id = 1;WHERE 条件が同じなので、SELECT で確認した行だけが更新されます。本番で UPDATE を実行するときの習慣にしておくとよいでしょう。












