读书笔记--SQL必知必会05--高级数据过滤
来源:互联网 发布:arma预测C 源码 编辑:程序博客网 时间:2024/06/07 02:41
5.1 组合使用WHERE子句
操作符(operator)也称为逻辑操作符(logical operator),用来联结或改变WHERE子句中的过滤条件。
5.1.1 AND操作符
在WHERE子句中利用AND操作符可以对不止一个列进行过滤。
可以增加多个过滤条件,每个条件间都要使用AND关键字。
MariaDB [sqlbzbh]> SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = 'DLL01' AND prod_price <=4;+---------+------------+---------------------+| prod_id | prod_price | prod_name |+---------+------------+---------------------+| BNBG01 | 3.49 | Fish bean bag toy || BNBG02 | 3.49 | Bird bean bag toy || BNBG03 | 3.49 | Rabbit bean bag toy |+---------+------------+---------------------+3 rows in set (0.00 sec)MariaDB [sqlbzbh]>
5.1.2 OR操作符
在WHERE子句中利用OR操作符可以检索出匹配任意其中一个条件的行。
MariaDB [sqlbzbh]> SELECT prod_name, prod_price FROM Products WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'; +---------------------+------------+| prod_name | prod_price |+---------------------+------------+| Fish bean bag toy | 3.49 || Bird bean bag toy | 3.49 || Rabbit bean bag toy | 3.49 || 8 inch teddy bear | 5.99 || 12 inch teddy bear | 8.99 || 18 inch teddy bear | 11.99 || Raggedy Ann | 4.99 |+---------------------+------------+7 rows in set (0.00 sec)MariaDB [sqlbzbh]>
5.1.3 求值顺序
WHERE子句可以包含任意数目的AND和OR操作符,并且允许两者结合以进行复杂、高级的过滤。
求值顺序:圆括号 》 AND操作符 》 OR操作符
使用圆括号可以明确地分组操作符,消除歧义。
MariaDB [sqlbzbh]> SELECT prod_name, prod_price FROM Products WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' AND prod_price >= 10; +---------------------+------------+| prod_name | prod_price |+---------------------+------------+| Fish bean bag toy | 3.49 || Bird bean bag toy | 3.49 || Rabbit bean bag toy | 3.49 || 18 inch teddy bear | 11.99 || Raggedy Ann | 4.99 |+---------------------+------------+5 rows in set (0.00 sec)MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT prod_name, prod_price FROM Products WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01') AND prod_price >= 10; +--------------------+------------+| prod_name | prod_price |+--------------------+------------+| 18 inch teddy bear | 11.99 |+--------------------+------------+1 row in set (0.00 sec)MariaDB [sqlbzbh]>
5.2 IN操作符
IN操作符用来指定条件范围,取一组由逗号分隔合法值,并且这些值必须括在圆括号中。
简而言之,IN操作符与OR操作符具有相同的功能, 但IN操作符的语法更清楚、更直观,而且相比OR操作符执行得更快。
最大的优点:还可以包含其他SELECT语句,能够更动态地建立WHERE子句。
MariaDB [sqlbzbh]> SELECT prod_name, prod_price FROM Products WHERE vend_id IN ('DLL01', 'BRS01') ORDER BY prod_name; +---------------------+------------+| prod_name | prod_price |+---------------------+------------+| 12 inch teddy bear | 8.99 || 18 inch teddy bear | 11.99 || 8 inch teddy bear | 5.99 || Bird bean bag toy | 3.49 || Fish bean bag toy | 3.49 || Rabbit bean bag toy | 3.49 || Raggedy Ann | 4.99 |+---------------------+------------+7 rows in set (0.00 sec)MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT prod_name, prod_price FROM Products WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' ORDER BY prod_name; +---------------------+------------+| prod_name | prod_price |+---------------------+------------+| 12 inch teddy bear | 8.99 || 18 inch teddy bear | 11.99 || 8 inch teddy bear | 5.99 || Bird bean bag toy | 3.49 || Fish bean bag toy | 3.49 || Rabbit bean bag toy | 3.49 || Raggedy Ann | 4.99 |+---------------------+------------+7 rows in set (0.00 sec)MariaDB [sqlbzbh]>
5.3 NOT操作符
WHERE子句中的NOT操作符,用来否定其后所跟的任何条件。
某些条件下,NOT操作符等同于!=操作符或<>操作符。
MariaDB [sqlbzbh]> SELECT prod_name FROM Products WHERE NOT vend_id = 'DLL01' ORDER BY prod_name; +--------------------+| prod_name |+--------------------+| 12 inch teddy bear || 18 inch teddy bear || 8 inch teddy bear || King doll || Queen doll |+--------------------+5 rows in set (0.00 sec)MariaDB [sqlbzbh]> MariaDB [sqlbzbh]> SELECT prod_name FROM Products WHERE vend_id <> 'DLL01' ORDER BY prod_name; +--------------------+| prod_name |+--------------------+| 12 inch teddy bear || 18 inch teddy bear || 8 inch teddy bear || King doll || Queen doll |+--------------------+5 rows in set (0.00 sec)
阅读全文
0 0
- 读书笔记--SQL必知必会05--高级数据过滤
- SQL高级数据过滤
- Database - 读书笔记--SQL必知必会04--过滤数据
- 读书笔记--SQL必知必会04--过滤数据
- SQL必知必会 笔记 第五章 高级过滤数据
- SQL 3.高级数据过滤 - 1 通配符过滤
- SQL必知必会--过滤数据
- 读书笔记--SQL必知必会22--高级SQL特性
- SQL高级过滤查询
- MYSQL必知必会读书笔记 第六章 过滤数据
- MYSQL必知必会读书笔记 第七章 数据过滤
- SQL 3.高级数据过滤 - 2 空值检测
- SQL 3. 高级数据过滤 - 3 反义运算符
- SQL 3. 高级数据过滤 - 4 多值检测
- SQL 3. 高级数据过滤 - 5 范围值检测
- Hibernate读书笔记-----数据过滤
- Mysql必知必会(笔记)【高级数据过滤、通配符进行过滤】
- 读书笔记--SQL必知必会13--创建高级联结
- 读书笔记--SQL必知必会03--排序检索数据
- Docker
- 专业课程设计之客户与服务器程序的同步与通信机制的设计(四)信号量
- logistic回归算法原理及python实现
- 读书笔记--SQL必知必会04--过滤数据
- 读书笔记--SQL必知必会05--高级数据过滤
- 人工“碳”索意犹尽,智能“硅”来未可知(深度学习入门系列之二)
- 数据结构与算法题目汇总
- Testing
- Struts2之方法拦截器
- 读书笔记--SQL必知必会06--用通配符进行过滤
- 读书笔记--SQL必知必会07--创建计算字段
- 最长的0,1相等子串
- 读书笔记--SQL必知必会08--使用函数处理数据