高级数据过滤
组合where子句
SQL允许多个where子句,可以是使用and关键字或or关键字进行连接。
and操作符
eg:select prod_id, pro_price, prod_name from products where vend_id = 'dll01' and prod_price <= 4;
and 用来指示检索满足所有给定条件的行。
or操作符
or操作符与and操作符相反,检索满足其中一个条件的行。
eg: select prod_name, prod_price from products where vend_id = 'dll01' or vend_id = 'brs01';
求值顺序
where子句可以包含任意数量的and和or操作符,允许两者结合使用。但是它们会有一个求值顺序。
SQL在处理or操作符前,会优先处理and操作符。如果需要优先处理or则可以使用括号括起来。(多使用括号来进行语义的分割)
eg:select prod_name, prod_price from products where (vend_id = 'dll01' or vend_id = 'brs01')and prod_price >= 10;
in操作符
in操作符用来指定条件范围,范围中的每个条件都可以进行匹配。
eg:select pro_name, prod_price from Products where vend_id in ('dll01', 'drs01'); 检索vend_id的值为'dll01', 'drs01'的行。
in操作符和or操作符很相像。
in操作符的好处:
1、in操作符的语法更清楚,更直观。
2、相对于and、or操作符,in的求值顺序更容易管理。
3、in操作符比一组or操作符执行更快
4、in操作符可以包含其他select语句,能够动态的构建where子句。
not操作符
where子句中not操作符有且只有一个功能,就是否定其后的条件。