第七章-数据过滤

7.1组合WHERE子句

7.1.1AND操作符

为了通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。下面的代码给出了一个例子:

输入: SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id = 1003 AND prod_price <= 10;

**分析:**此sql语句检索由供应商1003制造且价格小于等于10美元的所有产品的名称和价格。

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

上述例子中使用了只包含一个关键字AND的语句。把两个过滤条件组合在一起。还可以添加多个过滤条件,每添加一条就要使用一个AND

7.1.2OR操作符

OR操作符与AND操作符不同,他指示MySQL检索任一条件的行

输入: SELECT prod_name,prod_price FROM products WHERE vend_id = 1002 OR vend_id = 1003;

分析: 此SQL语句检索由任一指定供应商的所有产品的产品名和价格。OR操作符告诉DBMS匹配任一条件而不是同时匹配两个条件。

7.1.3计算次序

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

输入: SELECT prod_name,prod_price FROM products WHERE( vend_id=1002 OR vend_id =1003) AND prod_price >=10;

分析: 圆括号具有较AND或OR操作符更高的计算次序,DBMS首先过滤圆括号内的OR条件。

7.2IN操作符

圆括号在WHERE子句中还有另外一种用法。IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全都在圆括号中。

输入: SELECT prod_name,prod_price FROM products WHERE vend_id IN(1002,1003) ORDER BY prod_name;

分析: 此SELECT语句检索供应商1002和1003制造的所有产品。操作符后跟由逗号分隔的合法值清单,整个清单必须在圆括号中

IN操作符与OR具有相同的功能,此外比OR操作符执行的更快。IN还有一个最大优点是可以包含其他SELECT语句,使得能够更动态地建 立WHERE子句。

7.3NOT操作符

WHERE子句中的NOT操作符有且只有一个功能,那就是否定他之后所跟的任何条件

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

输入: SELECT prod_name,prod_price FROM products WHERE vend_id NOT IN(1002,1003) ORDER BY prod_name;

分析: 这里的NOT否定跟在他之后的条件,因此MySQL不是匹配1002和1003的vend_id,而是匹配1002和1003之外的供应商的

注意:MySQL 支 持 使 用 NOT 对 IN 、 BETWEEN 和EXISTS子句取反,这与多数其他DBMS允许使用NOT对各种条件取反有很大的差别。

7.4小结

本章讲授如何用AND和OR操作符组合成WHERE子句,而且还讲授了如 何明确地管理计算的次序,如何使用IN和NOT操作符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值