PostgreSQL - 第 6 天 - 條件查詢 (WHERE)
課程簡介
WHERE 子句使我們可以根據特定條件來過濾查詢結果,從而精確地檢索所需數據。本課程將介紹 WHERE 的常見運算符和應用技巧,包括邏輯操作、模式匹配和範圍查詢。
WHERE 子句的基本用法
WHERE 子句通常用於 SELECT、UPDATE 和 DELETE 語句中,用來篩選符合條件的記錄。其語法結構如下:
1
SELECT 欄位1, 欄位2, ... FROM 表名 WHERE 條件;
範例
查詢職位為「工程師」的員工:
1
SELECT * FROM 員工 WHERE 職位 = '工程師';
此語句僅返回職位為工程師的記錄。
使用比較運算符
可以使用比較運算符來定義篩選條件,包括:
=:等於<>或!=:不等於>:大於<:小於>=:大於或等於<=:小於或等於
範例
查詢月薪大於 60000 的員工:
1
SELECT 姓名, 月薪 FROM 員工 WHERE 月薪 > 60000;
查詢入職日期在 2023 年以後的員工:
1
SELECT 姓名, 入職日期 FROM 員工 WHERE 入職日期 > '2023-01-01';
使用邏輯運算符
可以使用 AND、OR 和 NOT 運算符來組合多個條件,以便進行更精細的查詢。
範例
查詢職位為「工程師」且月薪大於 60000 的員工:
1
SELECT 姓名, 職位, 月薪 FROM 員工 WHERE 職位 = '工程師' AND 月薪 > 60000;
查詢職位為「工程師」或「設計師」的員工:
1
SELECT 姓名, 職位 FROM 員工 WHERE 職位 = '工程師' OR 職位 = '設計師';
查詢月薪不等於 50000 的員工:
1
SELECT 姓名, 月薪 FROM 員工 WHERE NOT 月薪 = 50000;
使用 BETWEEN 進行範圍查詢
BETWEEN 運算符用於查詢值在指定範圍內的記錄,適用於數值、日期等範圍查詢。
範例
查詢月薪在 50000 到 70000 之間的員工:
1
SELECT 姓名, 月薪 FROM 員工 WHERE 月薪 BETWEEN 50000 AND 70000;
查詢入職日期在 2022 年和 2023 年之間的員工:
1
SELECT 姓名, 入職日期 FROM 員工 WHERE 入職日期 BETWEEN '2022-01-01' AND '2023-12-31';
使用 LIKE 進行模式匹配查詢
LIKE 運算符可用於進行模糊匹配查詢,常用於字符串欄位。% 表示任意數量的字符,_ 表示一個字符。
範例
查詢姓名中包含「明」的員工:
1
SELECT 姓名 FROM 員工 WHERE 姓名 LIKE '%明%';
查詢職位名稱以「工」字結尾的員工:
1
SELECT 職位 FROM 員工 WHERE 職位 LIKE '%工';
使用 IN 進行多值匹配查詢
IN 運算符用於匹配多個值,相當於多個 OR 條件的組合。
範例
查詢職位為「工程師」或「設計師」的員工:
1
SELECT 姓名, 職位 FROM 員工 WHERE 職位 IN ('工程師', '設計師');
查詢月薪為 50000、60000 或 70000 的員工:
1
SELECT 姓名, 月薪 FROM 員工 WHERE 月薪 IN (50000, 60000, 70000);
本日總結
今天我們深入學習了 WHERE 子句的各種條件查詢方法,包括比較、邏輯運算符、範圍查詢、模式匹配和多值匹配。這些條件查詢技巧讓我們能夠更靈活地篩選數據,適用於複雜的查詢需求。明天我們將學習如何使用 UPDATE 語句來更新資料表中的數據。
本文章以 CC BY 4.0 授權