视图是从数据库一个或多个表中导出的虚拟表,视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。
作用:是为了简化查询,也提高了数据的安全性。
视图有两种分类:普通视图和物化视图。
8.1 视图操作
8.1.1 创建视图
语句:
create view 视图名 as
select 语句
with read only;
8.1.2 删除视图
drop view 视图名;
8.1.3 修改视图
语句:
修改视图:(可以在不用删除原视图的情况下更新)
create or replace view 修改;
没有则创建。
8.1.4 更新视图
和更新表的数据一样。
update view_name set name ='开发部';
注意:
因为在使用update或delete 执行某些数据时,会出现某一行删除的情况,一般会在原创建视图中末尾加上:
WITH CHECK OPTION
8.2 物化视图
定义:这是一个真实的物理的表,它将查询语句的结果集当成一个新的表保存起来,同时会对原表的数据进行同步。
格式:
create materialized view 物化视图名字
refresh on commit | demand
start with 时间点 next 下一次更新的时间点
as
select 语句;
含义:refresh on commit:类似于实时更新,原表提交数据时更新
refresh on demand: 根据需要更新
物化视图更新的方法:
1. complete 完全刷新,整个表格全部都更新一次数据
2. fast 快速刷新,更新你变更部分的数据
3. force 默认的更新方式,默认的更新方法就是fast
4. never 不要更新表格
格式:
declare
begin
dbms_mview.refresh('物化视图的名字','更新的方法');
end;
例:
create materialized view stu_nv_201
refresh on demand
as
select * from student_a02 where ssex='男' and sage>20;
update student_a02 set sname='王小san' where sno='s021';
commit;
declare
begin
dbms_mview.refresh('stu_nv_201','complete');
end;
8.3 普通视图与物化视图的区别
1.存储不同:普通视图是虚拟的表,不占用磁盘空间。物化视图是真实的表,会占用磁盘空间。
2.作用不同:普通视图是为了简化查询。物化视图是为了保存更新的数据。
3.更新方式不同:普通视图是实时更新。物化视图有两种:按需更新、提交数据时更新。
4.查询时间不同:如果原表占用内存增大,普通视图查询时间不变,而物化视图是会减少查询时间的。
5.物化视图可以建索引,普通视图不行。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_63021300/article/details/132267190
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




