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 语句,结果如下所示。