2021-07-22 SQL Day5

一.数据过滤

1.WHERE

根据指定条件,过滤结果数据

SELECT m.* FROM milk_tea AS m WHERE m.prod_id = 2;

SELECT m.* FROM milk_tea AS m WHERE m.prod_name = '奶糖';

SELECT m.* FROM milk_tea AS m WHERE m.net_w = '150g';
image.png

image.png

image.png

SELECT m.* FROM milk_tea AS m WHERE m.in_price < 5;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price = 15;

SELECT m.prod_name FROM milk_tea AS m WHERE m.sale_price = 15;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price <> 15;
image.png

image.png

image.png

image.png

2.IFNULL(expr1,expr2)

image.png
SELECT m.* FROM milk_tea AS m WHERE IFNULL(sale_price, 15) <> 15;

SELECT m.* FROM milk_tea AS m WHERE IFNULL(sale_price, 15) = 15;
image.png

image.png

image.png
SELECT m.*, m.sale_price * 0.9 AS new_sale FROM milk_tea AS m WHERE m.sale_price * 0.9 < 10;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price * 0.9 < 10;

SELECT m.* FROM milk_tea AS m WHERE IFNULL(m.sale_price * 0.9, 0)  < 10;
image.png

image.png
SELECT m.*, m.sale_price - m.in_price AS profit FROM milk_tea AS m WHERE m.sale_price - m.in_price > 5;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price - m.in_price > 5;
image.png

image.png

image.png

3.BETWEEN...AND...

SELECT m.* FROM milk_tea AS m WHERE m.in_price BETWEEN 5 AND 10;
image.png

4.IS NULL \ IS NOT NULL

SELECT m.* FROM milk_tea AS m WHERE m.sale_price IS NULL;
image.png
SELECT m.* FROM milk_tea AS m WHERE m.sale_price IS NOT NULL;
image.png

二.今日代码

SELECT m.* FROM milk_tea AS m;

SELECT m.* FROM milk_tea AS m WHERE m.prod_id = 2;

SELECT m.* FROM milk_tea AS m WHERE m.prod_name = '奶糖';

SELECT m.* FROM milk_tea AS m WHERE m.net_w = '150g';

SELECT m.* FROM milk_tea AS m WHERE m.in_price < 5;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price = 15;

SELECT m.prod_name FROM milk_tea AS m WHERE m.sale_price = 15;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price <> 15;

IFNULL(expr1,expr2)

SELECT m.* FROM milk_tea AS m WHERE IFNULL(sale_price, 15) <> 15;

SELECT m.* FROM milk_tea AS m WHERE IFNULL(sale_price, 15) = 15;



SELECT m.*, m.sale_price * 0.9 AS new_sale FROM milk_tea AS m WHERE m.sale_price * 0.9 < 10;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price * 0.9 < 10;

SELECT m.* FROM milk_tea AS m WHERE IFNULL(m.sale_price * 0.9, 0)  < 10;


SELECT m.*, m.sale_price - m.in_price AS profit FROM milk_tea AS m WHERE m.sale_price - m.in_price > 5;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price - m.in_price > 5;


SELECT m.* FROM milk_tea AS m WHERE m.in_price BETWEEN 5 AND 10;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price IS NULL;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price IS NOT NULL;

SELECT m.* FROM milk_tea AS m WHERE IFNULL(m.sale_price, 11) = 11;

三.课后作业

Q1:写出过滤子句的结构(包括关键字和操作对象)以及该子句在整个语句中的位置。
答:
结构:关键字 - WHERE
操作对象 - 过滤条件
位置:在 SELECT...FROM...子句之后,ORDER BY...之前。

Q2:总结一下过滤子句(WHERE …)和排序子句(ORDER BY …)的异同。

image.png

Q3:分别写出以下语句。

SELECT m.* FROM milk_tea AS m;

SELECT m.* FROM milk_tea AS m WHERE m.sale_price IS NOT NULL;

SELECT m.* FROM milk_tea AS m WHERE IFNULL(m.sale_price, 10) ORDER BY m.sale_price ASC;

SELECT * FROM milk_tea ORDER BY IFNULL(sale_price, 10);

SELECT * FROM milk_tea WHERE IFNULL(sale_price, 20) * 1.1 > 16;

SELECT * FROM milk_tea WHERE (IFNULL(sale_price, 20) - in_price) > 5;

SELECT * FROM milk_tea WHERE (IFNULL(sale_price, 20) - in_price) > 5 ORDER BY IFNULL(sale_price, 20) DESC;

1、选出 milk_tea 表的所有列。

image.png

2、选出 milk_tea 表的所有列,要求 sale_price 不为空。

image.png

3、选出 milk_tea 表的所有列,并按 sale_price 列排序,sale_price 为空的话,按 10 处
理。

image.png

**4、选出 milk_tea 表的所有列,要求 sale_price 上浮 10%后大于 16。sale_price 为空的
话,默认设置为 20。 **


image.png

5、选出 milk_tea 表的产品列,要求利润(sale_price – in_price)大于 5。如果 sale_price
为空的话,默认设置为 20。

image.png

6、对 5 的结果按照 sale_price 倒序排列。

image.png

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 3.1 视图 我们先来看一个查询语句(仅做示例,未提供相关数据) SELECTstu_nameFROMview_s...
    忘原_b2d5阅读 263评论 0 0
  • 一.常用语法 1.单表查询 SELECT...FROM... 查询一列 2.查询两列 3.查询所有列 或者使用 ...
    devilinside阅读 178评论 0 0
  • 一、SELECT语句基础 1.1 从表中选取数据 从表中查询数据需要使用SELECT语句,语法如下: 1.2从表中...
    8a590e918db0阅读 397评论 1 1
  • 第一章 数据库和SQL 1.2数据库的结构 ·关系型数据库:行代表记录,列代表字段,以行为单位进行读写 1.3SQ...
    AbrahamW阅读 416评论 0 1
  • 主键(PRIMARY KEY)的理解 这种主键里有两个列时叫组合键,用来唯一确定每一行数据,意思是这两种变量的各个...
    penta_ever阅读 276评论 0 0