您的位置:首页 > 数据库

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

2011-09-12 12:54 701 查看
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操作符的优点:

在使用长的合法选项清单时,IN操作符的语法更清楚且更直观;
在使用IN时,计算的次序更容易管理;
IN操作符一般比OR操作符清单执行更快;
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,其他的如果要使用,查阅相关手册。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐