【MySQL必知必会(三)】【过滤数据】

上一篇:【MySQL必知必会(二)】【检索数据+排序检索数据】

文章目录

  • 一、 过滤数据
    • 1.1 使用WHERE子句
      • 1.1.1 SQL的过滤与应用过滤
      • 1.1.2 WHERE子句的位置
    • 1.2 WHERE子句操作符
      • 1.2.1 检查单个值
      • 1.2.2 不匹配检查
      • 1.2.3 范围值检查
      • 1.2.4 空值检查

一、 过滤数据

使用SELECT语句的WHERE子句指定搜索条件

1.1 使用WHERE子句

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_price = 2.5;

【MySQL必知必会(三)】【过滤数据】_第1张图片

1.1.1 SQL的过滤与应用过滤

数据也可以在应用层过滤。SQL的SELECT语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环,以提取出需要的行。
还有一种方法,对数据库进行了优化,以便快速有效地对数据进行过滤。让客户机应用处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。此外,如果在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将导致宽带的浪费

1.1.2 WHERE子句的位置

在同时使用ORDER BY和WHERE子句时,应该让ORDER BY位于WHERE之后

1.2 WHERE子句操作符

【MySQL必知必会(三)】【过滤数据】_第2张图片

1.2.1 检查单个值

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_name = 'fuses';

【MySQL必知必会(三)】【过滤数据】_第3张图片

MySQL在执行匹配时默认不区分大小写

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_price < 10;

【MySQL必知必会(三)】【过滤数据】_第4张图片

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_price <= 10;

【MySQL必知必会(三)】【过滤数据】_第5张图片

1.2.2 不匹配检查

mysql> SELECT vend_id, prod_name
    -> FROM products
    -> WHERE vend_id <> 1003;

【MySQL必知必会(三)】【过滤数据】_第6张图片

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

mysql> SELECT vend_id, prod_name
    -> FROM products
    -> WHERE vend_id != 1003;

【MySQL必知必会(三)】【过滤数据】_第7张图片

1.2.3 范围值检查

为了检查某个范围的值,可使用BETWEEN操作符

mysql> SELECT prod_name, prod_price
    -> FROM products
    -> WHERE prod_price BETWEEN 5 AND 10;

【MySQL必知必会(三)】【过滤数据】_第8张图片

1.2.4 空值检查

mysql> SELECT prod_name
    -> FROM products
    -> WHERE prod_price IS NULL;

在这里插入图片描述

表中没有这样的行,所以没有返回数据

mysql> SELECT cust_id
    -> FROM customers
    -> WHERE cust_email IS NULL;

【MySQL必知必会(三)】【过滤数据】_第9张图片

你可能感兴趣的:(MySQL必知必会,mysql)