摘要:在本教學中,您將學習如何使用 SQL 的 UPDATE
陳述式來修改表格中現有列的資料。
SQL UPDATE 陳述式介紹
若要變更表格中現有資料,您可以使用 UPDATE
陳述式。以下顯示 UPDATE
陳述式的語法:
UPDATE table_name
SET column1 = value1,
column2 = value2
WHERE
condition;
Code language: SQL (Structured Query Language) (sql)
在此語法中:
- 首先,在
UPDATE
子句中指出您要更新的表格。 - 其次,在
SET
子句中指定您要修改的欄位。未在SET
子句中列出的欄位將保留其原始值。 - 第三,在
WHERE
子句中指定要更新的列。
UPDATE
陳述式會根據 WHERE
子句中的條件影響表格中的一或多列。例如,如果 WHERE
子句包含 主鍵 運算式,則 UPDATE
陳述式只會變更一列。
然而,任何導致 WHERE
中的條件評估為 true 的列都將被修改。因為 WHERE
子句是選擇性的,因此,如果您省略它,表格中的所有列都會受到影響。
SQL UPDATE 陳述式範例
我們將使用 employees 和 dependents 表格來示範 UPDATE
陳述式。

SQL UPDATE 單列範例
假設員工 ID 為 192 的 Sarah Bell 將她的姓氏從 Bell
更改為 Lopez
,您需要在 employees
表格中更新她的記錄。

若要將 Sarah 的姓氏從 Bell
更新為 Lopez
,您可以使用以下 UPDATE
陳述式:
UPDATE employees
SET
last_name = 'Lopez'
WHERE
employee_id = 192;
Code language: SQL (Structured Query Language) (sql)
資料庫系統更新了 last_name
欄位中的值以及 employee_id
為 192
的列。
您可以使用以下 SELECT
陳述式來驗證它。
SELECT
employee_id,
first_name,
last_name
FROM
employees
WHERE
employee_id = 192;
Code language: SQL (Structured Query Language) (sql)

SQL UPDATE 多列範例
現在,Nancy 想要將她所有孩子的姓氏從 Bell
更改為 Lopez
。在這種情況下,您需要在 dependents
表格中更新所有 Nancy 的受撫養人。
在更新資料之前,讓我們先檢查 Nancy 的受撫養人。
SELECT
*
FROM
dependents
WHERE
employee_id = 192;
Code language: SQL (Structured Query Language) (sql)

若要更新 Nancy 受撫養人的姓氏,您可以使用以下 UPDATE
陳述式。
UPDATE dependents
SET
last_name = 'Lopez'
WHERE
employee_id = 192;
Code language: SQL (Structured Query Language) (sql)

SQL UPDATE 與子查詢範例
有時,當員工更改他們的姓氏時,您只會更新 employees
表格,而不更新 dependents 表格。
為了確保孩子的姓氏始終與 employees
表格中父母的姓氏匹配,您可以使用以下陳述式:
UPDATE dependents
SET last_name = (
SELECT
last_name
FROM
employees
WHERE
employee_id = dependents.employee_id
);
Code language: SQL (Structured Query Language) (sql)
因為省略了 WHERE
子句,UPDATE
陳述式更新了 dependents
表格中的所有列。
在 SET
子句中,我們沒有使用文字值,而是使用 子查詢 從 employees
表格中取得相應的姓氏值。
在本教學中,我們向您展示了如何使用 SQL 的 UPDATE
陳述式來修改表格中的現有資料。