第五课 高级数据过滤
来源:互联网 发布:淘宝团购美食 编辑:程序博客网 时间:2024/06/08 13:12
第五课 高级数据过滤
回顾与预习
第四课学习了如何用SELECT语句的WHERE子句过滤返回的数据:如何检验相等、不相等、大于、小于、值的范围以及NULL值等;第五课学习如何组合WHERE子句以建立功能更强、更高级的搜索条件以及学习如何使用NOT和IN操作符。
5.1组合WHERE子句
SQL允许给出多个WHERE子句,以AND子句或OR子句的方式使用,AND等操作符(operator)用来联结或改变WHERE子句中的子句的关键字,也称为逻辑操作符(logical operator)。
5.1.1、 AND操作符AND
---用在WHERE子句中的关键字,用来指示检索满足所有给定条件的行。
输入▼
SELECT prod_id, prod_price, prod_name
FROM Products
WHERE vend_id ='DLL01' AND prod_price <= 4;
---检索由供应商DLL01制造且价格小于等于4美元的所有产品的名称和价格。
5.1.2、OR操作符
---指示DBMS检索匹配任一条件的行。
输入▼
SELECT prod_name, prod_price
FROM Products
WHERE vend_id ='DLL01' OR vend_id = ‘BRS01’;
---检索由任一个指定供应商制造的所有产品的产品名和价格
5.1.3、 求值顺序
WHERE子句可以包含任意数目的AND和OR操作符。允许两者结合以进行复杂、高级的过滤。
输入▼
SELECT prod_name, prod_price
FROM Products
WHERE vend_id ='DLL01' OR vend_id = ‘BRS01’
ANDprod_price >= 10;---改进 WHERE(vend_id = 'DLL01' OR vend_id = ‘BRS01’)AND prod_price >= 10;
在处理OR操作符前,优先处理AND操作符,解决办法使用圆括号对操作符进行明确分组。
!!任何时候使用具有AND和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认求值顺序,即使它确实如你希望的那样。使用圆括号没有什么坏处,它能消除歧义。!!
5.2、IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN取一组由逗号分隔、括在圆括号中的合法值。
输入▼
SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ('DLL01', 'BRS01' )
ORDERBY prod_name;---检索由供应商DLL01和BRS01制造的所有产品。
IN操作符完成了与OR相同的功能
输入▼
SELECT prod_name, prod_price
FROM Products
WHERE vend_id ='DLL01' OR vend_id = 'BRS01'
ORDER BY prod_name;
IN操作符?其优点为:
在有很多合法选项时,IN操作符的语法更清楚,更直观。
在与其他AND和OR操作符组合使用IN时,求值顺序更容易管理。
IN操作符一般比一组OR操作符执行得更快
IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。
IN――― WHERE子句中用来指定要匹配值的清单的关键字,功能与OR相当。
5.3、NOT操作符
否定其后所跟的任何条件。
输入▼
SELECT prod_name
FROM Products
WHERE NOT vend_id ='DLL01'
ORDER BY prod_name;--- 列出除DLL01之外的所有供应商制造的产品
<>操作符来完成
输入▼
SELECT prod_name
FROM Products
WHERE vend_id <>'DLL01'
ORDER BY prod_name;
- 第五课 高级数据过滤
- 第五章 高级数据过滤
- SQL必知必会 笔记 第五章 高级过滤数据
- SQL高级数据过滤
- 第五章 数据高级查询
- 读书笔记--SQL必知必会05--高级数据过滤
- SQL 3.高级数据过滤 - 1 通配符过滤
- Mysql必知必会(笔记)【高级数据过滤、通配符进行过滤】
- JavaScript高级教程- 第五课
- WinPcap基础知识(第五课:过滤信息)
- 第四课---过滤数据
- SQL 3.高级数据过滤 - 2 空值检测
- SQL 3. 高级数据过滤 - 3 反义运算符
- SQL 3. 高级数据过滤 - 4 多值检测
- SQL 3. 高级数据过滤 - 5 范围值检测
- MYSQL学习笔记(四)高级数据过滤
- SQL---DML---WHERE过滤数据のAND,OR,IN,NOT的高级过滤
- 机器学习第五课----朴素贝叶斯应用于垃圾邮件过滤
- java第二次作业(1)
- bzoj2299 [HAOI2011]向量
- JVM调优总结
- Linux学习(十六):文件IO
- 【转】Java技术——Java泛型详解
- 第五课 高级数据过滤
- JSP中四种会话跟踪技术(四大作用域)
- Jquery 菜鸟教程
- 一. 泛型概念的提出(为什么需要泛型)?
- 测试lenet网络下的mnist实例
- PHP连接mysql数据库之根据配置文件选择mysqli还是pdo方式
- no appropriate file located or no file selected .debug terminated 错误解决方式
- 对于Linux0.11内核版本调度与睡眠机制的一些见解
- python-----count()函数