• 第6章 过滤数据
    • 一、使用WHERE子句
    • 二、WHERE子句操作符
      • 1、检查单个值
      • 2、不匹配检查
      • 3、范围值检查
      • 4、空值检查

    第6章 过滤数据

    1. 使用WHERE子句
    2. WHERE子句操作符
    3. 检查单个值
    4. 不匹配检查
    5. 范围值检查
    6. 空值检查

      

    一、使用WHERE子句

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

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

    1. select prod_name, prod_price
    2. from products
    3. where prod_price = 2.50;

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

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

      

    二、WHERE子句操作符

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

    1、检查单个值

    1. select prod_name, prod_price
    2. from products
    3. where prod_name = 'fuses'; // prod_name为字符串类型
    注意:MySQL在执行匹配时默认不区分大小写。

    2、不匹配检查

    1. select prod_name, prod_price
    2. from products
    3. where prod_price <> 1003;
    4. select prod_name, prod_price
    5. from products
    6. where prod_price != 1003;

    3、范围值检查

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

    4、空值检查

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

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

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

    1. select prod_name
    2. from products
    3. where prod_price is null;

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

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

      

    ?