第5课 高级数据过滤

这一课讲授如何组合WHERE子句建立功能更强、更高级的搜索条件。还将学习如何使用NOT和IN操作符。

组合WHERE子句

上一课时介绍的所有WHERE子句在在过滤数据时使用的都是单一的条件。为了进行更强的过滤控制,SQL允许给出多个WHERE子句。这些子句有两种使用方式,即以AND子句或OR子句的方式使用

AND操作符

SELECT col_name1, col_name2, col_name3 FROM tablename WHERE col_name1='ABC' AND col_name2 <= 4;

OR操作符

SELECT col_name1, col_name2, col_name3 FROM tablename WHERE col_name1='ABC' OR col_name2 <= 4;

求值顺序

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

注意:SQL在处理OR操作符前,优先处理AND操作符。使用圆括号即可解决此问题

IN操作符

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

SELECT prod_name, prod_price FROM Products WHERE vend_in IN ('DLL01', 'BSLKJL') ORDER BY prod_name;

实际上,IN操作符完成了与OR相同的功能。但IN可以包含其他SELECT语句。

NOT操作符

WHERE子句中的NOT操作符有且只有一个功能,那就是否定其后所跟的任何条件。

SELECT prod_name FROM Products WHERE NOT vend_id='DLL01' ORDER BY prod_name;