SQL UPDATE

摘要:在本教程中,您将学习如何使用 SQL UPDATE 语句来修改表中的一行或多行。

SQL UPDATE 语句简介 #

在 SQL 中,您可以使用 UPDATE 语句来修改表中的一行或多行数据。

以下是使用 UPDATE 语句的语法:

UPDATE table_name
SET
  column1 = value1,
  column2 = value2
WHERE
  condition;Code language: SQL (Structured Query Language) (sql)

在此语法中:

  • 首先,在 UPDATE 子句中指定要更新数据的表名。
  • 其次,在 SET 子句中列出列名和新值。未出现在 SET 子句中的列将保留其原始值。
  • 第三,在 WHERE 子句中指定一个条件,以确定要更新的行。

WHERE 子句是可选的。如果省略 WHERE 子句,UPDATE 语句将更新表中的所有行。

UPDATE table_name
SET
  column1 = value1,
  column2 = value2;

SQL UPDATE 语句示例 #

我们将使用示例数据库中的 dependentsemployees 表来演示 UPDATE 语句。

SQL UPDATE Statement - employees & dependents tables

如果您还没有学习 INSERT 教程,您需要在继续本教程之前运行以下语句。

INSERT INTO
  dependents (first_name, last_name, relationship, employee_id)
VALUES
  ('Cameron', 'Bell', 'Child', 192),
  ('Michelle', 'Bell', 'Child', 192);Code language: SQL (Structured Query Language) (sql)

更新表中的单行 #

假设员工 ID 为 192 的 Sarah Bell 将她的姓氏从 Bell 改为 Lopez,您需要在 employees 表中更新她的记录。

SELECT
  employee_id,
  first_name,
  last_name
FROM
  employees
WHERE
  employee_id = 192;

输出

 employee_id | first_name | last_name
-------------+------------+-----------
         192 | Sarah      | Bell

要将 Sarah 的姓氏从 Bell 更新为 Lopez,您可以使用以下 UPDATE 语句:

UPDATE employees
SET
  last_name = 'Lopez'
WHERE
  employee_id = 192;Code language: SQL (Structured Query Language) (sql)

试一试

数据库系统更新了 employee_id192 的行中 last_name 列的值。

要验证更新,您可以使用以下 SELECT 语句:

SELECT
  employee_id,
  first_name,
  last_name
FROM
  employees
WHERE
  employee_id = 192;Code language: SQL (Structured Query Language) (sql)

试一试

输出

 employee_id | first_name | last_name
-------------+------------+-----------
         192 | Sarah      | Lopez

更新表中的多行 #

Nancy 想把她所有孩子的姓氏从 Bell 改为 Lopez。在这种情况下,您需要更新 dependents 表中 Nancy 的所有家属信息。

在更新数据之前,让我们先检查一下 Nancy 的家属信息。

SELECT
  *
FROM
  dependents
WHERE
  employee_id = 192;Code language: SQL (Structured Query Language) (sql)

试一试

 dependent_id | first_name | last_name | relationship | employee_id
--------------+------------+-----------+--------------+-------------
           32 | Cameron    | Bell      | Child        |         192
           33 | Michelle   | Bell      | Child        |         192Code language: plaintext (plaintext)

要更新 Nancy 家属的姓氏,您可以使用以下 UPDATE 语句。

UPDATE dependents
SET
  last_name = 'Lopez'
WHERE
  employee_id = 192;Code language: SQL (Structured Query Language) (sql)

试一试

 dependent_id | first_name | last_name | relationship | employee_id
--------------+------------+-----------+--------------+-------------
           32 | Cameron    | Lopez     | Child        |         192
           33 | Michelle   | Lopez     | Child        |         192Code language: plaintext (plaintext)

将 SQL UPDATE 语句与子查询结合使用 #

有时当员工更改姓氏时,您只更新了 employees 表,而没有更新 dependents 表。

为确保孩子的姓氏与 employees 表中父母的姓氏相同,您可以使用以下 UPDATE 语句:

UPDATE dependents
SET
  last_name = (
    SELECT
      last_name
    FROM
      employees
    WHERE
      employee_id = dependents.employee_id
  );Code language: SQL (Structured Query Language) (sql)

试一试

查询工作原理

  • 首先,使用子查询employees 表中获取姓氏,并在 SET 子句中使用它们来更新 dependents 表中的姓氏。
  • 其次,省略 WHERE 子句以更新 dependents 表中的所有行。

摘要 #

  • 使用 UPDATE 语句来更新表中的一行或多行。

测验 #

数据库 #

本教程是否有帮助?
© .