操作符:用来联结或改变WHERE子句中的子句的关键字。也称为逻辑操作符。
输入: SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id = 1003 AND prod_price <= 10;
分析:WHERE子句包含两个条件,并且用AND关键字联结。其实是可以添加多个过滤条件的,每添加一条就要使用一个ADN。
AND:用在WHERE子句中,即要求满足所有给定的条件。
输入: SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id = 1003 OR prod_price <= 10;
分析:只需要满足一个条件即可。
WHERE可以包含任意数目的AND和OR操作符,也允许二者结合以进行复杂和高级的过滤。
输入: SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id = 1002 OR vend_id = 1003 AND prod_price >= 10;
分析:在处理OR操作符之前,优先处理AND操作符。实际上是这样的,vend_id = 1002 OR (vend_id = 1003 AND prod_price >= 10);
圆括号的优先级比AND和OR更高。应该尽量使用圆括号,不要指望默认计算次序。
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN后面是由逗号分隔的合法值清单,全部括在圆括号中。
输入: SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id IN (1002.1003)
ORDER BY prod_name;
分析:IN的用法与OR有点类似。但IN更具优势。
1.当选项比较多的时候,IN更直观清楚;
2.选项的次序更好管理;
3.IN执行地比OR更快;
4.IN最大的优点是,可以包含其他SELECT语句,使得能够更动态地建立WHERE子句。
输入: SELECT prod_id,prod_price,prod_name
FROM products
WHERE vend_id NOT IN (1002.1003)
ORDER BY prod_name;
分析: NOT支持对IN,BETWEEN和EXISTS配合使用。