SQL必知必会 笔记 第五章 高级过滤数据
来源:互联网 发布:淘宝九块九包邮在哪 编辑:程序博客网 时间:2024/05/18 01:29
5.1组合WHERE子句
操作符(operator)用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符。
5.1.1 AND操作符
为了通过不止一个列进行过滤,可使用AND操作符给WHERE子句附加条件。
SELECT prod_id,prod_price,prod_nameFROM ProductsWHERE vend_id = 'DLL01' AND prod_price <= 4;
AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。
5.1.2OR操作符
OR操作符与AND操作符不同,他指示数据库管理系统软件检测匹配任一条件的行。事实上,许多DBMS在OR WHERE子句的第一个条件满足的情况下,不再计算第二个条件。
SELECT prod_name,prod_priceFROM ProductsWHERE vend_id = 'DLL01' OR vend_id = 'BRS01';WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。
5.1.3计算次序
WHERE可包含任意数目的AND和OR操作符。
SELECT prod_name,prod_priceFROM ProductsWHERE vend_id = 'DLL01' OR vend_id = 'BRS01' AND prod_price >=10;
不会按预期进行过滤。原因在于计算的次序。SQL在处理OR操作符前,优先处理AND操作符。SQL看到语句时,他理解为有供应商BRS01制造的任何价格为10美元以上的产品,或者由供应商DLL01制造的任何产品,而不管其价格如何。
SELECT prod_name,prod_priceFROM ProductsWHERE (vend_id = 'DLL01' OR vend_id = 'BRS01' )AND prod_price >=10;
使用圆括号将前两个条件括起来。
在WHERE子句中使用圆括号:任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认计算次序。
5.2IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全部括在圆括号中。
SELECT prod_name,prod_priceFROM ProductsWHERE vend_id IN('DLL01','BRS01')ORDER BY prod_name;
等价于WHERE vend_id =’DLL01’ OR vend_id = ‘BRS01’
使用IN操作符的优点:
1.在长时间的合法选项清单时,IN操作符的语法更清楚且更直观。
2.在使用IN时,计算的次序更容易管理(因为使用的操作符更少)。
3.IN操作符一般比OR操作符清单执行更快。
4.IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。
5.3NOT操作符
WHERE子句中的NOT操作符有且只有一个功能,那就是否定它之后所跟的任何条件。因为NOT从不自己使用,它的语法与其他操作符有所不同。NOT可以用在要过滤的列前,而不仅是在其后。
NOT WHERE子句中用来否定后跟条件的关键字。
SELECT prod_nameFROM ProductsWHERE NOT vend_id = 'DLL01'ORDER BY prod_name;
NOT否定跟在它之后的条件。
等价于:
SELECT prod_nameFROM ProductsWHERE vend_id <> 'DLL01'ORDER BY prod_name;
在使用简单的WHERE子句时,使用NOT没有什么优势。但是在更复杂的子句中,NOT是非常有用的。
MySQL中的NOT:MySQL不支持这里描述的NOT的格式。在MySQL中,NOT只用来否定EXISTS(NOT EXISTS)
- SQL必知必会 笔记 第五章 高级过滤数据
- 第五章 高级数据过滤
- 第五课 高级数据过滤
- SQL高级数据过滤
- SQL必知必会 笔记 第四章 过滤数据
- 读书笔记--SQL必知必会05--高级数据过滤
- Mysql必知必会(笔记)【高级数据过滤、通配符进行过滤】
- SQL SERVER设计与高级查询 第五章 学习笔记
- SQL 3.高级数据过滤 - 1 通配符过滤
- 第五章 数据高级查询
- SQL必知必会--过滤数据
- SQL笔记 第五章
- sql必知必会学习笔记-二,检索,过滤数据
- SQL高级过滤查询
- SQL笔记(5)_第五章 操作数据
- SQL 3.高级数据过滤 - 2 空值检测
- SQL 3. 高级数据过滤 - 3 反义运算符
- SQL 3. 高级数据过滤 - 4 多值检测
- excel中的筛选
- 【算法之链表(四)】在不使用额外节点存储空间的情况下,实现单链表逆序
- POJ刷题(2406)
- 设计模式---观察者模式
- 一个textview显示不同zize大小的文本
- SQL必知必会 笔记 第五章 高级过滤数据
- 11.3 TCP内核同步
- 服务端管理工具编写(三)——各控件的安排及事件
- 数组变量名能否++(int a [10];a++;)
- Ubuntu部署Apache-PartI
- error C2054:在“inline”之后应输入“(
- vs控制台一闪而过解决办法
- asp.net MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- 通过设置mmc IP安全策略禁止ping入本机 - sever 2008 Apache优化配置