データベースを使っていると、既に登録された情報を修正したい場面は多々あります。そんな時に使われるのがMySQL UPDATE文です。この記事では、MySQL UPDATEの基本構文から、WHERE句による条件指定、複数カラムの同時更新、そして安全に実行するためのポイントまでをわかりやすく解説します。
MySQLのUPDATE文とは?基本の仕組みを理解しよう
UPDATE文は既存データを変更するためのSQL文です。
MySQL UPDATE文は、データベースにすでに存在しているレコード・行の値を変更・更新するためのSQL文です。たとえば、社員の住所が変わったり、在庫数を調整したりする際に使われます。
INSERTやDELETEとの違い
- INSERT:新しいデータを追加する
- DELETE:データを削除する
- UPDATE:既存のデータを変更する
この3つを区別して使い分けることが、SQL操作の基本です。
UPDATEが必要になる代表的なシーン
- 顧客情報の修正(住所・電話番号など)
- 商品の価格変更
- ステータスフラグの更新(完了・未完了など)
UPDATE文の基本構文と書き方
MySQL UPDATEの基本的な構文は以下の通りです。
UPDATE テーブル名
SET カラム名 = 値
WHERE 条件;
単一カラムの値を変更する例:
UPDATE users
SET name = '山田太郎'
WHERE id = 3;
この例では、idが3のレコードのnameカラムを「山田太郎」に変更しています。
より詳しい構文や実行順序については、MySQL UPDATE文の基本と実行の流れを参考にすると理解が深まります。
SQLの実行順序と注意点
WHERE句を指定しないと、テーブル内の全データが更新されてしまいます。実務では、必ず条件を指定するようにしましょう。
WHERE句を使って更新対象を限定する方法
WHERE句で条件を指定する基本構文:
UPDATE employees
SET salary = 400000
WHERE department = '営業';
このようにWHERE句を使うことで、「営業部門の従業員のみ」を対象に更新することができます。
条件を間違えると全データが更新される危険性:
WHERE句を省略すると、テーブル内すべての行が更新されてしまいます。特にMySQL UPDATEでは、条件ミスが致命的なデータ損失につながることもあるため注意が必要です。
複数条件を指定する方法・AND/ORの使い分け:
UPDATE employees
SET bonus = 50000
WHERE department = '営業' AND position = '主任';
- AND:両方の条件を満たすデータのみ更新
- OR:いずれかの条件に該当するデータを更新
条件を組み合わせることで、より柔軟なデータ更新が可能です。
複数カラムを同時に更新する方法
SET カラム1=値1, カラム2=値2,…の書き方
MySQL UPDATEでは、複数のカラムを一度に更新できます。
UPDATE products
SET price = 2000,
stock = 50
WHERE id = 10;
このようにカンマ区切りで書くことで、複数カラムを同時に変更できます。
実用的な複数カラム更新の例:
UPDATE members
SET email = '[email protected]',
updated_at = NOW()
WHERE member_id = 101;
この例では、メールアドレスと更新日時を同時に変更しています。1回のSQLでまとめて処理することで、パフォーマンスの向上にもつながります。
UPDATE文を安全に使うためのポイント
WHERE句を必ず確認する習慣をつけましょう。誤って全レコードを更新してしまうと、元に戻すのが難しくなります。
実行前にSELECT文で条件を検証するコツ
SELECT * FROM users WHERE status = 'inactive';
こうして対象データを事前に確認すれば、安全に更新を行えます。
トランザクション・ROLLBACKの活用
MySQLのトランザクション機能を使うと、更新ミスを元に戻すことができます。
START TRANSACTION;
UPDATE orders SET status = '完了' WHERE id = 50;
ROLLBACK; -- 間違えた場合は戻せる
COMMIT; -- 問題なければ確定
特に複数テーブルを同時に更新する際は、トランザクションが必須です。
実践・UPDATE文のサンプルコード集
単一レコードを更新する例:
UPDATE customers
SET address = '東京都新宿区'
WHERE customer_id = 5;
条件付きで複数レコードを更新する例:
UPDATE orders
SET status = '配送中'
WHERE status = '準備中';
NULL値や文字列の更新例:
UPDATE employees
SET phone = NULL
WHERE id = 7;
UPDATE employees
SET position = '管理職'
WHERE id IN (2, 4, 6);
これらの例を理解しておけば、MySQL UPDATEを自在に扱えるようになります。初心者の方は、MySQLのUPDATE文とは?初心者でもわかる丁寧な解説を併せて読むと、より理解が深まるでしょう。
まとめ|MySQLのUPDATEを正しく使いこなそう
MySQL UPDATEは、既存データを変更するための重要なSQL文です。WHERE句で条件を正しく指定し、安全にデータを更新することが大切です。複数カラムの同時更新を活用すれば、効率的なデータ操作が可能になります。実行前にSELECTで確認し、トランザクションで安全性を確保しましょう。UPDATE文を正しく使いこなせば、MySQLのデータ管理がよりスマートになります。確実な更新方法を身につけ、ミスのないデータ操作を心がけましょう。


