SQL允许给出多个WHERE子句,这些子句以AND和OR的方式使用。
AND操作符可以同时过滤多列内容:
SELECT prod_id, prod_price, prod_name FROM Products WHERE vend_id = ‘DLL01’AND prod_price <=4;
#检索供应商为DLL01且价格小于等于4的所有产品和名称。
OR操作符可以指示DBMS检索匹配任一条件的行:
SELECT prod_name, prod_price FROM Products WHERE vend_id = ‘DLL01’ OR vend_id = ‘BRS01’;
#检索供应商为DLL01和BRS01的所有产品名称和价格。
求值顺序:注意当一行SQL语句中同时包含OR和AND,那么优先处理AND操作符。而实际应用中,可以通过小括号‘()’来将优先执行的操作:
SELECT prod_name, prod_price FROM Products
WHERE (vend_id = ‘DLL01’OR vend_id = ‘BRS01’) AND prod_price >= 10;
#先检索供应商为DLL01和BRS01的产品,再在其中筛查出价格大于10的产品,返回产品名和产品价格列。
IN操作符可以指定检索区间:
SELECT prod_name, prod_price FROM Products WHERE vend_id IN (‘DLL01’, ‘BRS01’) ORDER BY prod_name;
#在供应商为DLL01和BRS01的产品中检索产品名和产品价格,并以产品名升序排序。
NOT操作符:与其他操作符配合使用来去否定结果。
SELECT prod_name FROM Products WHERE NOT vend_id = ‘DLL01’ORDER BY prod_name;
#检索供应商不是DLL01的产品名并以产品名升序排序。
当然,在数值检索的时候,可以直接使用<>来实现,效果等同。