SQL NOT

摘要:在本教學中,您將學習如何使用 SQL NOT 運算子來否定 SELECT 陳述式中 WHERE 子句的布林運算式。

SQL NOT 運算子簡介

您已經學習如何使用各種邏輯運算子,例如 ANDORLIKEBETWEENINEXISTS。這些運算子可協助您在 WHERE 子句中建立彈性的條件。

若要否定任何布林運算式的結果,您可以使用 NOT 運算子。以下說明如何使用 NOT 運算子

NOT [Boolean_expression]Code language: SQL (Structured Query Language) (sql)

下表顯示 NOT 運算子的結果。

NOT
TRUE (真)FALSE (假)
FALSE (假)TRUE (真)
NULL (空值)NULL (空值)

SQL NOT 運算子範例

我們將使用 employees 表格來幫助您更好地理解 NOT 運算子。

employees_table

下列陳述式會擷取所有在部門 ID 為 5 的員工。

SELECT
	employee_id,
	first_name,
	last_name,
	salary
FROM
	employees
WHERE
	department_id = 5
ORDER BY
	salary;
Code language: SQL (Structured Query Language) (sql)

試試看

SQL NOT operator example

若要取得在部門 ID 為 5 且薪水不高於 5000 的員工。

SELECT
	employee_id,
	first_name,
	last_name,
	salary
FROM
	employees
WHERE
	department_id = 5
AND NOT salary > 5000
ORDER BY
	salary;Code language: SQL (Structured Query Language) (sql)

試試看

SQL NOT operator with greater than example

SQL NOT 與 IN 運算子範例

若要否定 IN 運算子,您可以使用 NOT 運算子。例如,下列陳述式會取得所有不在部門 1、2 或 3 工作的員工。

SELECT
	employee_id,
	first_name,
	last_name,
	department_id
FROM
	employees
WHERE
	department_id NOT IN (1, 2, 3)
ORDER BY
	first_name;Code language: SQL (Structured Query Language) (sql)

試試看

SQL NOT IN operator example

SQL NOT LIKE 運算子範例

您可以使用 NOT LIKE 來否定 LIKE 運算子。例如,下列陳述式會擷取所有名字不是以字母 D 開頭的員工。

SELECT
	first_name,
	last_name
FROM
	employees
WHERE
	first_name NOT LIKE 'D%'
ORDER BY
	first_name;Code language: SQL (Structured Query Language) (sql)

試試看

SQL NOT LIKE operator example

SQL NOT BETWEEN 範例

以下範例示範如何使用 NOT 來否定 BETWEEN 運算子,以取得薪水不在 5,000 到 1,000 之間的員工。

SELECT
	employee_id,
	first_name,
	last_name,
	salary
FROM
	employees
WHERE
	salary NOT BETWEEN 3000
AND 5000
ORDER BY
	salary;Code language: SQL (Structured Query Language) (sql)

試試看

SQL NOT EXISTS 範例

請參閱下列 employeesdependents 表格

employees_dependents_tables

下列查詢使用 NOT EXISTS 運算子來取得沒有任何受撫養人的員工。

SELECT
	employee_id,
	first_name,
	last_name
FROM
	employees e
WHERE
	NOT EXISTS (
		SELECT
			employee_id
		FROM
			dependents d
		WHERE
			d.employee_id = e.employee_id
	);Code language: SQL (Structured Query Language) (sql)

試試看

現在您應該知道如何使用 NOT 運算子來否定布林運算式。

這個教學對您有幫助嗎?