SQL UPDATE 语句

UPDATE 语句用于更新数据库表中已存在的记录。

1. UPDATE 语法

UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
lamp 请注意 SQL UPDATE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要更新。如果您省略了 WHERE 子句,所有的记录都将被更新!

演示数据库

在本教程中,我们将使用 CodeBaoku 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 编程教程      | http://www.aizws.net/ | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

2. UPDATE 范例

假设我们要把 "编程教程" 的 alexa 排名更新为 5000,country 改为 USA。

我们使用下面的 SQL 语句:

UPDATE Websites SET alexa='5000', country='USA' WHERE name='编程教程';

执行以上 SQL,再读取 "Websites" 表,数据如下所示:

SELECT * FROM Websites;

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 编程教程      | http://www.aizws.net/  | 5000  | USA    |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
| 6  | 百度          | https://www.baidu.com/    | 4     | CN     |
+----+--------------+---------------------------+-------+---------+

第 3 条记录的alexa更改为5000,country更改为USA。

3. UPDATE 注意问题

在更新记录时要格外小心!在上面的范例中,如果我们省略了 WHERE 子句,如下所示:

UPDATE Websites SET alexa='5000', country='USA';

执行以上代码会将 Websites 表中所有数据的 alexa 改为 5000,country 改为 USA。

执行没有 WHERE 子句的 UPDATE 要慎重,再慎重。

下一章:SQL DELETE 语句

DELETE 语句用于删除数据库表中的记录。SQL DELETE 语法:DELETE FROM table_name WHERE some_column=some_value。WHERE 子句规定哪条记录或者哪些记录需要删除。