SQL第5课——高级数据过滤

这一课讲授如何组合where子句建立功能更强,更高级得搜索条件

学习使用not和in操作符

5.1 组合where子句

SQL允许给出多个where子句,有两种使用方式,and子句或or子句

操作符(operator)或逻辑操作符(logical operator):

用来联结或改变where子句中的子句的关键字。

5.1.1 and操作符
通过不止一个列进行过滤,使用and操作符给where子句附加条件。

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

一个and子句,只过滤两个条件,增加多个过滤条件,每个条件间都要使用and关键字。

5.1.2 or 操作符

许多DBMS在or where子句的第一个条件得到满足的情况下,就不再计算第二个条件了(在第一个条件满足时,不管第二个条件是否满足,相应的行都将被检索出来

or:where子句中使用的关键字,用来检索匹配任一给定条件的行。

5.1.3 求值顺序

where子句可以包含任意数目的and和or操作符,允许两者结合以进行复杂,高级的过滤。

返回的行中有4行价格小于10美元,没有按预期过滤!!!

原因:求值顺序,优先处理and操作符,再处理or操作符。这个例子SQL理解为“由供应商brs01制造的价格为10美元以上的所有产品,以及由供应商dll01制造的所有产品,而不管其价格如何”。

解决方法:使用圆括号对操作符进行明确分组。

优先级:

() > and > or

5.2 in操作符

用来指定条件范围,范围中的每个条件都可以进行匹配。in取一组由逗号分隔,括在圆括号中的合法值。如下例:

猜测:in操作符完成与or相同的功能!!!

in操作符优点
1. in操作符语法更加清楚,更直观;
2. 在与and和or操作符组合使用in时,求值顺序更容易管理;
3. in操作符一般比一组or操作符执行得更快;
4. in最大得优点是可以包含其他select语句,能够更动态地建立where子句。

in:where子句中用来指定要匹配值的清单的关键字,功能与or相当。

5.3 not操作符

not操作符有且只有一个功能——否定其后所跟的任何条件。

not从不单独使用。

not关键字可以用在要过滤的列前,而不仅是在其后。

not:where子句中用来否定其后条件的关键字。

DBMS匹配非dll01之外的所有东西。

或等价使用不等于<>(或者!=)操作符:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值