MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)

前提:使用《MySql006——检索数据:基础select语句》中创建的products表
MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)_第1张图片

一、AND操作符

通过AND操作符可以拼接多个过滤条件,表示且

SELECT 
    vend_id, prod_name, prod_price
FROM
    study.products
WHERE
    vend_id = 1001 AND prod_price > 3;

在这里插入图片描述

二、OR操作符

通过OR操作符可以拼接多个过滤条件,表示或

SELECT 
    vend_id, prod_name, prod_price
FROM
    study.products
WHERE
    vend_id = 1001 OR vend_id = 1003;

MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)_第2张图片

三、AND和OR运行的先后顺序说明

3.1、抛出问题

需求:列出价格为10美元(含)以上且由1002或1003制造的所有产品
MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)_第3张图片

分析:当SQL看到上述WHERE子句时,它理解为由供应商1003制造的任何价格为10(含)以上的产品,或者由供应商1002制造的任何产品,而不管其价格如何。
即,这里会先执行AND条件然后再执行OR条件

3.2、解决

使用圆括号
MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)_第4张图片

3.3、结论

SQL(像多数语言一样):
1、最先处理圆括号
2、优先处理AND操作符,再处理OR操作符。

三、IN操作符

判断IN前的字段值是不是在圆括号中这个集合中,如果在则满足条件
MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)_第5张图片

IN操作符完成与OR相同的功能,所有上面也可以写成:
MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)_第6张图片

四、NOT操作符

判断NOT前的字段值是不是在圆括号中这个集合中,如果在则不输出
MySql009——检索数据:过滤数据(WHERE子句结合AND、OR、IN、NOT操作符使用)_第7张图片

你可能感兴趣的:(#,MySql,数据库,sql,mysql)