第三章 复杂一点的查询

3.1 视图

3.1.1 什么是视图

3.1.2 视图与表有什么区别

3.1.3 为什么会存在视图

3.1.4 如何创建视图

 创建的视图如下所示:

为了学习多表视图,我们再创建一张表 shop_product,相关代码如下:

 我们在product表和shop_product表的基础上创建视图

创建的视图如下图所示

 

我们可以在这个视图的基础上进行查询

3.1.5 如何修改视图结构

此时productSum视图内容如下图所示

 

3.1.6 如何更新视图内容

3.1.7 如何删除视图

3.2 子查询

3.2.1 什么是子查询

3.2.2 子查询和视图的关系

3.2.3 嵌套子查询

3.2.4 标量子查询

3.2.5 标量子查询有什么用

如何通过标量子查询语句查询出销售单价高于平均销售单价的商品。

3.2.6 关联子查询

 

 

练习题-第一部分

3.1

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

  • 条件 1:销售单价大于等于 1000 日元。
  • 条件 2:登记日期是 2009 年 9 月 20 日。
  • 条件 3:包含商品名称、销售单价和登记日期三列。

3.2

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

 此时会出现错误

3.3

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

3.4

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

3 各种各样的函数

3.1算数函数

 

3.3.2 字符串函数

3.3.3 日期函数

 

 

3.3.4 转换函数

 

3.4 谓词

3.4.1 什么是谓词

3.4.2 LIKE谓词 -- 用于字符串的部分一致查询

 

3.4.3 BETWEEN谓词 -- 用于范围查询

3.4.4 IS NULL、 IS NOT NULL -- 用于判断是否为NULL

 

3.4.5 IN谓词 -- OR的简便用法

多个查询条件取并集时可以选择使用or语句。

 

3.4.6 使用子查询作为IN谓词的参数

  • IN和子查询

取出大阪在售商品的销售单价

第一步,取出大阪门店的在售商品 product_id ;

 

 第二步,取出大阪门店在售商品的销售单价 sale_price

使用 EXIST 选取出大阪门店在售商品的销售单价

 

 

下面的代码示例取出,不在东京门店销售的商品的销售单价 

 

3.5.2 CASE表达式的使用方法

  • 应用场景2:实现列方向上的聚合

 

聚合函数 + CASE WHEN 表达式即可实现该效果

 

练习题-第二部分

3.5 判断题

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

答:是的

3.6

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

 

3.7

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

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

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值