摘要:在本教程中,您將學習如何使用 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 語句示例 #
我們將使用示例資料庫中的 dependents 和 employees 表來演示 UPDATE 語句。

如果您還沒有學習 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_id 為 192 的行中 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語句來更新表中的一行或多行。
測驗 #
資料庫 #
- PostgreSQL UPDATE 語句
- MySQL UPDATE 語句
- MariaDB UPDATE 語句
- SQLite UPDATE 語句
- Db2 UPDATE 語句
- Oracle UPDATE 語句
- SQL Server UPDATE 語句
本教程是否有幫助?