SQL UPDATE

摘要:在本教學中,您將學習如何使用 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 陳述式。

employees_dependents_tables

SQL UPDATE 單列範例

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

SQL UPDATE example

若要將 Sarah 的姓氏從 Bell 更新為 Lopez,您可以使用以下 UPDATE 陳述式:

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

試試看

資料庫系統更新了 last_name 欄位中的值以及 employee_id192 的列。

您可以使用以下 SELECT 陳述式來驗證它。

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

試試看

SQL UPDATE one row example

SQL UPDATE 多列範例

現在,Nancy 想要將她所有孩子的姓氏從 Bell 更改為 Lopez。在這種情況下,您需要在 dependents 表格中更新所有 Nancy 的受撫養人。

在更新資料之前,讓我們先檢查 Nancy 的受撫養人。

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

試試看

SQL UPDATE multiple rows example

若要更新 Nancy 受撫養人的姓氏,您可以使用以下 UPDATE 陳述式。

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

試試看

SQL UPDATE WHERE multiple rows

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 陳述式來修改表格中的現有資料。

這個教學對您有幫助嗎?