暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle视图

芃芃 2025-04-01
431


视图是从数据库一个或多个表中导出的虚拟表,视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。

作用:是为了简化查询,也提高了数据的安全性。

视图有两种分类:普通视图和物化视图。

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论