MySQL的对应习题下

MySQL查询语句的进阶

第一部分

一、

创建出满足下述三个条件的视图(视图名称为 ViewPractice5_1)。使用 product(商品)表作为参照表,假设表中包含初始状态的 8 行数据。

条件 1:销售单价大于等于 1000 日元。
条件 2:登记日期是 2009 年 9 月 20 日。
条件 3:包含商品名称、销售单价和登记日期三列。
对该视图执行 SELECT 语句的结果如下所示。

SELECT * FROM ViewPractice5_1;

执行结果

product_name | sale_price | regist_date
--------------+------------+------------
T恤衫         |   1000    | 2009-09-20
菜刀          |    3000    | 2009-09-20

二、

向习题一中创建的视图 ViewPractice5_1 中插入如下数据,会得到什么样的结果?为什么?

INSERT INTO ViewPractice5_1 VALUES (' 刀子 ', 300, '2009-11-02');

三、

请根据如下结果编写 SELECT 语句,其中 sale_price_avg 列为全部商品的平均销售单价。

在这里插入图片描述

四、

请根据习题一中的条件编写一条 SQL 语句,创建一幅包含如下数据的视图(名称为AvgPriceByType)。

在这里插入图片描述

提示:其中的关键是 sale_price_avg_type 列。与习题三不同,这里需要计算出的 是各商品种类的平均销售单价。这与使用关联子查询所得到的结果相同。 也就是说,该列可以使用关联子查询进行创建。问题就是应该在什么地方使用这个关联子查询。

第二部分

一、判断题

四则运算中含有 NULL 时(不进行特殊处理的情况下),运算结果是否必然会变为NULL ?

二、

对本章中使用的 product(商品)表执行如下 2 条 SELECT 语句,能够得到什么样的结果呢?

○1

SELECT product_name, purchase_price
  FROM product
 WHERE purchase_price NOT IN (500, 2800, 5000);
SELECT product_name, purchase_price
  FROM product
 WHERE purchase_price NOT IN (500, 2800, 5000, NULL);

三、

按照销售单价( sale_price )对练习 3.6 中的 product(商品)表中的商品进行如下分类。

低档商品:销售单价在1000日元以下(T恤衫、办公用品、叉子、擦菜板、 圆珠笔)
中档商品:销售单价在1001日元以上3000日元以下(菜刀)
高档商品:销售单价在3001日元以上(运动T恤、高压锅)

请编写出统计上述商品种类中所包含的商品数量的 SELECT 语句,结果如下所示。

执行结果

low_price | mid_price | high_price
----------+-----------+------------
        5 |         1 |         2

MySQL的集合运算

在这里插入图片描述
根据上述表的数据完成下面相应的练习

一、

找出 product 和 product2 中售价高于 500 的商品的基本信息。

二、

借助对称差的实现方式,求product和product2的交集。

三、

每类商品中售价最高的商品都在哪些商店有售 ?

四、

分别使用内连结和关联子查询每一类商品中售价最高的商品。

五、

用关联子查询实现:在 product 表中,取出 product_id、product_name、sale_price,并按照商品的售价从低到高进行排序,对售价进行累计求和。

SQL的高级处理

一、

假设有个product(商品)表执行如下 SELECT 语句所能得到的结果。

在这里插入图片描述

SELECT  product_id
       ,product_name
       ,sale_price
       ,MAX(sale_price) OVER (ORDER BY product_id) AS Current_max_price
  FROM product;

二、

继续使用product表,计算出按照登记日期(regist_date)升序进行排列的各日期的销售单价(sale_price)的总额。排序是需要将登记日期为NULL 的“运动 T 恤”记录排在第 1 位(也就是将其看作比其他日期都早)

三、思考题

1.窗口函数不指定PARTITION BY的效果是什么?

  1. 为什么说窗口函数只能在SELECT子句中使用?实际上,在ORDER BY 子句使用系统并不会报错。

四、

使用存储过程创建20个与 shop.product 表结构相同的表,如下图所示:

在这里插入图片描述

MySQL查询语句的进阶习题答案

第一部分

一、

在这里插入图片描述

二、

在这里插入图片描述

三、

在这里插入图片描述

四、

在这里插入图片描述

第二部分

一、判断题

在这里插入图片描述

二、

在这里插入图片描述

三、

在这里插入图片描述

MySQL的集合运算习题答案

一、

在这里插入图片描述

二、

在这里插入图片描述

三、

在这里插入图片描述

四、

在这里插入图片描述

五、

在这里插入图片描述

SQL的高级处理习题答案

一、

在这里插入图片描述

二、

在这里插入图片描述

三、思考题

在这里插入图片描述

四、

在这里插入图片描述
有误欢迎指正,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值