SQL UPDATE 更新语句

时间:2018-11-15 17:15:12  来源:igfitidea点击:

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

SQL UPDATE更新语法

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

UPDATE语句的语法是:

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在员工表中的记录如下:

SELECT 
    employeeid, lastname, firstname
FROM
    employees
WHERE
    employeeid = 3;

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

UPDATE employees 
SET 
    lastname = 'Hill'
WHERE
    employeeID = 3;

SQL UPDATE更新多列示例

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

UPDATE employees 
SET 
    address = '1300 Carter St',
    city = 'San Jose',
    postalcode = 95125,
    region = 'CA'
WHERE
    employeeID = 3;

SQL UPDATE更新多行

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

UPDATE employees 
SET 
    salary = salary * 1.02
WHERE
    salary < 2000;

从SELECT语句中进行更新

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

SELECT 
    employeeid, COUNT(orderid)
FROM
    orders
WHERE
    shippeddate IS NOT NULL
GROUP BY employeeid
HAVING COUNT(orderid) > 100;

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

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)