让我们来了解视图吧! |
1、视图是从一个或者几个基本表/视图导出的虚表
2、数据库中只存放视图的定义,不存放视图对应的数据,那么这些数据在哪里呢?还在原来的表里
3、从2我们可以发现,视图像一个窗口,当基本表中的数据发生变化时,我们可以透过视图观察到数据的变化
一起来搞事情呀! |
但是!!被更新(增、删、改)有限制哦!!!
定义视图
以下图示是定义视图时命令的框架:
create view info_student1
as
select sno,sname,sbirthday,sclass,sex
from student
where sclass='信管系0101'
create view info_student2
as
select sno,sname,sbirthday,sclass,sex
from student
where sclass='信管系0101'
with check option
总结 |
(2)视图中的属性列名只能–全部选择或全部省略,除此之外,没有其他选择。
(3)上述例子中都省略了视图的列名,隐含了它是由子查询SELECT子句中的三个列名组成的。
(4)DBMS执行语句时只是把视图的定义存在数据字典里,不执行SELECT语句。
查询视图
select *
from info_student1
where 2020-year(sbirthday)>27
总结 |
更新视图
insert into info_student1(sno,sname,sbirthday,sclass,sex)
values ('011111136','某某某','1987.11.9','信管系0101','男')
delete from info_student1
where sname='某某某' and sno='01111135'
update info_student2
set sname='某某某'
where sno='01111103'
总结 |
(2)在关系数据库中,并不是所有视图都可以更新
看了这么多,视图到底有什么作用呢? |
(2) 灵活,便于不同用户以多种角度看待同一数据。
(3) 对重构数据库提供了一定程度上的逻辑独立性。重构数据库时,修改相关操作,用户的应用程序不会受影响,也就是新的视图定义仍然是原来的用户关系。
(4) 对机密数据提供安全保护。保护数据的安全性,应该是我们最关心最重视的事了吧。有了视图机制,应用系统会为不同的用户提供不同的用户视图,就可以保证部分机密数据不出现在不必看到的用户视图上。
(5) 适当的利用视图使查询更加清晰
来源:oschina
链接:https://my.oschina.net/u/4394252/blog/4304295