MySQLのUPDATE文とは?初心者でもわかる丁寧な解説

こんにちは。ゆうせいです。
今回は、データベースを操作するときによく使う MySQLのUPDATE文 について、初心者にもわかるように丁寧に解説していきます。SQLの中でも特に実務で使う頻度が高いこのコマンド、きちんと理解しておきたいですね。
MySQLのUPDATE文ってなに?
データベースの「上書き」係
UPDATE
文は、すでに存在しているデータを書き換える(上書きする)ための命令です。
たとえば、社員の住所が変わったとき、その情報を修正するのに使われます。
UPDATE文の基本構文
UPDATE テーブル名
SET カラム名1 = 値1, カラム名2 = 値2
WHERE 条件;
読み方としては、
- 「このテーブルの」
- 「このカラムの値を」
- 「この条件に当てはまるデータだけに対して」
- 「こう変更しなさい」
という命令になります。
具体的な例で見てみよう!
例1:社員の住所を更新
たとえば、employees
テーブルで「IDが5の人の住所を変えたい」ときはこんな感じ:
UPDATE employees
SET address = '新宿区'
WHERE id = 5;
ポイント:WHERE
句は絶対に忘れないように!
もしWHERE
句を省略すると…なんとすべてのレコードが書き換えられてしまうんです!
これは本当に注意が必要です。消しゴムで全部の名前を消してしまうようなもの。
SET句で複数のカラムを同時に更新できる
UPDATE employees
SET address = '新宿区', phone = '03-1234-5678'
WHERE id = 5;
このように、カンマで区切ればいくつもの項目を一度に変更できます。
まるで一度に何枚もの履歴書を修正するような感じですね。
WHERE句の条件を工夫しよう
条件で対象を絞り込む
例:
UPDATE employees
SET salary = salary * 1.1
WHERE department = '営業';
このように、特定の部署だけを対象にして給料を10%アップ、なんてこともできます。
条件がないとどうなるか?
UPDATE employees
SET salary = salary * 1.1;
→ 全社員の給料が10%アップします。
これは意図した動作ならOKですが、そうでないなら大問題です!
数式を使ったUPDATEも可能!
たとえば、価格を8%増やすなら:
UPDATE products
SET price = price * 1.08;
これは「新しい価格 = 現在の価格 × 1.08」と同じです。
日本語にすると:
価格 = 価格 × 1.08
このように、計算を含んだ更新も簡単にできます!
UPDATE文のメリットとデメリット
項目 | 内容 |
---|---|
メリット | 一部のデータだけを簡単に変更できる |
メリット | 条件を付ければ特定の行だけ変更できる |
デメリット | WHEREを間違えると全データが変わる危険あり |
デメリット | バックアップがないと元に戻せない |
つまり、慎重さが求められるコマンドだということですね!
よくあるミスとその防ぎ方
WHERE句を忘れる
→ 防ぐには、まずSELECT
文で対象を確認しましょう。
SELECT * FROM employees WHERE id = 5;
この結果を見てから、同じ条件でUPDATE
を実行するのが安全です!
NULLとの扱いを間違える
NULL
は「値がない」という特殊な状態。
たとえば、NULLを条件に使うときはこんなふうに書きます:
UPDATE employees
SET phone = '未登録'
WHERE phone IS NULL;
= NULL
ではなく、IS NULL
を使う必要があります。
UPDATE文を実行する前のチェックリスト
- 必ず
WHERE
句があるか確認 SELECT
文で対象レコードを先に確認- 必要なら
LIMIT
で件数を制限 - 本番前にバックアップをとる
今後の学習ステップ
UPDATE文を理解したら、次のステップとして以下のトピックがおすすめです:
- トランザクション(複数のUPDATEをまとめて行う方法)
- ROLLBACK(間違ったら戻す方法)
- サブクエリとJOINを使ったUPDATE
- 条件付きCASE文の活用
特にJOINを使ったUPDATEは応用的で、実務でもよく使います。
もっと知りたいことがあれば、遠慮なく聞いてくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。