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 授權