SQL UPDATE 更新语句


在本教程中,我们将学习如何使用SQLUPDATE语句修改表中现有的数据。

SQL UPDATE更新语法

UPDATE语句更改表中一行或多行中的现有数据。

UPDATE语句的语法是:

1
2
3
4
5
6
7
UPDATE table
SET
column1 = new_value1,
column2 = new_value2,
...
WHERE
condition;

要更新表中的数据,需要:
首先,在UPDATE子句中指定要更改数据的表名。
其次,为要更新的列指定一个新值。如果要更新多个列中的数据,则每个列=值对用逗号(,)分隔。
第三,在WHERE子句中指定要更新的行。WHERE子句是可选的。如果省略WHERE子句,表中的所有行都将被更新。

执行语句后,数据库将返回一条消息,显示受影响的行数。

SQL UPDATE更新语句示例

让我们看一下将UPDATE语句用于employees表的一些示例:

SQL UPDATE更新一列数据示例

假设有员工Janet,她的id是3,她结婚了,所以您需要在employees表中更改她的姓氏。

首先查看一下更新前Janet在员工表中的记录如下:

1
2
3
4
5
6
SELECT
employeeid, lastname, firstname
FROM
employees
WHERE
employeeid = 3;

以下语句将Janet的姓氏从Levering改为Hill:

1
2
3
4
5
UPDATE employees
SET
lastname = 'Hill'
WHERE
employeeID = 3;

SQL UPDATE更新多列示例

假设,Janet搬到了一个新家,因此她的地址改变了。现在,必须在employees表中使用以下语句对其进行更改:

1
2
3
4
5
6
7
8
UPDATE employees
SET
address = '1300 Carter St',
city = 'San Jose',
postalcode = 95125,
region = 'CA'
WHERE
employeeID = 3;

SQL UPDATE更新多行

下面语句将工资低于2000美元的员工的工资全部增加2%:

1
2
3
4
5
UPDATE employees
SET
salary = salary * 1.02
WHERE
salary < 2000;

从SELECT语句中进行更新

以下查询负责超过100个订单的销售人员:

1
2
3
4
5
6
7
8
SELECT
employeeid, COUNT(orderid)
FROM
orders
WHERE
shippeddate IS NOT NULL
GROUP BY employeeid
HAVING COUNT(orderid) > 100;

下面的查询将最佳销售人员的工资提高5%。最佳销售人员的ID由子查询获取。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
UPDATE employees
SET
salary = salary * 1.05
WHERE
employeeid IN (SELECT
employeeid
FROM
(SELECT
employeeid, COUNT(orderid)
FROM
orders
WHERE
shippeddate IS NOT NULL
GROUP BY employeeid
HAVING COUNT(orderid) > 100) bestsalesperson)


原文链接:https://codingdict.com/