SQL---DML---WHERE过滤数据のAND,OR,IN,NOT的高级过滤

  • AND操作符

用在WHERE子句中,用来指示检索满足所有给定条件的行。

例:

SELECT prod_id,prod_price,prod_name

FROM Products

WHERE vend_id = 'DLL01' AND prod_price<= 4;

  • OR操作符

用在WHERE子句中,用来表示检索匹配任一给定条件的行。

例:

SELECT prod_id,prod_price,prod_name

FROM Products

WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' ;


  • 圆括号

SQL在处理OR操作符前,优先处理AND操作符。圆括号具有较AND操作符或OR操作符更高的计算次序。

任何时候使用具有AND操作符和OR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认计算次序,即使它确实是想要的顺序。

例:

SELECT prod_name,prod_price

FROM Products

WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01')

        AND prod_price >=10;

  • IN操作符

 IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN操作符完成的是和OR相同的功能。

IN操作符的优点:

  1. 在使用长的合法选项清单时,IN操作符的语法更清楚且更直观;
  2. 在使用IN时,计算的次序更容易管理;
  3. IN操作符一般比OR操作符清单执行更快;
  4. IN的最大优点是可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。
例:

SELECT prod_name,prod_price

FROM Products

WHERE vend_id IN('DLL01','BRS01') 

ORDER BY prod_name;


  • NOT操作符

NOT操作符只有一个功能,就是否定它之后所跟的任何条件。

在简单的WHERE子句中,使用NOT确实没有什么优势,但在更复杂的句子中,NOT是非常有用的,例如,在IN操作符联合使用的时候,NOT使找出与条件列表不匹配的行非常有效。MySQL中,NOT多用于否定EXISTS,其他的如果要使用,查阅相关手册。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值