6.过滤数据

Posted SuperBigData

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6.过滤数据相关的知识,希望对你有一定的参考价值。

学习目标

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

一.使用where子句

数据库当中,通常会根据特定操作报告提取表需要数据的子集。 

只检索所需数据,需要指定搜索条件search criteria(过滤条件filter criteria)。

1.where检查一个列是否具有指定相等的值

需求:查询产品表中prod_name,prod_price,prod_desc字段,过滤条件产品价格=2.50

select prod_name,prod_price,prod_desc from products where prod_price=2.50; 

格式:select 列名1,列名2,列名3 from 表名 where 列名2=2.50;

6.过滤数据_mysql

SQL过滤与应用过滤 :

  1. SQL的SELECT语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环以提取出需要的行。
  2. 让客户机应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性
  3. 如在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将导致网络带宽的浪费。
2.WHERE子句的位置

WHERE子句在前,ORDER BY再后, 否则将会产生错误 。

select prod_name,prod_price,prod_desc from products where prod_price>5 order by prod_price,prod_name;

6.过滤数据_mysql_02

二.where子句操作符

操作符与说明:

6.过滤数据_mysql_03

1.检查单个列

需求:查询产品表中prod_name,prod_price,prod_desc字段,过滤条件产品名称=fuses 

select prod_name,prod_price,prod_desc from products where prod_name=fuses; 

格式:select 列名1,列名2,列名3 from 表名 where 列名1=fuses;

检查WHERE prod_name=‘fuses’语句,它返回prod_name的值为Fuses的一行。

MySQL在执行匹配时默认不区分大小写,所以fuses与Fuses匹配

6.过滤数据_mysql_04

例子1:产品价格小于10,按升序排列 

select prod_name,prod_price,prod_desc from products where prod_price<10 

order by prod_price,prod_name;

2.不匹配检查

需求:不是由供应商1003制造的所有产品 

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

格式:select 列名1,列名2,列名3,列名4 from 表名 where 列名1 <> 1003;

单引号用来限定字符串。用来与数值列进行比较的值不用引号

6.过滤数据_mysql_05

等同于:

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

3.范围值检查(BETWEEN)

BETWEEN需要两个值,即范围的包括开始值和包括结束值。 [2,3]这两个值必须用AND关键字分隔。

需求:查询价格在2.5到10之间的产品名称和产品价格,价格按升序排列

select prod_name,prod_price from products where prod_price between 2.5 and 10 order by prod_price; 

格式:select 列名1,列名2 from 表名 where 列名2 between 2.5 and 10;

6.过滤数据_mysql_06

4.空值检查

在一个列不包含值时,称其为包含空值NULL。

NULL 无值(no value),它与字段包含0空字符串仅仅包含空格不同

SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列

这个WHERE子句就是IS NULL子句

需求:顾客email是空的,顾客的id

select cust_id from customers where cust_email is null ; 

格式:select 列名1 from 表名 where 列名2 is null;

6.过滤数据_mysql_07

三.总结

学习了:

  1. 何用SELECT语句的WHERE子句过滤返回的数据。
  2. 对相等、不相等、大于、小于、值的范围。
  3. 以及NULL值等进行测试。

多思考,多总结,多输出,一键四连~

但行好事,莫问前程,我们下篇见~

往期文章:

​5.排序检索数据​

​4.检索数据​

​3.使用MySQL​

​2.MySQL简介​

​1.了解MySQL​


以上是关于6.过滤数据的主要内容,如果未能解决你的问题,请参考以下文章

Python pandas根据日期范围按升序过滤数据

如何按升序选择每个类别的最高价格的行?

php 获取产品的过滤最低价格

html Shopify API过滤产品价格

Drupal 7 将过滤器价格范围显示为复选框

过滤列表中的两个第一个匹配元素