Mysql学习_第五章_高级数据过滤

本文深入讲解SQL中的高级数据过滤方法,包括AND、OR、IN、NOT等操作符的使用,以及如何通过组合这些操作符实现复杂的查询需求。文章还探讨了求值顺序对查询结果的影响,并提供了实际案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高级数据过滤

组合 WHERE 子句

AND 操作符

SELECT prod_id, prod_price, prod_name
FROM Products
WHERE vend_id = 'DLL01' AND prod_price <= 4;

备注:可以增加多个过滤条件,每个条件间都要使用 AND 关键字。

OR 操作符
OR 操作符与 AND 操作符正好相反,它指示 DBMS 检索匹配任一条件的行
许多 DBMS在 OR WHERE 子句的第一个条件得到满足的情况下,就不再计算第二个条件了

SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = ‘BRS01’;

求值顺序
WHERE 子句可以包含任意数目的 AND 和 OR 操作符。允许两者结合以进行复杂、高级的过滤。

SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'
AND prod_price >= 10;
# 优先处理AND 所以这条WHERE语句的意思是:vend_id = 'DLL01' 或者 vend_id = 'BRS01' AND prod_price >= 10 的数据 
SELECT prod_name, prod_price
FROM Products
WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01')
AND prod_price >= 10;
#括号内的优先处理,所以这段WHERE的意思是 vend_id = 'DLL01' OR vend_id = 'BRS01 并且 prod_price >= 10 的数据

IN 操作符

IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配。 IN 取一组由逗号分隔、括在圆括号中的合法值。

SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ( 'DLL01', 'BRS01' )
ORDER BY prod_name;

备注: IN 操作符后跟由逗号分隔的合法值,这些值必须括在圆括号中。
上述代码可以用OR关键字代替

SELECT prod_name, prod_price
FROM Products
WHERE vend_id = 'DLL01' OR vend_id = 'BRS01'
ORDER BY prod_name;

NOT 操作符

WHERE 子句中的 NOT 操作符有且只有一个功能,否定其后所跟的任何条件。
NOT 关键字可以用在要过滤的列前,而不仅是在其后。

SELECT prod_name
FROM Products
WHERE NOT vend_id = 'DLL01'
ORDER BY prod_name;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值