Sql简介 专题
专题目录
您的位置:database > Sql简介专题 > SQL Update语句
SQL Update语句
作者:--    发布时间:2019-11-20

在本教程中,您将学习如何使用sql update语句来修改表中现有行的数据。

1. sql update语句简介

要更改表中的现有数据,请使用update语句。 以下是update语句的语法:

update table_name
set column1 = value1,
 column2 = value2
where
    condition;

在上面的语法中 -

  • 首先,在update子句中指明要更新的表。
  • 其次,在set子句中指定要修改的列。 set子句中未列出的列的值不会被修改。
  • 第三,指定where子句中要更新的行。

update语句根据where子句中的条件影响表中的一行或多行。 例如,如果where子句包含主键表达式,则update语句仅更改一行。

但是,将修改where条件评估为true的任何行。 因为where子句是可选的,所以,如果省略它,表中的所有行都将受到影响。

2. sql update语句示例

我们将使用employeesdependents表来演示如何使用update语句。

sql update更新一行示例

假设有一个员工编号(employee_id)的值为:192,在employees表中查询数据记录,如下所示 -

mysql> select first_name,last_name from employees where employee_id=192;
+------------+-----------+
| first_name | last_name |
+------------+-----------+
| sarah      | yang      |
+------------+-----------+
1 row in set

要将last_name字段的值从yang改为zhang,请使用以下update语句:

update employees 
set 
    last_name = 'zhang'
where
    employee_id = 192;

数据库系统更新了employee_id192的记录last_name列的值。可以使用以下select语句对其进行验证。

select
    employee_id,
    first_name,
    last_name
from
    employees
where
    employee_id = 192;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+
| employee_id | first_name | last_name |
+-------------+------------+-----------+
|         192 | sarah      | zhang     |
+-------------+------------+-----------+
1 row in set

sql update多行示例

现在,要把所有工资低于2500的员工全部提高到3000,在更新数据之前,让我们先来看看有有哪些工资低于2500的员工。

select
    employee_id,
    first_name,
    last_name,salary
from
    employees
where
    salary<3000;
+-------------+------------+-----------+--------+
| employee_id | first_name | last_name | salary |
+-------------+------------+-----------+--------+
|         116 | shelli     | zhang     | 2900   |
|         117 | sigal      | zhang     | 2800   |
|         118 | guy        | zhang     | 2600   |
|         119 | karen      | zhang     | 2500   |
|         126 | irene      | liu       | 2700   |
+-------------+------------+-----------+--------+
5 rows in set

执行以下update语句,以更新工资为:3000

update
    employees
set
    salary=3000
where
    salary<3000;

带有子查询示例的sql update

有时,当员工更改姓氏(last_name)时,只更新employees表而不更新dependents表。
要确保子项的姓氏(last_name)始终与employees表中父项的姓氏(last_name)匹配,请使用以下语句:

update dependents
set last_name = (
    select
        last_name
    from
        employees
    where
        employee_id = dependents.employee_id
);

由于省略了where子句,因此update语句更新了dependents表中的所有行。在set子句中,我们使用子查询而不是使用文字值来从employees表中获取相应的last_name值。

在本教程中,我们演示了如何使用sql update语句来修改表中的现有数据。


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册