【SQL初心者向け】UPDATE文は「記憶の書き換え」だ!WHEREを忘れて世界を滅ぼすな

UPDATE データベース

UPDATEはSQLの中でも特に恐ろしい呪文

データベースに入れたデータは、永遠にそのままではありません。
引っ越せば住所が変わるし、誕生日が来れば年齢が変わります。

そんな時、データを修正するために使うのが「UPDATE(アップデート)」文です。

「なんだ、ただの上書き保存か(*´ω`*)」

そう思って本番環境で油断した瞬間、あなたのエンジニア人生は終わるかもしれません。

UPDATE文は、SQLの中でも恐ろしい「大量破壊兵器」になり得るからです。
今日は、震える指を抑えながら、安全にデータを書き換える方法を伝授します。


基本構文:セットで覚える「UPDATE SET WHERE」

UPDATE文を書くときは、以下の3つの単語をリズムよく唱えてください。

  • UPDATE (このテーブルを更新するぞ)
  • SET (この列を、この値に変えろ)
  • WHERE (この条件の人だけな!)
UPDATE テーブル名 SET 列名 = 新しい値 WHERE 条件;

この3つはセットです。
特に最後の WHERE 。これが命綱です。


具体例:田中さんの年齢を修正する

では、「users」テーブルにいる「田中」さんが誕生日を迎えて、26歳になったとします。
年齢データを 25 から 26 に書き換えます。

UPDATE users SET age = 26 WHERE name = '田中';Code language: JavaScript (javascript)

これで完了です。
データベースの管理人は、「usersテーブルだな。名前が田中のやつを探して…いた! こいつのageを26に上書き!」という処理を一瞬で行います。

複数の列を同時に変えることもできます。カンマ , で区切るだけです。

-- 年齢と住所を同時に変更
UPDATE users SET age = 26, address = '東京' WHERE name = '田中';Code language: JavaScript (javascript)

※少し脱線しますが、「これだとすべての田中さんが26歳に更新されちゃう😨」と気付いたあなた。すばらしいです。


悪夢:WHEREを忘れた世界線

さて、ここからがホラー映画の時間です。
もし、先ほどの命令から WHERE を書き忘れたらどうなるか。

-- WHERE条件のない、絶対に実行してはいけないコード
UPDATE users SET age = 26;

管理人はこう解釈します。
「usersテーブルだな。条件指定なしか…ということは『全員』だな! よし、全員の年齢を26歳に上書き!」

実行した瞬間、完了です。
100万人の会員がいれば、100万人全員が26歳になります。
赤ちゃんも、お年寄りも、全員26歳です。

元のデータ?消えました。基本的には戻せません。

これが「UPDATE文の事故」です。
たった一行のミスで、サービスを停止させ、損害賠償問題に発展する。
SQLにおいて、省略は美徳ではありません。破滅への近道です。


防御策:いきなり撃たず、まず確認するべし

この悲劇を防ぐために、プロのエンジニアが必ずやっている儀式があります。

内容は単純で、「UPDATEの前に、SELECTで確認する」というものです。

いきなり更新命令を投げてはいけません。
まず、WHERE 以下の条件が正しいか、検索して確かめるのです。

1. まず検索する

SELECT * FROM users WHERE name = '田中';Code language: JavaScript (javascript)

「よし、田中さん1人だけが表示されたな。条件は合っている」

2. その後に更新する

UPDATE users SET age = 26 WHERE name = '田中';Code language: JavaScript (javascript)

この一手間を惜しむ人間は、いつか痛い目に遭います。
指差し確認です。「対象は田中、ヨシ!」と声に出してからエンターキーを押してください。


まとめ:更新ボタンは核のスイッチ

  • UPDATE SET WHERE:この3つは三位一体です。切り離さないこと。
  • WHERE忘れは死と思うこと:全データが同じ値になる。
  • 事前のSELECT:標的確認を怠らない。

データの追加(INSERT)は、間違えても消せば済みます。
しかし、更新(UPDATE)による上書きは、元に戻せません。

UPDATE文を実行するときは、核ミサイルの発射ボタンを押すような気持ちで臨んでください。

その緊張感が、あなたのデータを守ります。

コメント

タイトルとURLをコピーしました