SQL必知必会 笔记 第五章 高级过滤数据
2015-04-14 12:27
375 查看
5.1组合WHERE子句
操作符(operator)用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符。5.1.1 AND操作符
为了通过不止一个列进行过滤,可使用AND操作符给WHERE子句附加条件。SELECT prod_id,prod_price,prod_name FROM Products WHERE vend_id = 'DLL01' AND prod_price <= 4;
AND 用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。
5.1.2OR操作符
OR操作符与AND操作符不同,他指示数据库管理系统软件检测匹配任一条件的行。事实上,许多DBMS在OR WHERE子句的第一个条件满足的情况下,不再计算第二个条件。SELECT prod_name,prod_price FROM Products WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';WHERE子句中使用的关键字,用来表示检索匹配任一给定条件的行。
5.1.3计算次序
WHERE可包含任意数目的AND和OR操作符。SELECT prod_name,prod_price FROM Products WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' AND prod_price >=10;
不会按预期进行过滤。原因在于计算的次序。SQL在处理OR操作符前,优先处理AND操作符。SQL看到语句时,他理解为有供应商BRS01制造的任何价格为10美元以上的产品,或者由供应商DLL01制造的任何产品,而不管其价格如何。
SELECT prod_name,prod_price FROM Products WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01' )AND prod_price >=10;
使用圆括号将前两个条件括起来。
在WHERE子句中使用圆括号:任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认计算次序。
5.2IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取合法值的由逗号分隔的清单,全部括在圆括号中。SELECT prod_name,prod_price FROM Products WHERE 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_name FROM Products WHERE NOT vend_id = 'DLL01' ORDER BY prod_name;
NOT否定跟在它之后的条件。
等价于:
SELECT prod_name FROM Products WHERE vend_id <> 'DLL01' ORDER BY prod_name;
在使用简单的WHERE子句时,使用NOT没有什么优势。但是在更复杂的子句中,NOT是非常有用的。
MySQL中的NOT:MySQL不支持这里描述的NOT的格式。在MySQL中,NOT只用来否定EXISTS(NOT EXISTS)
相关文章推荐
- Mysql必知必会(笔记)【高级数据过滤、通配符进行过滤】
- 第五章 高级数据过滤
- R语言实战学习笔记-第五章 高级数据管理
- SQL必知必会 笔记 第四章 过滤数据
- 笔记:js高级程序设计第五章,函数的引用类型与基本类型
- javascript高级程序设计笔记-第五章(引用类型)
- SQL 3. 高级数据过滤 - 3 反义运算符
- JS高级程序设计学习笔记之第三章基本概念(语法,数据类型,流控制语句,函数)——查漏补缺
- 《R语言实战》读书笔记--第五章 高级数据管理
- SQL必知必会 笔记 第十章 分组数据
- Nginx学习笔记 —— 高级数据结构
- Guava学习笔记-简化List数据过滤
- Javascript高级程序设计第二版前三章--基本数据等--笔记
- 第五章 数据高级查询
- SQL SERVER设计与高级查询 第五章 学习笔记
- 【数据挖掘笔记七】高级模式挖掘
- JavaScript高级程序设计(第3版)学习笔记3 js简单数据类型
- Linux高级编程复习笔记 第五章 exec 进程 父子进程 fork()
- SQL必知必会 笔记 第六章 用通配符进行过滤
- Hive数据仓库平台操作,甲骨文高级技术总监笔记看不看你决定!