SQL必知必会 第5课 高级数据过滤

红太狼 2022-12-28 11:23 315阅读 0赞

5.1 组合 WHERE 子句

为了进行更强的过滤控制,SQL允许给出多个 WHERE 子句。有两个使用方式,以 AND 子句或 OR 子句的方式使用。

AND 操作符

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

  1. SELECT prod_id, prod_price, prod_name
  2. FROM products
  3. WHERE vend_id = 'DLL01' AND prod_price <= 4;

在这里插入图片描述

OR 操作符

OR操作符指示DBMS检索匹配任一条件的行。许多DBMS在OR WHERE子句的第一个条件得到满足的情况下就不再计算第二个条件了,相应的行就被检索出来。

  1. SELECT prod_id, prod_price, prod_name
  2. FROM products
  3. WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';

在这里插入图片描述

求值顺序

如果遇到这样的语句:

  1. SELECT prod_name, prod_price
  2. FROM products
  3. WHERE vend_id = 'DLL01' OR vend_id = 'BRS01' AND prod_price >= 10;

结果如下:
在这里插入图片描述
返回的行中,有4行的prod_price其实是小于10的,所以这个求值的顺序是

vend_id = ‘DLL01’ OR (vend_id = ‘BRS01’ AND prod_price >= 10)

即SQL在处理OR操作符之前,优先处理AND操作符。

所以这样:

  1. SELECT prod_name, prod_price
  2. FROM products
  3. WHERE (vend_id = 'DLL01' OR vend_id = 'BRS01') AND prod_price >= 10;

结果就仅这一行:在这里插入图片描述

IN 操作符

IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。

  1. SELECT prod_name, prod_price, vend_id
  2. FROM products
  3. WHERE vend_id IN ('DLL01', 'BRS01')
  4. ORDER BY prod_name;

在这里插入图片描述
IN 操作符完成了 OR 相同的功能。

NOT 操作符

NOT操作符否定其后所跟的任何条件。

  1. SELECT prod_name
  2. FROM products
  3. WHERE NOT vend_id = 'DLL01'
  4. ORDER BY prod_name;

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,315人围观)

还没有评论,来说两句吧...

相关阅读