组合WHERE子句
通过组合WHERE子句建立功能更强、更高级的搜索条件
SQL可以通过AND子句和OR子句组合多个WHERE子句
AND操作符
要过滤不止一个列,可以通过AND操作符给WHERE子句附加条件
SELECT prod_id, prod_price, prod_name
FROM Products
WHERE vend_id = 'DLL01' AND prod_price <= 4;
筛选供应商为DLL01并且商品价格小于等于4的产品
可以增加多个过滤条件,每个条件之间都使用AND关键字连接
OR操作符
检索出匹配任意一个条件的行,只要第一个条件匹配,就不用再计算第二个条件
SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
返回匹配任意条件的商品
求值顺序
利用圆括号来确定计算顺序
默认AND优先级高于OR
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')
ORDER BY prod_name;
筛选出所有供应商为DLL01和BRS01的商品并根据商品名升序排列
IN操作符与OR操作符功能相同
WHERE vend_id = 'DLL01' OR vend_id = 'BSR01'
#等价于
WHERE vend_id IN ('DLL01', 'BSR01')
IN操作符直观简洁,求值顺序易于管理、执行速度更快
NOT操作符
用于否定其后面所跟的条件
SELECT prod_name
FROM Products
WHERE NOT vend_id = 'DLL01';
#等价于 WHERE vend_id != 'DLL01'
否定条件在NOT关键字的后面
可以在复杂句子中简化语句
WHERE vend_id != 'DLL01' AND vend_id != 'BSR01';
#等价于
WHERE NOT vend_id IN ('DLL01', 'BSR01');