第七章:数据过滤

表名:products

字段:product_id、product_name、product_price、vend_id(供应商)

为了提供更强的过滤控制,MySQL允许给出多个WHERE子句,这些子句可以以:AND子句和OR子句的方式使用。

注:操作符(operator)用来联结或改变WHERE子句中的子句的关键字,也成逻辑操作符(logical operator)

操作符都是在WHERE后面的关键字

1.AND操作符:

检索供应商id为1003且价格在5到10之间的产品名称

SELECT product_name FROM products WHERE vend_id = 1003 AND product_price BETWEEN 5 AND 10

注:AND:用于WHERE子句的关键字,用来指示检索满足所有给定条件的行。多个并列条件间使用AND。

2.OR操作符:

检索供应商id为1000或1003的产品名称

SELECT product_name FROM products WHERE vend_id = 1000 OR vend_id = 1003

注:OR:用于WHERE子句的关键字,用来检索匹配任一条件的行。

3.计算次序:

AND比OR操作符的计算次序高,也就是说同时出现AND和OR时,会优先处理AND与其对应的条件。  可以通过()来调整优先级。  检索供应商id为1000或1003且产品价格大于10.0的产品名称。

SELECT product_name FROM products WHERE (vend_id = 1000 OR vend_id = 1003) AND produce_price >=1000

注:注意避免计算次序带来的影响,使用()来处理优先次序。

4.IN操作符:

IN操作符用于指定条件范围,使用()来限定范围

SELECT product_name FROM products WHERE vend_id IN (1000,1003) ORDER BY product_id

注:IN的优点:  在使用合法选项清单时,IN操作符的语法更清晰且更直观。  在使用IN时,计算的次序更容易管理(操作符少)。  IN操作符一般比OR操作qing清单执行的快。  IN可以包含其他SELECT语句,能更动态建立WHERE语句。

5.NOT操作符:

有且只有一个功能否定后面所跟的任何条件  查找除了供应商id为1000与1003的所有产品名称

SELECT product_name FROM products WHERE vend_id NOT IN(1000,1003)

总结:

为什么使用NOT:  复杂的语句中NOT非常实用。  MySQL支持使用NOT对IN、BETWEEN和EXIST子句取反,

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏后端之路

Spring的cache实现一

spring3.1之后引入了新的注解EnableTransactionManagement

413
来自专栏企鹅号快讯

大数据入门基础系列之浅谈Hive的执行原理

在前面的博文里,我已经介绍了 在前面的博文里,我已经介绍了 Hive的执行原理 ? Hive的执行原理 Hive构建在Hadoop之上 (1) HQL中对查询语...

1756
来自专栏LanceToBigData

MySQL(九)之数据表的查询详解(SELECT语法)二

上一篇讲了比较简单的单表查询以及MySQL的组函数,这一篇给大家分享一点比较难得知识了,关于多表查询,子查询,左连接,外连接等等。希望大家能都得到帮助! 在开始...

18710
来自专栏后端之路

redis限制请求频率及资源隔离

背景 由于导入及导出服务的使用,可能过多占用业务系统的请求。 为此在db层次做了切分(资源隔离)使用不同的db连接池。 同时针对导入导出服务增加请求频率限制,避...

2215
来自专栏码匠的流水账

聊聊kafka consumer offset lag increase异常

本文主要解析一下遇到的一个kafka consumer offset lag不断增大的异常。

401
来自专栏芋道源码1024

哪个更快:Java 堆还是本地内存

使用Java的一个好处就是你可以不用亲自来管理内存的分配和释放。当你用new关键字来实例化一个对象时,它所需的内存会自动的在Java堆中分配。堆会被垃圾回收器进...

724
来自专栏数说戏聊

04-06章 过滤数据第4章 过滤数据第5章 高级数据过滤第6章 用通配符进行过滤

分析 这条语句从 products 表中检索两个列,但不返回所有行,只返回 prod_price 值为 3.49 的行,输出:

451
来自专栏恰同学骚年

《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

  数据库在物理上由数据文件和事务日志文件组成,每个数据库必须至少有一个数据文件和一个日志文件。

665
来自专栏鸿的学习笔记

抛弃丑陋,拥抱优雅--Pythonic的Pony ORM

Pony ORM是一个设计的相当精巧的ORM框架,可以让你用Pythonic的方式去处理表数据,并且把ER图的思想融合进代码里。现在就看Pony ORM吧!

882
来自专栏java系列博客

oracle日常 常用函数与脚本

1312

扫码关注云+社区