摘要:在本教程中,您将学习 SQL 比较运算符以及如何使用它们形成过滤数据的条件。
使用 SQL 比较运算符,您可以检验两个表达式是否相同。下表说明了 SQL 中的比较运算符
运算符 | 含义 |
---|---|
= | 等于 |
<> | 不等于 |
> | 大于 |
>= | 大于或等于 |
< | 小于 |
<= | 小于或等于 |
比较运算符的结果有三个值之一,即真、假和未知。
等于运算符 (=)
等于运算符比较两个表达式的相等性
expression1 = expression2
Code language: SQL (Structured Query Language) (sql)
如果左表达式的值等于右表达式的值,则返回真;否则,返回假。
例如,以下声明查找姓氏为Himuro
的员工
SELECT
employee_id, first_name, last_name
FROM
employees
WHERE
last_name = 'Himuro';
Code language: SQL (Structured Query Language) (sql)

在此示例中,查询在employees
表的last_name
列中搜索字符串Himuro
。
请注意,无法使用等于运算符来比较空值。例如,以下查询的目的是找到所有没有电话号码的员工
SELECT
employee_id, first_name, last_name, phone_number
FROM
employees
WHERE
phone_number = NULL;
Code language: SQL (Structured Query Language) (sql)
但是,它返回一个空结果集,因为以下表达式始终返回假。
phone_number = NULL
Code language: SQL (Structured Query Language) (sql)
若要比较空值,请使用 IS NULL
运算符
SELECT
employee_id, first_name, last_name, phone_number
FROM
employees
WHERE
phone_number IS NULL;
Code language: SQL (Structured Query Language) (sql)

不等于运算符 (<>)
不等于 (<>) 运算符比较两个非空表达式,如果左表达式的值不等于右表达式的值,则返回真;否则,返回假。
expression1 <> expression2
Code language: SQL (Structured Query Language) (sql)
例如,以下声明返回部门 ID 不是 8 的所有员工。
SELECT
employee_id, first_name, last_name, department_id
FROM
employees
WHERE
department_id <> 8
ORDER BY first_name , last_name;
Code language: SQL (Structured Query Language) (sql)

您可以使用 AND
运算符来组合使用不等于 (<>) 运算符的多个表达式。例如,以下语句查找部门 ID 不是八或十的所有员工。
SELECT
employee_id, first_name, last_name, department_id
FROM
employees
WHERE
department_id <> 8
AND department_id <> 10
ORDER BY first_name , last_name;
Code language: SQL (Structured Query Language) (sql)

大于运算符 (>)
大于运算符 (>) 比较两个非空表达式,如果左操作数大于右操作数,则返回真;否则,结果为假。
expression1 > expression2
Code language: SQL (Structured Query Language) (sql)
例如,要查找薪水大于 10,000 的员工,请在 WHERE
子句中使用大于运算符,如下所示
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary > 10000
ORDER BY salary DESC;
Code language: SQL (Structured Query Language) (sql)

您可以使用 AND
或 OR
运算符组合使用各种比较运算符的表达式。例如,以下语句查找部门 8 中且薪水大于 10,000 的员工
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary > 10000 AND department_id = 8
ORDER BY salary DESC;
Code language: SQL (Structured Query Language) (sql)

小于运算符 (<)
小于运算符比较两个非空表达式。如果左操作数计算得出的值低于右操作数的值,则结果为真;否则,结果为假。
以下是小于运算符的语法
expression1 < expression2
Code language: SQL (Structured Query Language) (sql)
例如,以下语句返回所有薪水低于 10,000 的员工
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary < 10000
ORDER BY salary DESC;
Code language: SQL (Structured Query Language) (sql)

大于或等于运算符 (>=)
大于或等于运算符 (>=) 比较两个非空表达式。如果左表达式计算得出的值大于右表达式的值,则结果为真。
以下是大于或等于运算符的语法说明
expression1 >= expression2
Code language: SQL (Structured Query Language) (sql)
例如,如下语句查找薪水大于或等于 9,000 的员工
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary >= 9000
ORDER BY salary;
Code language: SQL (Structured Query Language) (sql)

小于或等于运算符(<=)
小于或等于运算符比较两个非空表达式,如果左表达式小于或等于右表达式的值,则返回 true,否则,返回 true。
以下是小于或等于运算符的语法
expression1 <= expression2
Code language: SQL (Structured Query Language) (sql)
例如,如下语句查找薪水小于或等于 9,000 的员工

在本教程中,你已经了解了如何使用比较运算符来形成比较表达式,根据指定条件过滤数据。