記事の内容
概要
UPDATE文は、既存のデータベース内のレコードを更新するために使用されます。
UPDATE
記述
UPDATE テーブル名 SET カラム名 = 変更内容 WHERE 条件;
【usersテーブルレコードをすべて表示】
mysql> SELECT * FROM users;
+----+-------+-----+
| id | name | age |
+----+-------+-----+
| 1 | user1 | 25 |
| 2 | user2 | 35 |
| 3 | user3 | 27 |
+----+-------+-----+
【レコード更新】
mysql> UPDATE users SET age = 45 WHERE id = 3;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
【usersテーブルレコードをすべて表示】
mysql> SELECT * FROM users;
+----+-------+-----+
| id | name | age |
+----+-------+-----+
| 1 | user1 | 25 |
| 2 | user2 | 35 |
| 3 | user3 | 45 |
+----+-------+-----+
複数カラム更新
UPDATE
記述
UPDATE テーブル名 SET カラム名 = 変更内容, カラム名 = 変更内容 WHERE 条件;
【usersテーブルレコードをすべて表示】
mysql> SELECT * FROM users;
+----+-------+-----+--------+------------------+
| id | name | age | gender | email |
+----+-------+-----+--------+------------------+
| 1 | user1 | 25 | 1 | test1@exaple.com |
| 2 | user2 | 35 | 2 | test2@exaple.com |
| 3 | user3 | 27 | 2 | test3@exaple.com |
| 4 | user4 | 30 | 3 | test4@exaple.com |
+----+-------+-----+--------+------------------+
【レコード更新】
mysql> UPDATE users SET age = 45, email = "user3@exaple.com" WHERE id = 3;
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
【usersテーブルレコードをすべて表示】
mysql> SELECT * FROM users;
+----+-------+-----+--------+------------------+
| id | name | age | gender | email |
+----+-------+-----+--------+------------------+
| 1 | user1 | 25 | 1 | test1@exaple.com |
| 2 | user2 | 35 | 2 | test2@exaple.com |
| 3 | user3 | 45 | 2 | user3@exaple.com |
| 4 | user4 | 30 | 3 | test4@exaple.com |
+----+-------+-----+--------+------------------+
全件更新
UPDATE
記述
UPDATE テーブル名 SET カラム名 = 変更内容;
【usersテーブルレコードをすべて表示】
mysql> SELECT * FROM users;
+----+-------+-----+--------+------------------+
| id | name | age | gender | email |
+----+-------+-----+--------+------------------+
| 1 | user1 | 25 | 1 | 11111@gmail.com |
| 2 | user2 | 35 | 2 | 22222@gmail.com |
| 3 | user3 | 27 | 2 | 33333@gmail.com |
| 4 | user4 | 30 | 3 | 44444@gmail.com |
+----+-------+-----+--------+------------------+
【レコード更新】
mysql> UPDATE users SET name = CONCAT("test", id, "@exaple.com");
Query OK, 4 row affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
【usersテーブルレコードをすべて表示】
mysql> SELECT * FROM users;
+----+-------+-----+--------+------------------+
| id | name | age | gender | email |
+----+-------+-----+--------+------------------+
| 1 | user1 | 25 | 1 | test1@exaple.com |
| 2 | user2 | 35 | 2 | test2@exaple.com |
| 3 | user3 | 27 | 2 | user3@exaple.com |
| 4 | user4 | 30 | 3 | test4@exaple.com |
+----+-------+-----+--------+------------------+