第6章 过滤数据

    使用WHERE子句
    WHERE子句操作符
        检查单个值
        不匹配检查
        范围值检查
        空值检查

  

一、使用WHERE子句

  数据库表一般包含大量的数据,很少需要检索表中所有行。通常会根据特定操作或报告的需要提取表数据的子集。只检索所需数据需要指定搜索条件,搜索条件也称为过滤条件。

  在select语句中,数据根据where子句中指定的搜索条件进行过滤。

    select prod_name, prod_price
    from products
    where prod_price = 2.50;

  这条语句从products表中检索两个列,但不返回所有行,只返回prod_price值为2.50的行。

注意:在同时使用order bywhere子句时,应该让order by位于where之后。

  

二、WHERE子句操作符

操作符 说明
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
between 在指定的两个值之间

1、检查单个值

    select prod_name, prod_price
    from products
    where prod_name = 'fuses'; // prod_name为字符串类型

注意:MySQL在执行匹配时默认不区分大小写。

2、不匹配检查

    select prod_name, prod_price
    from products
    where prod_price <> 1003;

    select prod_name, prod_price
    from products
    where prod_price != 1003;

3、范围值检查

    select prod_name, prod_price
    from products
    where prod_price between 5 and 10; // 包括5和10

4、空值检查

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

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

  select语句有一个特殊的where子句,可用来检查具有NULL值的列。这个where子句就是is null子句。

    select prod_name
    from products
    where prod_price is null;

  这条语句返回没有价格(空prod_price字段,不是价格0)的所有产品。

注意:null与不匹配 在通过过滤选择出不具有特定值的行时,你可能希望返回具有null值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所有在匹配过滤或不匹配过滤时不返回它们。 因此,在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有null的行。

  

🔚