码迷,mamicode.com
首页 > 其他好文 > 详细

第5课 高级数据过滤

时间:2020-05-23 18:36:42      阅读:44      评论:0      收藏:0      [点我收藏+]

标签:str   增加   优先   编写   rod   结合   price   使用   依赖   

第5课 高级数据过滤

5.1 组合WHERE子句

5.1.1 AND操作符

要通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。

SELECT prod_id, prod_price, prod_name
FROM Products
WHERE vend_id = ‘DLL01‘ AND prod_price <= 4;

此SQL语句检索由供应商DLL01制造且价格小于等于4美元的所有产品的名称和价格。

AND
用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。

这个例子只包含一个AND子句,因此最多有两个过滤条件。可以增加多个过滤条件,每个条件间都要使用AND关键字。

5.1.2 OR操作符

OR操作符与AND操作符正好相反,它指示DBMS检索匹配任一条件的行。事实上,许多DBMS在OR WHERE子句的第一个条件得到满足的情况下,就不再计算第二个条件了(在第一个条件满足时,不管第二个条件是否满足,相应的行都将被检索出来)。

SELECT prod_name, prod_price
FROM Products
WHERE vend_id = ‘DLL01‘ OR vend_id = ‘BRS01’;

OR
WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。

5.1.3 求值顺序

WHERE子句可以包含任意数目的AND和OR操作符。允许两者结合以进行复杂、高级的过滤。

SQL(像多数语言一样)在处理OR操作符前,优先处理AND操作符。

SELECT prod_name, prod_price
FROM Products
WHERE (vend_id = ‘DLL01‘ OR vend_id = ‘BRS01’)
AND prod_price >= 10;

提示:在WHERE子句中使用圆括号
任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认求值顺序,即使它确实如你希望的那样。使用圆括号没有什么坏处,它能消除歧义。

5.2 IN操作符

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取一组由逗号分隔、括在圆括号中的合法值。

SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ( ‘DLL01‘, ‘BRS01‘ )
ORDER BY prod_name;

你可能会猜测IN操作符完成了与OR相同的功能,恭喜你猜对了!下面的SQL语句完成与上面的例子相同的工作:

SELECT prod_name, prod_price
FROM Products
WHERE vend_id = ‘DLL01‘ OR vend_id = ‘BRS01‘
ORDER BY prod_name;

IN
WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。

5.3 NOT操作符

NOT
WHERE子句中用来否定其后条件的关键字。

为了列出除DLL01之外的所有供应商制造的产品,可编写如下的代码:

SELECT prod_name
FROM Products
WHERE NOT vend_id = ‘DLL01‘
ORDER BY prod_name;

5.4 小结

这一课讲授如何用AND和OR操作符组合成WHERE子句,还讲授了如何明确地管理求值顺序,如何使用IN和NOT操作符。

第5课 高级数据过滤

标签:str   增加   优先   编写   rod   结合   price   使用   依赖   

原文地址:https://www.cnblogs.com/zhangsonghui/p/12943683.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!