• 读书笔记--SQL必知必会04--过滤数据


    4.1 使用WHERE子句

    在SELECT语句中,数据根据WHERE子句中指定搜索条件进行过滤。
    搜索条件(search criteria)也称为(filter condition)。
    WHERE子句在表名之后使用。同时使用ORDER BY和WHERE子句时,ORDER BY位于WHERE之后。

    MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price=3.49;
    +---------------------+------------+
    | prod_name           | prod_price |
    +---------------------+------------+
    | Fish bean bag toy   |       3.49 |
    | Bird bean bag toy   |       3.49 |
    | Rabbit bean bag toy |       3.49 |
    +---------------------+------------+
    3 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price = 3.49 ORDER BY prod_name;
    +---------------------+------------+
    | prod_name           | prod_price |
    +---------------------+------------+
    | Bird bean bag toy   |       3.49 |
    | Fish bean bag toy   |       3.49 |
    | Rabbit bean bag toy |       3.49 |
    +---------------------+------------+
    3 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    

    4.2 WHERE子句操作符

    等于: = 
    不等于:!= 或者 <>。 并非所有DBMS都同时支持这两种不等于操作符。
    
    大于:> 
    小于:<
    
    大于等于:>= 
    小于等于:<=
    
    不大于:!> 
    不小于:!<
    
    在指定的两个值之间:BETWEEN
    为NULL值:IS NULL
    

    4.2.1 检查单个值

    MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price < 10;
    +---------------------+------------+
    | prod_name           | prod_price |
    +---------------------+------------+
    | Fish bean bag toy   |       3.49 |
    | Bird bean bag toy   |       3.49 |
    | Rabbit bean bag toy |       3.49 |
    | 8 inch teddy bear   |       5.99 |
    | 12 inch teddy bear  |       8.99 |
    | Raggedy Ann         |       4.99 |
    | King doll           |       9.49 |
    | Queen doll          |       9.49 |
    +---------------------+------------+
    8 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    

    4.2.2 不匹配检查

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

    MariaDB [sqlbzbh]> SElECT vend_id, prod_name FROM Products WHERE vend_id <> 'DLL01';
    +---------+--------------------+
    | vend_id | prod_name          |
    +---------+--------------------+
    | BRS01   | 8 inch teddy bear  |
    | BRS01   | 12 inch teddy bear |
    | BRS01   | 18 inch teddy bear |
    | FNG01   | King doll          |
    | FNG01   | Queen doll         |
    +---------+--------------------+
    5 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    

    4.2.3 范围值检查

    使用BETWEEN操作符检查某个范围的值时,必须指定范围的开始值和结束值,而且这两个值必须用AND关键字分隔。

    MariaDB [sqlbzbh]> SElECT prod_name, prod_price FROM Products WHERE prod_price BETWEEN 5 AND 10;
    +--------------------+------------+
    | prod_name          | prod_price |
    +--------------------+------------+
    | 8 inch teddy bear  |       5.99 |
    | 12 inch teddy bear |       8.99 |
    | King doll          |       9.49 |
    | Queen doll         |       9.49 |
    +--------------------+------------+
    4 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    

    4.2.4 空值检查

    在一个列不包含值时,称为包含空值NULL,表示无值(no value)。
    注意:在进行匹配过滤和非匹配过滤时,不会返回含NULL值的行。

    MariaDB [sqlbzbh]> SELECT prod_name FROM Products WHERE prod_price IS NULL;
    Empty set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    MariaDB [sqlbzbh]> SELECT cust_name FROM Customers WHERE cust_email IS NULL;
    +---------------+
    | cust_name     |
    +---------------+
    | Kids Place    |
    | The Toy Store |
    +---------------+
    2 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    MariaDB [sqlbzbh]> SELECT cust_email FROM Customers;
    +-----------------------+
    | cust_email            |
    +-----------------------+
    | sales@villagetoys.com |
    | NULL                  |
    | jjones@fun4all.com    |
    | dstephens@fun4all.com |
    | NULL                  |
    +-----------------------+
    5 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> SELECT cust_email FROM Customers WHERE cust_email != 'sales@villagetoys.com';
    +-----------------------+
    | cust_email            |
    +-----------------------+
    | jjones@fun4all.com    |
    | dstephens@fun4all.com |
    +-----------------------+
    2 rows in set (0.00 sec)
    
    MariaDB [sqlbzbh]> 
    
  • 相关阅读:
    使用adns库解析域名
    三星DRAM+NAND FLASH 合成MCP芯片介绍及应用攻略
    内核initcall分析
    linux head-common.s分析(转)
    linux heads分析(转)
    虚拟内存_内核空间_用户空间
    linux kernel学习笔记-5内存管理_转
    u-boot README--linux support
    u-boot README--Memory Management&initialize
    linux内核中mtd架构分析
  • 原文地址:https://www.cnblogs.com/anliven/p/6204638.html
Copyright © 2020-2023  润新知