视图的基本操作

视图

建立视图

在单个表的基础上建立视图

image.png

查询结果

image.png

在多个表的基础上建立视图

在FROM后 标明要查询的数据表

image.png

查询结果

image.png

建立的视图基础上的视图

将FROM中的查询的表改成指定视图就行

其他部分和从表建立视图一样

image.png

带表达式的视图

派生属性

  • 经过计算产生的属性

比如 一个表中知道了 年龄 那么 2023-age 就得到了这个人的出生年份

这个出生年份就是派生属性 所以派生属性是由表中的属性 计算得来的

虚拟列

  • 由派生属性得到的属性列

上面得到的派生属性 出生年份 对于每一个元组而言 都能获取到 从而产生了Birth(属性列)

Birth是一个属性列 这里的 所存储的就是派生属性出生年份

由于属性是派生出来的 并非实际存在于表中的 所以由派生属性构成的列就是虚拟列

image.png

查询结果

image.png

行列子集视图

  • 从基本表导出的视图
  • 去掉了基本表中的一些列 但保留了主码

image.png

分组视图

使用了聚集函数的视图 和GROUP BY的子句的查询

image.png

删除视图

语法:

DROP VIEW 视图名称 [CASCADE]

[CASCADE] 是可选的 如果使用了CASCADE 则表示级联删除

即删除该视图的同时也将所有从该视图导出的视图一并删除

不过在MySQL中好像不起作用

级联删除

image.png

image.png

执行级联删除 DROP VIEW m_student CASCADE

image.png

image.png

级联视图还在???

查询视图

视图定义了之后可以想基表一样进行进行查询

视图消解(查询视图的过程)

什么是视图消解

视图消解是指将查询视图转化为基本表的过程。

当查询视图被使用时,系统会自动将它转化为基本表,并将查询条件应用于基本表,最终得到查询结果。这个过程是在查询执行之前进行的。视图消解可以提高查询效率和简化查询语句。

  1. 取出视图定义
  2. 将视图定义条件和用户和查询条件进行结合()
  3. 将视图转换成基本表
  4. 将结合后的查询条件应用于视图转换而来的基本表

image.png

大致流程

视图⟶基本表⟶复合查询条件⟶查询结果

符合查询条件=定义视图时的条件+查询视图时的条件

其他

如果创建的视图使用了基本表中的全部属性

也就是 查询语句中 有SELECT *

那么 基本表的改变 会使得视图不能正常工作

所以 得先删除该视图 修改完基本表 再重新创建该视图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值