SQL AND

摘要:本教學介紹 SQL AND 運算子,並示範如何將其應用於 SQL 語句的 WHERE 子句中,以形成彈性的條件。

SQL AND 運算子簡介

AND 運算子是一個邏輯運算子,它將兩個布林表達式結合在 WHERE 子句中,用於 SELECTUPDATEDELETE 語句中。以下說明 AND 運算子的語法:

expression1 AND expression2;

當兩個表達式都評估為 true 時,AND 運算子會返回 true。如果其中一個表達式為 false,則 AND 運算子會返回 false,即使其中一個表達式為 NULL。

下表說明當比較 true、false 和 NULL 值時,AND 運算子的結果:

TRUEFALSENULL
TRUETRUEFALSENULL
FALSEFALSEFALSEFALSE
NULLNULLFALSENULL

SQL AND 運算子範例

我們將使用範例資料庫中的 employees 表格來示範 SQL AND 運算子。

employees_table

以下語句找出所有職位 ID 為 9 且薪水大於 5,000 的員工:

SELECT
	first_name,
	last_name,
	job_id,
	salary
FROM
	employees
WHERE
	job_id = 9
AND salary > 5000;

試試看

SQL AND example

要找出所有在 1997 年至 1998 年之間加入公司的員工,您可以使用 AND 運算子,如下所示:

SELECT
	first_name,
	last_name,
	hire_date
FROM
	employees
WHERE
	YEAR (hire_date) >=1997
AND YEAR (hire_date) <= 1998;Code language: SQL (Structured Query Language) (sql)

試試看

SQL AND 運算子與短路求值

短路功能允許資料庫系統在確定結果後,立即停止評估邏輯表達式的其餘部分。

讓我們來看一個範例,以更好地了解短路求值功能是如何運作的。

請看以下條件:

1 = 0 AND 1 = 1;

資料庫系統會先處理兩個比較,然後使用 AND 運算子來評估這兩個結果。

但是,使用短路求值功能,資料庫系統只需要評估表達式的左側部分,因為左側部分 (1 = 0) 會返回 false,這會導致整個條件返回 false,而無需考慮條件右側部分的結果。

因此,短路功能可以減少 CPU 的運算時間,並且在某些情況下有助於防止執行階段錯誤。考慮以下條件:

1 = 0 AND 1/0;

如果資料庫系統支援短路功能,它將不會評估表達式的右側部分 (1/0),這會導致除以零的錯誤。

現在,您應該了解 SQL AND 運算子的運作方式,以及如何應用它在查詢中形成複雜的條件。

本教學對您有幫助嗎?