【MySQL】データを更新する(update の使い方)

データを更新するには「UPDATE」文を使います。

ここでは MySQLコマンド「UPDATE」の具体的な使い方を解説していきます。

 

「UPDATE」の基本

以下のコマンドを実行すると、指定した条件に該当するデータの値を更新することができます。

UPDATE テーブル名 SET カラム1の名前 = カラム1の値, カラム2の名前 = カラム2の値, …… WHERE 条件;

 

条件に一致するデータを更新する

実際にMySQLサーバーに接続し、データを更新してみましょう。

 

あらかじめ「test」データベースの「users」テーブルに、以下のようにデータが保存されている例で進めていきます。

name age
佐藤 21
鈴木 25
田中 21
山田 32

データを保存するコマンド例

CREATE DATABASE test;
USE test;
CREATE TABLE users (name VARCHAR(100), age INT);
INSERT INTO users (name, age) VALUES ('佐藤', 21);
INSERT INTO users (name, age) VALUES ('鈴木', 25);
INSERT INTO users (name, age) VALUES ('田中', 21);
INSERT INTO users (name, age) VALUES ('山田', 32);
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

CREATE TABLE 文の詳しい使い方はこちら

INSERT INTO 文の詳しい使い方はこちら

 

それでは「name」カラムの値が 佐藤 のデータを対象に、「age」カラムの値を 22 に更新してみましょう。コマンドは以下。

UPDATE users SET age = 22 WHERE name = '佐藤';

 

コマンドを実行して、Query OK という表示が出てきたら、データを更新できたことになります。

メモ

WHERE の詳しい使い方はこちら

 

念のため、データを確認してみると、正しく更新されていることが確認できました。

SELECT * FROM users;

 

複数のカラムのデータをまとめて更新する

今度は「name」カラムの値が 佐藤 のデータを対象に、「name」カラムの値を 後藤、「age」カラムの値を 23 に更新してみましょう。コマンドは以下。

以下のようにカンマ(,)で区切って、複数のカラム名と値を指定します。

UPDATE users SET name = '後藤', age = 23 WHERE name = '佐藤';

 

コマンドを実行して、Query OK という表示が出てきたら、データを更新できたことになります。

 

念のため、データを確認してみると、正しく更新されていることが確認できました。

SELECT * FROM users;

 

すべてのデータを更新する

「WHERE」で条件を指定しない場合は、すべてのデータが更新されます。

以下のようにすると、「users」テーブルのすべてのデータの「age」カラムの値が 30 に更新されます。

UPDATE users SET age = 30;

 

コマンドを実行して、Query OK という表示が出てきたら、データを更新できたことになります。

 

念のため、データを確認してみると、正しく更新されていることが確認できました。

SELECT * FROM users;

メモ

「WHERE」の指定を忘れることによって、間違えて全てのデータを書き換えてしまわないように注意。

最初に「SELECT」文で対象のデータを取得し、そこから「UPDATE」文に書き換えるようにすると、不用意な事故を防ぐことができます。

 

ここまでが「UPDATE」の基本!

理解をさらに深めたい方は以下からの内容もご覧ください。

 

登録されているデータをもとに、値を更新する

すでに登録されているデータの値を使って更新することもできます。

 

「age」カラムの値に 10 を加えて更新するコマンド例

UPDATE users SET age = age + 1;

 

まとめ

以上、MySQLコマンド「UPDATE」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「UPDATE」コマンドでデータを更新することができる。
  • カンマ(,)で区切って、複数のカラム名と値を指定することができる。
  • 「WHERE」で条件を指定しない場合は、テーブルのすべてのデータが更新される。

 

MySQL入門メニュー