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 語句來更新表中的一行或多行。

測驗 #

資料庫 #

本教程是否有幫助?
© .