文章

PostgreSQL - 第 7 天 - 更新與刪除數據

課程簡介

UPDATE 語句可用於修改已存在的記錄,而 DELETE 語句則用於刪除指定的數據。這些操作是資料庫管理中不可或缺的技能,因此掌握如何有效且安全地更新和刪除數據非常重要。


更新數據 (UPDATE)

UPDATE 語句用於修改資料表中已存在的記錄,結合 SET 子句指定要更改的欄位值,並搭配 WHERE 子句以限定條件。

語法

1
UPDATE 表名 SET 欄位1 = 1, 欄位2 = 2, ... WHERE 條件;

若未指定 WHERE 條件,則所有記錄都將被更新,因此使用時務必小心。

範例

  1. 更新單一欄位
    員工 資料表中職位為「工程師」的員工月薪增加至 65000:

    1
    
    UPDATE 員工 SET 月薪 = 65000 WHERE 職位 = '工程師';
    
  2. 更新多個欄位
    將姓名為「王小明」的員工的職位改為「資深工程師」,月薪增加至 70000:

    1
    
    UPDATE 員工 SET 職位 = '資深工程師', 月薪 = 70000 WHERE 姓名 = '王小明';
    
  3. 更新多個符合條件的記錄
    將所有入職日期在 2022 年之前的員工月薪增加 10%:

    1
    
    UPDATE 員工 SET 月薪 = 月薪 * 1.1 WHERE 入職日期 < '2022-01-01';
    

刪除數據 (DELETE)

DELETE 語句用於從資料表中刪除記錄。通常會搭配 WHERE 子句,以指定要刪除的記錄。

語法

1
DELETE FROM 表名 WHERE 條件;

若未使用 WHERE 子句,所有記錄都將被刪除。此操作不可逆,因此在執行 DELETE 時務必確認條件的正確性。

範例

  1. 刪除單筆記錄
    刪除姓名為「李美麗」的員工記錄:

    1
    
    DELETE FROM 員工 WHERE 姓名 = '李美麗';
    
  2. 刪除多筆記錄
    刪除月薪低於 50000 的所有員工記錄:

    1
    
    DELETE FROM 員工 WHERE 月薪 < 50000;
    
  3. 刪除整個資料表的數據
    若要刪除 員工 表中的所有數據但保留表結構:

    1
    
    DELETE FROM 員工;
    

使用 RETURNING 子句

UPDATEDELETE 操作後,我們可以使用 RETURNING 子句來返回被修改或刪除的記錄,方便進行檢查。

範例

  1. 查看更新結果
    更新某員工的月薪,並返回被更新的記錄:

    1
    
    UPDATE 員工 SET 月薪 = 75000 WHERE 姓名 = '張偉' RETURNING *;
    
  2. 查看刪除結果
    刪除職位為「實習生」的所有員工記錄,並返回被刪除的記錄:

    1
    
    DELETE FROM 員工 WHERE 職位 = '實習生' RETURNING *;
    

本日總結

今天我們學習了如何在 PostgreSQL 中使用 UPDATEDELETE 語句來更新和刪除數據,並學會了使用 RETURNING 子句檢視變更結果。這些操作讓我們能夠有效地管理資料庫中的記錄。明天我們將深入了解如何在查詢中使用聚合函數 (如 COUNTSUM 等) 來處理數據。

本文章以 CC BY 4.0 授權