数据库表一般包含大量的数据,很少需要检索表中所有行。通常只会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。
1、在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后给出。
eg:select price from product where price = 2;
注意:WHERE子句的位置在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。
2、WHERE子句操作符
我们在关于相等的测试时看到了第一个WHERE子句,它确定一个列是否包含特定的值。MySQL支持表6-1列出的所有条件操作符。
between用法:
where price between 5 and 10;
3、空值检查:
在创建表时,表设计人员可以指定其中的列是否可以不包含值。在个列不包含值时,称其为包含空值NULL。NULL无值(no value),它与字段包含0、空字符串或仅仅包含空格不同。
SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。个WHERE子句就是IS NULL子句。其语法如下:
eg:select price from product where price is NULL;
注意:NULL与不匹配在通过过滤选择出不具有特定值的行时,你可能希望返回具有NULL值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配过滤时不返回它们。
因此,在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有NULL的行。
网友评论