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

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クエリによって影響を受ける行数を制限します。これを省略すると、テーブル内のすべての行が書き換えられます。
