当你在数据库中创建一个表,它不大可能永远保持不变。你可能需要修改它的记录。
有一个声明 UPDATE
很有用,你可以在需要修改记录的时候使用它。
注意:如果这里介绍的语法不能运行,请查看相关 SQL 文档。大多数内容是相通的,但也有一些差异。
SQL UPDATE 语法
要使用 UPDATE
方法,首先要确定需要使用 UPDATE table_name
更新哪个表。然后确定你要使用 SET
语句对记录进行什么更改。最后,使用 WHERE
子句来选择要更改的记录。
使用 WHERE
子句非常重要,否则你将对整个表进行相同的更改。
UPDATE table_name
SET change to make
WHERE clause to select which records to change;
SQL UPDATE 示例
我们有一个名为 users
的表,如下所示:

这张表中有一些不完整的记录。当用户向我们提供缺少的信息时,我们可以使用 UPDATE
语句添加它。
用户 Robert 缺少电子邮件地址。WHERE
子句选择的所有行都将被更新,因此我们需要小心:我们可以使用 name 列选择要更新的记录,但名称不是唯一的——我们的表中可以有多个 Robert。
选择一行来更新它(以确保只更新要更新的行)的最佳方法是使用 PRIMARY KEY
列,其中的值始终是唯一的。在这种情况下,这是名为 id
的列。
让我们使用此查询更新电子邮件地址:
UPDATE users
SET email="robert@example.com"
WHERE id=3;
现在表格是这样的:

如何同时更新多个列
Molly 在两个不同的列中缺少一个值。我们可以使用单个 UPDATE
语句,用逗号分隔赋值,如下所示:
UPDATE users
SET age=22, email="molly@example.com"
WHERE id=2;
现在表格是这样的:

确保只更改你要更改的记录
这是一个安全问题。我们的示例只有几行,但在现实生活中,它可能是拥有数百、数千甚至数百万用户的应用程序或网站的数据库,你不想给这么多人带来麻烦。
因此,在发出 UPDATE
查询之前,请使用相同的 WHERE
子句发送 SELECT
查询。如果它返回你要更新的记录,请继续。否则,你需要更改 WHERE
子句。
例如,在为用户 Molly 发送更新之前,我们可以发送一个 SELECT
语句来检查我们使用的子句 WHERE id=2
是否正确:
SELECT * FROM users
WHERE id=2;
此查询返回下面的记录,因此你可以使用 UPDATE
查询来完成数据。

小结
创建表格并向其中添加记录后,有时候需要更新其中的行。本文介绍了如何使用 SQL UPDATE
语句执行此操作。
谢谢阅读本文!
原文:SQL Update Statement – Update Query in SQL,作者:Ilenia Magoni