文章

PostgreSQL - 第 6 天 - 條件查詢 (WHERE)

課程簡介

WHERE 子句使我們可以根據特定條件來過濾查詢結果,從而精確地檢索所需數據。本課程將介紹 WHERE 的常見運算符和應用技巧,包括邏輯操作、模式匹配和範圍查詢。


WHERE 子句的基本用法

WHERE 子句通常用於 SELECTUPDATEDELETE 語句中,用來篩選符合條件的記錄。其語法結構如下:

1
SELECT 欄位1, 欄位2, ... FROM 表名 WHERE 條件;

範例

查詢職位為「工程師」的員工:

1
SELECT * FROM 員工 WHERE 職位 = '工程師';

此語句僅返回職位為工程師的記錄。


使用比較運算符

可以使用比較運算符來定義篩選條件,包括:

  • =:等於
  • <>!=:不等於
  • >:大於
  • <:小於
  • >=:大於或等於
  • <=:小於或等於

範例

  1. 查詢月薪大於 60000 的員工:

    1
    
    SELECT 姓名, 月薪 FROM 員工 WHERE 月薪 > 60000;
    
  2. 查詢入職日期在 2023 年以後的員工:

    1
    
    SELECT 姓名, 入職日期 FROM 員工 WHERE 入職日期 > '2023-01-01';
    

使用邏輯運算符

可以使用 ANDORNOT 運算符來組合多個條件,以便進行更精細的查詢。

範例

  1. 查詢職位為「工程師」且月薪大於 60000 的員工:

    1
    
    SELECT 姓名, 職位, 月薪 FROM 員工 WHERE 職位 = '工程師' AND 月薪 > 60000;
    
  2. 查詢職位為「工程師」或「設計師」的員工:

    1
    
    SELECT 姓名, 職位 FROM 員工 WHERE 職位 = '工程師' OR 職位 = '設計師';
    
  3. 查詢月薪不等於 50000 的員工:

    1
    
    SELECT 姓名, 月薪 FROM 員工 WHERE NOT 月薪 = 50000;
    

使用 BETWEEN 進行範圍查詢

BETWEEN 運算符用於查詢值在指定範圍內的記錄,適用於數值、日期等範圍查詢。

範例

  1. 查詢月薪在 50000 到 70000 之間的員工:

    1
    
    SELECT 姓名, 月薪 FROM 員工 WHERE 月薪 BETWEEN 50000 AND 70000;
    
  2. 查詢入職日期在 2022 年和 2023 年之間的員工:

    1
    
    SELECT 姓名, 入職日期 FROM 員工 WHERE 入職日期 BETWEEN '2022-01-01' AND '2023-12-31';
    

使用 LIKE 進行模式匹配查詢

LIKE 運算符可用於進行模糊匹配查詢,常用於字符串欄位。% 表示任意數量的字符,_ 表示一個字符。

範例

  1. 查詢姓名中包含「明」的員工:

    1
    
    SELECT 姓名 FROM 員工 WHERE 姓名 LIKE '%明%';
    
  2. 查詢職位名稱以「工」字結尾的員工:

    1
    
    SELECT 職位 FROM 員工 WHERE 職位 LIKE '%工';
    

使用 IN 進行多值匹配查詢

IN 運算符用於匹配多個值,相當於多個 OR 條件的組合。

範例

  1. 查詢職位為「工程師」或「設計師」的員工:

    1
    
    SELECT 姓名, 職位 FROM 員工 WHERE 職位 IN ('工程師', '設計師');
    
  2. 查詢月薪為 50000、60000 或 70000 的員工:

    1
    
    SELECT 姓名, 月薪 FROM 員工 WHERE 月薪 IN (50000, 60000, 70000);
    

本日總結

今天我們深入學習了 WHERE 子句的各種條件查詢方法,包括比較、邏輯運算符、範圍查詢、模式匹配和多值匹配。這些條件查詢技巧讓我們能夠更靈活地篩選數據,適用於複雜的查詢需求。明天我們將學習如何使用 UPDATE 語句來更新資料表中的數據。

本文章以 CC BY 4.0 授權