SQL必知必会读书笔记5
高级数据过滤
组合WHERE子句
AND操作符
格式:SELECT 显示的列名 FROM 表名 WHERE 限制条件1 AND 限制条件2;
实操:SELECT flname,money,zwid FROM gjp_zhangwu WHERE money <5000 AND zwid <10;
结果如下:

注意:这个例子只包含一个AND子句,因此最多有两个过滤条件。可以增加多个过滤条件,每个条件都要使用AND关键字。
OR操作符
格式:SELECT 显示的列名 FROM 表名 WHERE 限制条件1 OR 限制条件2;
实操:SELECT flname,money,zwid FROM gjp_zhangwu WHERE money <5000 OR zwid <10;
结果如下:

注意:AND的处理优先级大于OR,在使用WHERE子句时,为了避免出错,不要过分依赖默认求值顺序,应使用圆括号。
IN操作符
格式:SELECT 显示列名 FROM 表名 WHERE 条件列名 IN (限制条件);
实操:SELECT flname,money,zwid FROM gjp_zhangwu WHERE flname IN ('吃饭支出','工资收入');
结果如下:

IN的功能和OR差不多。
IN的优点:IN操作符的语法更清楚,更直观。
在与其他AND和OR操作符组合使用IN时,求值顺序更容易管理。
IN操作符一般比一组OR操作符执行的更快。
IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。
NOT操作符
格式:SELECT 显示列名 FROM 表名 WHERE NOT 限制条件;
实操:SELECT flname,money,zwid FROM gjp_zhangwu WHERE NOT money = 5000 ORDER BY money;
结果如下:

在更复杂的子句中,NOT是非常有用的,例如,在与IN操作符联合使用时,NOT可以非常简单地找出与条件列表不匹配的行。