sql必知必会学习记录(五)
本次记录内容主要包括高级数据过滤的内容
- 组合where字句
- and 操作符
SELECT prod_id , prod_price, prod_name FROM products where vend_id ='DLL01' AND prod_price <= 4;
AND操作符指示DBMS只返回满足所有给定条件的行。
- or 操作符
SELECT prod_name,prod_price FROM products WHERE vend_id = 'DLL01' OR vend_id = 'BRS01';
OR 操作符用来表示检索匹配任一给定条件的行。
注意:在where字句中可以包含任意数目的and 和or操作符。
- 求值顺序
SELECT prod_name,prod_price FROM products WHERE vend_id = 'DLL01' OR vend_id = "BRS01" AND prod_price >= 10 ;
例如上面的语句在where字句中同时出现 and 和or操作符时, sql会优先处理AND操作符,然后再处理or操作符。如果要改变其优先级可通过添加圆括号的方式来对操作符进行明确分组。
- IN操作符
IN操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN 取一组由逗号分隔、括在圆括号中的合法值,功能和OR相当。IN关键字性能要比or高,同时其语法更清楚更直观。
SELECT prod_name,prod_price FROM products WHERE vend_id IN ('DLL01', 'BRS01')ORDER BY prod_name;
- not操作符
WHERE 子句中用来否定其后条件的关键字。与<>操作符功能相同。
SELECT prod_name FROM products where not vend_id = 'DLL01' ORDER BY prod_name;
大多数DBMS 允许使用NOT 否定任何条件,如用not 否定IN,BETWEEN 和EXISTS字句。