mysql求数据库平均成绩视图,学习数据库(五)MySQL Navicat 视图

让我们来了解视图吧!

1、视图是从一个或者几个基本表/视图导出的虚表

2、数据库中只存放视图的定义,不存放视图对应的数据,那么这些数据在哪里呢?还在原来的表里

3、从2我们可以发现,视图像一个窗口,当基本表中的数据发生变化时,我们可以透过视图观察到数据的变化

一起来搞事情呀! 视图可以被查询、再定义。

但是!!被更新(增、删、改)有限制哦!!!

定义视图

以下图示是定义视图时命令的框架:

46db593011ac3a48dad2aef879b39210.png

1c69607782fe47284e4cec83815d61f4.png

create view info_student1

as

select sno,sname,sbirthday,sclass,sex

from student

where sclass='信管系0101'

6abb71d9cd5fb7ff9790a5039d098929.png

create view info_student2

as

select sno,sname,sbirthday,sclass,sex

from student

where sclass='信管系0101'

with check option

总结 (1)WITH CHECK OPTION是表示对视图进行更新、插入、删除操作时要保证UPDATE,INSERT,DELETE的行满足视图定义里的子查询的条件表达式。(下:视图更新的例子解释更清晰)

(2)视图中的属性列名只能–全部选择或全部省略,除此之外,没有其他选择。

(3)上述例子中都省略了视图的列名,隐含了它是由子查询SELECT子句中的三个列名组成的。

(4)DBMS执行语句时只是把视图的定义存在数据字典里,不执行SELECT语句。

查询视图

de55081baff45a7e64671a0abf5634b4.png

select *

from info_student1

where 2020-year(sbirthday)>27

总结 视图查询时,DBMS先进行有效性检查,也就是看查询中涉及的表、视图是否存在。若存在,则从数据字典找到视图定义,将查询结合,再执行。所以,DBMS其实帮我们做了大部分的工作,只了解原理就好。

更新视图

661745564e6c21a4bb9ab38961973e52.png

insert into info_student1(sno,sname,sbirthday,sclass,sex)

values ('011111136','某某某','1987.11.9','信管系0101','男')

f911a3cfd6d61bf59893d02f02990ad4.png

delete from info_student1

where sname='某某某' and sno='01111135'

6e00f753d63caa5bba7aabe6ae2a60fa.png

update info_student2

set sname='某某某'

where sno='01111103'

总结 (1)为防止用户在通过视图对数据进行增删改时,不注意把不属于视图范围内的基本表的数据进行了操作,所以在定义的时候就加了WITH CHECK OPTION。背后的意义就是,DBMS在执行时会检查操作,满足条件则执行,否则拒绝。

(2)在关系数据库中,并不是所有视图都可以更新

看了这么多,视图到底有什么作用呢? (1)简化操作,数据清晰。用户通过视图只需要把注意力放在自己关心是数据上,相对于对基本表操作而言,简化了操作,且结构简单清晰。

(2) 灵活,便于不同用户以多种角度看待同一数据。

(3) 对重构数据库提供了一定程度上的逻辑独立性。重构数据库时,修改相关操作,用户的应用程序不会受影响,也就是新的视图定义仍然是原来的用户关系。

(4) 对机密数据提供安全保护。保护数据的安全性,应该是我们最关心最重视的事了吧。有了视图机制,应用系统会为不同的用户提供不同的用户视图,就可以保证部分机密数据不出现在不必看到的用户视图上。

(5) 适当的利用视图使查询更加清晰

b061d033193aabd8008c75587f40015e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值