阅读 227

SQL 更新数据(UPDATE 语句

在本教程中,您将学习如何使用SQL更新数据库表中的记录。

更新表数据

在前面的章节中,我们学习了如何根据各种条件插入数据以及如何从数据库表中选择查询数据。在本教程中,我们将学习执行一项更重要的任务,即更新数据库表中的现有记录。

语法

UPDATE语句用于更新表中的现有数据。

UPDATE table_name SET column1_name = value1, column2_name = value2,...WHERE condition;

在这里,column1_namecolumn2_name,...是要更新其值的数据库表的列或字段的名称。您还可以使用在上一章中学到的 OR和 AND 运算符组合多个条件。

警告:UPDATE语句中的WHERE子句指定应更新的记录。 如果省略WHERE子句,则所有记录将被更新。

让我们看一些示例,演示其实际工作方式。

假设我们在数据库中有一个employees表,该表具有以下记录:

+--------+--------------+------------+--------+---------+| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       1 ||      2 | Tony Montana | 2002-07-15 |   6500 |       5 ||      3 | Sarah Connor | 2005-10-18 |   8000 |       3 ||      4 | Rick Deckard | 2007-01-03 |   7200 |       4 ||      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |+--------+--------------+------------+--------+---------+

更新单列

以下SQL语句将更新employees表的emp_name字段并设置一个新值,其中employee id(即emp_id)等于3。

示例

UPDATE employees SET emp_name = 'Sarah Ann Connor'WHERE emp_id = 3;

执行后,结果表将如下所示:

+--------+------------------+------------+--------+---------+| emp_id | emp_name         | hire_date  | salary | dept_id |
+--------+------------------+------------+--------+---------+
|      1 | Ethan Hunt       | 2001-05-01 |   5000 |       1 ||      2 | Tony Montana     | 2002-07-15 |   6500 |       5 ||      3 | Sarah Ann Connor | 2005-10-18 |   8000 |       3 ||      4 | Rick Deckard     | 2007-01-03 |   7200 |       4 ||      5 | Martin Blank     | 2008-06-24 |   5600 |    NULL |+--------+------------------+------------+--------+---------+

更新多列

同样,您可以使用以逗号分隔的列名和值对的列表来更新多个列。以下示例将更新employees表中emp_id为5 的现有员工的salarydept_id字段。

示例

UPDATE employeesSET salary = 6000, dept_id = 2WHERE emp_id = 5;

执行后,结果表将如下所示:

+--------+------------------+------------+--------+---------+| emp_id | emp_name         | hire_date  | salary | dept_id |
+--------+------------------+------------+--------+---------+
|      1 | Ethan Hunt       | 2001-05-01 |   5000 |       1 ||      2 | Tony Montana     | 2002-07-15 |   6500 |       5 ||      3 | Sarah Ann Connor | 2005-10-18 |   8000 |       3 ||      4 | Rick Deckard     | 2007-01-03 |   7200 |       4 ||      5 | Martin Blank     | 2008-06-24 |   6000 |       2 |+--------+------------------+------------+--------+---------+


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐