第4课 过滤数据

第4课 过滤数据

4.1 使用WHERE子句

只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。

在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出,如下所示:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49; 

4.2 WHERE子句操作符

4.2.1 检查单个值

第一个例子是列出所有价格小于10美元的产品:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price < 10; 

4.2.2 不匹配检查

这个例子列出所有不是供应商DLL01制造的产品:

SELECT vend_id, prod_name
FROM Products
WHERE vend_id <> 'DLL01';

提示:何时使用引号
单引号用来限定字符串。如果将值与字符串类型的列进行比较,就需要限定引号。用来与数值列进行比较的值不用引号。

4.2.3 范围值检查

下面的例子说明如何使用BETWEEN操作符,它检索价格在5美元和10美元之间的所有产品:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10; 

在使用BETWEEN时,必须指定两个值——所需范围的低端值和高端值。这两个值必须用AND关键字分隔。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。

4.2.4 空值检查

在创建表时,表设计人员可以指定其中的列能否不包含值。在一个列不包含值时,称其包含空值NULL。

NULL
无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。

确定值是否为NULL,不能简单地检查是否= NULL。SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。

SELECT prod_name
FROM Products
WHERE prod_price IS NULL;

警告:NULL和非匹配
通过过滤选择不包含指定值的所有行时,你可能希望返回含NULL值的行。但是这做不到。因为未知(unknown)有特殊的含义,数据库不知道它们是否匹配,所以在进行匹配过滤或非匹配过滤时,不会返回这些结果。

4.3 小结

这一课介绍了如何用SELECT语句的WHERE子句过滤返回的数据。我们学习了如何检验相等、不相等、大于、小于、值的范围以及NULL值等。

原文地址:https://www.cnblogs.com/zhangsonghui/p/12943072.html