SQL NOT

总结:在本教程中,你将学习如何使用 SQL NOT 运算符在 SELECT 语句的 `WHERE` 从句中否定布尔表达式。

SQL NOT 运算符介绍

你已经学习如何使用各种逻辑运算符例如 ANDORLIKEBETWEENIN 以及 EXISTS。这些运算符帮助你在 WHERE 从句 中形成灵活的条件。

如需否定任何布尔表达式的结果,则使用 `NOT` 运算符。以下说明如何使用 `NOT` 运算符

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

下表显示 `NOT` 运算符的结果。

NOT
TRUEFALSE
FALSETRUE
NULLNULL

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 示例

请参见以下 `employees` 和 `dependents` 表

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 运算符否定布尔表达式。

本教程有帮助吗?