• SQL Update语句实例讲解


    在本教程中,您将学习如何使用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子句是可选的,所以,如果省略它,表中的所有行都将受到影响。更多教程请访问 http://www.manongzj.com

    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语句来修改表中的现有数据。

  • 相关阅读:
    vue 文件分段上传
    深度clone
    js 导出excel
    js 校验
    设计模式原则
    多态
    数据库sql
    Redis快速入门
    C#中使用Redis学习二 在.NET4.5中使用redis hash操作
    在c#中使用servicestackredis操作redis
  • 原文地址:https://www.cnblogs.com/myhomepages/p/15822572.html
Copyright © 2020-2023  润新知