データを更新するには「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」で条件を指定しない場合は、テーブルのすべてのデータが更新される。