六、过滤数据
使用SELECT语句的 WHERE子句 指定搜索条件。
01. 使用WHERE子句
数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。
- 在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤;
- 从products表中检索两个列,但不返回所有行,只返回prod_price值为2.50的行;
- 在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后。
02. WHERE子句操作符
- 检查单个值: 检查WHERE prod_name=‘fuses’语句,它返回prod_name的值为Fuses的一行,MySQL在执行匹配时默认不区分大小写,所以fuses与Fuses匹配;
1.1 列出价格小于10美元的所有产品:
1.2 检索价格小于等于10美元的所有产品:
- 不匹配检查: 列出不是由供应商1003制造的所有产品;
- 范围值检查: 为了检查某个范围的值,可使用BETWEEN操作符,其语法与其他WHERE子句的操作符稍有不同,因为它需要两个值,即范围的开始值和结束值;
- 空值检查: SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列,这个WHERE子句就是IS NULL子句;
4.1 这条语句返回没有价格(空prod_price字段,不是价格为0)的所有产品,由于表中没有这样的行,所以没有返回数据;
4.2 customers表确实包含有具有空值的列,如果在文件中没有某位顾客的电子邮件地址,则cust_email列将包含NULL值。