MySQL UPDATE クエリと例

⚡ スマートサマリー

MySQL UPDATEクエリは、テーブル内の既存の行を変更し、単一のステートメントで1つまたは複数のフィールドを変更します。このリソースでは、UPDATE構文、WHERE句によるフィルタリング、メンバーテーブルを用いた実行例、および意図しない大量更新を防ぐための安全対策について説明します。

  • 会<XNUMXxEXNUMX><XNUMXxXNUMXF>️️<XNUMXxXNUMXF>️️ 基本理念: UPDATE `table_name` SET `column_name` = 'new_value' [WHERE condition] は、フィルターに一致するすべての行の値を書き換えます。
  • ⚠️ 省略箇所: WHERE句がない場合、UPDATE文はテーブルのすべての行の列を書き換えます。
  • 🔢 値の書式設定: 文字列と日付の値にはシングルクォーテーションが必要ですが、数値には不要です。日付は「YYYY-MM-DD」形式に従います。
  • 🧩 複数の列: 複数の項目を一度に更新するには、各項目をカンマで区切ってください。
  • 🔍 検証手順: まずWHERE句をSELECT文として実行し、次にUPDATE文の後に再度実行して新しい値を確認してください。
  • 🛡️ セーフアップデートモード: MySQL Workbench は、WHERE 句がキー列でフィルタリングされていない UPDATE を拒否します。

UPDATEクエリとは何ですか?

その UPDATE MySQL このコマンドは、テーブル内の行を変更するために使用されます。UPDATE クエリは、単一のフィールドまたは複数のフィールドを同時に変更できます。また、更新にも使用できます。 MySQL 別のテーブルから取得した値を含むテーブル。

UPDATEクエリを使用する理由 MySQL?

データは永久に正しい状態を保つことは稀です。会員の電話番号が変わったり、価格が変わったり、注文が保留状態から出荷済みになったりすることがあります。古い行を削除して新しい行を挿入すると、主キーと外部キー参照が壊れてしまいます。UPDATE文は行をその場で編集するため、IDとリレーションシップは変更後も維持されます。

UPDATEクエリは、次のような場合に適切なツールです。

  • 値が間違っているか、古くなっています。 スペルミスのある名前を修正したり、連絡先番号を更新したりする際に、レコードの他の部分には手を加えません。
  • 現状は前進しなければならない。 1つの列を書き換えるだけで、注文の状態を「保留中」から「発送済み」に切り替えることができます。
  • いくつかの分野が同時に変化する: 1つのステートメントで、新しい名前と新しい住所を同じパスで設定できます。
  • 一括修正が必要です。 複数の行に一致するWHERE句は、それらすべてに同じ編集を一度に適用します。

WHERE句のないUPDATE文はすべての行を書き換えるため、フィルターによって通常の修正と偶発的な上書きを区別することができます。

MySQL 更新コマンドの構文

目的が確立されたので、次のステップは構文です。UPDATEクエリの基本形式は MySQL 以下に示します。

UPDATE `table_name` SET `column_name` = 'new_value' [WHERE condition];

ここ:

  • `table_name`を更新します を伝えるコマンドです MySQL テーブル内のデータを変更する。
  • SET `column_name` = 'new_value' UPDATEクエリの影響を受けるフィールドの名前と値を指定します。値を設定する際、文字列データ型はシングルクォーテーションで囲む必要があります。数値には引用符は不要です。日付値はシングルクォーテーションで囲み、「YYYY-MM-DD」形式で指定する必要があります。
  • [WHERE条件] オプションであり、UPDATE クエリによって影響を受ける行数を制限するフィルタを適用するために使用できます。オプションの全リストは、 MySQL 更新ステートメントマニュアル.

それでは、メンバーテーブルのデータを更新する具体的な例を見ていきましょう。

更新 MySQL 例:

会員番号1と2の会員の記録に、以下の更新を行う必要があるとします。

会員番号 アップデートが必要です
1 連絡先番号を999から0759 253 532に変更してください。
2 名前をジャネット・スミス・ジョーンズに変更し、住所をメルローズ123に更新してください。

単一列を更新する

まずは会員番号1番から始めましょう。変更を加える前に、その記録を取得しましょう。

SELECT * FROM `members` WHERE `membership_number` = 1;

上記のスクリプトを実行すると、次の結果が得られます。

会員番号 フルネーム 性別 生年月日 実在住所 郵便住所 連絡先番号 メール
1 ジャネット・ジョーンズ 女性 21-07-1980 第一街区画 No 4 専用バッグ 999 janetjones@yagoo.cm

次に、以下に示すスクリプトを使用して連絡先番号を更新しましょう。

UPDATE `members` SET `contact_number` = '0759 253 532' WHERE `membership_number` = 1;

上記のスクリプトを実行すると、会員番号1の連絡先番号が999から0759 253 532に変更されます。SELECTを再実行すると、新しい値が反映されていることが確認できます。

会員番号 フルネーム 性別 生年月日 実在住所 郵便住所 連絡先番号 メール
1 ジャネット・ジョーンズ 女性 21-07-1980 第一街区画 No 4 専用バッグ 0759 253 532 janetjones@yagoo.cm

複数の列を更新する

会員番号2では、2つの項目を同時に変更する必要があります。これは更新前の記録です。

会員番号 フルネーム 性別 生年月日 実在住所 郵便住所 連絡先番号 メール
2 スミス・ジョーンズ 女性 23-06-1980 パークストリート NULL NULL jj@fstreet.com

以下のスクリプトは、1つのステートメントで両方の列を更新します。2つの代入式を区切るカンマに注意してください。

UPDATE `members` SET `full_names` = 'Janet Smith Jones', `physical_address` = 'Melrose 123' WHERE `membership_number` = 2;

上記のスクリプトを実行すると、会員番号2の氏名がJanet Smith Jonesに、住所がMelrose 123に更新されます。

会員番号 フルネーム 性別 生年月日 実在住所 郵便住所 連絡先番号 メール
2 ジャネット・スミス・ジョーンズ 女性 23-06-1980 メルローズ 123 NULL NULL jj@fstreet.com

💡ヒント: 「WHERE句」は、UPDATEクエリによって影響を受ける行数を制限します。これを省略すると、テーブル内のすべての行が書き換えられます。

よくあるご質問

MySQL 「一致した行数」と「変更された行数」を返します。「一致した行数」はWHERE句で選択された行数を示し、「変更された行数」は新しい値が古い値と同一の行を除外します。

はい。UPDATE と組み合わせる 登録 そして、SET句で2番目のテーブルを参照します。結合条件によって、各ターゲット行に対してどのソース行が新しい値を提供するかが決まります。

トランザクションでラップしてください。START TRANSACTION の後に ROLLBACK を実行すると、以前の値が復元されます。変更がコミットされると、バックアップからしか以前のデータを復元できないため、まず SELECT で WHERE 句をテストしてください。

はい。AIアシスタントは、記述された変更内容をUPDATE構文に変換し、WHERE句を提案します。モデルにテーブル構造を与え、生成されたクエリを実行する前にSELECT文でフィルタを確認してください。

AIモデルは実際のデータ行を見ることができないため、WHERE句が少しでも間違っていると、何千ものレコードが知らず知らずのうちに書き換えられてしまう可能性があります。 Rev生成されたすべてのステートメントを確認し、ステージングコピーで実行し、最新のバックアップを保持してください。