第七章:数据过滤

表名: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 条评论
登录 后参与评论

相关文章

来自专栏Java后端生活

MySQL(八)DQL之连接查询

1538
来自专栏Jackson0714

聚集索引VS非聚集索引

2816
来自专栏数据库

mysql数据操作语句

?imageMogr2/blur/1x0/quality/75|watermark/1/image/aHR0cDovL29zNzhmNGhueS5ia3QuY2...

1815
来自专栏PingCAP的专栏

TiDB 源码阅读系列文章(十六)INSERT 语句详解

在之前的一篇文章 《TiDB 源码阅读系列文章(四)INSERT 语句概览》 中,我们已经介绍了 INSERT 语句的大体流程。为什么需要为 INSERT 单独...

663
来自专栏idba

MySQL优化案例一则

有赞的每个OLTP数据库实例上会设置一个sql-killer进程用于kill 掉执行时间超过一定阈值的sql。下午开发接收到sql被kill的报错,一起帮助开...

734
来自专栏GuZhenYin

2014/11/06 Oracle触发器初步 2014-11-06 09:03 49人阅读 评论(0)

触发器我就不多解释了,保证数据的完整性的神器,嗯..也是减少程序员工作托管给数据库操作的好帮手.就不讲一些大道理了.通俗点,我们对数据库的操作,无非就是增 删 ...

1756
来自专栏JetpropelledSnake

SQL学习笔记之SQL中INNER、LEFT、RIGHT JOIN的区别和用法详解

相信很多人在刚开始使用数据库的INNER JOIN、LEFT JOIN和RIGHT JOIN时,都不太能明确区分和正确使用这三种JOIN操作,本文通过一个简单的...

752
来自专栏青枫的专栏

day05_MySQL学习笔记_02

    注:每个表中至少要有一个主键。 主键用于唯一地标识表中的每一条记录,可以定义一列或多列为主键。 

662
来自专栏me的随笔

T-SQL基础(一)之简单查询

SQL: Structured Query Language,结构化查询语言,是一种在关系型数据库中用于管理数据的标准语言。SQL是一种声明式编程语言,即只需表...

872
来自专栏Jackson0714

聚集索引VS非聚集索引

1033

扫码关注云+社区