操作符 operator
用来连结或改变 WHERE 子句中的子句的关键字,也称逻辑操作符 logical operator
WHERE 子句
写在 FROM 子句之后
SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49
SQL 支持的条件操作符
除了=, !=, <, <=, >, >=还有: | 操作符 | 说明 | | ——- | —————— | | <> | 不等于 | | !< | 不小于 | | !> | 不大于 | | BETWEEN | 在指定的两个值之间 | | IS NULL | 为 NULL 值 |
注意:
- 有些操作符是冗余的,并不是所有 DBMS 都支持这些操作符
- 对于字符串的比较,需要用单引号括起来
范围值检查 BETWEEN-AND
包括边界值
SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10;
空值检查 IS NULL
SELECT prod_name
FROM Products
WHERE prod_price IS NULL;
空值与 0 或空格字符串、空格不同,无法被返回
组合 WHERE 子句
AND 操作符
用在 WHERE 子句中,增加过滤条件
SELECT prod_id, prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' AND prod_price <= 4;
OR 操作符
SELECT prod_id, prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
求值顺序
SQL 默认优先处理 AND 操作符,使用圆括号可以改变求值顺序
SELECT prod_name, prod_price
FROM Products
WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01')
AND prod_price >= 10;
IN 操作符
指定条件范围,取一组括号中的值
SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ('DLL01', 'BRS01')
- IN 与 OR 功能相当,但更直观,速度更快
- IN 可以包含其他 SELECT 语句,第 11 课会介绍
NOT 操作符
否定其后所跟的任何条件
SELECT prod_name, prod_price
FROM Products
WHERE vend_id NOT IN ('DLL01', 'BRS01')