视图的作用

文章介绍了Oracle数据库中的视图和物化视图。视图是从一个或多个表中创建的虚拟表,简化查询并隐藏复杂逻辑,但不存储数据。物化视图则是实际存储数据的表格,提供实时或定时更新,用于提高查询效率和保存特定时间点的数据。此外,文章还提到了序列的概念,它是生成有序数字的工具,常用于主键的自动增量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

oracle的视图:view 一个或者多个表查询的结果,这个结果就是一个虚拟的表,每次运行视图,都会重新运行视图中的那个查询语句
create view 视图名 as
select 语句
with read only;

视图的作用:

  1. 将一个复杂的select语句,放入到一个视图里面,简化日常的操作
  2. 可以隐藏一部分原表的列,简化别人在操作表的时候的业务逻辑
  3. 可以添加with read only,增加表的安全性
  4. 视图可以节省网络流量

视图的缺点:
对拥有复杂逻辑的视图,再次表连接等操作,会导致语句更加复杂,运行效率很慢。

oracle的物化视图:是一个真实的物理的表格,将一个或多个表格查询的结果,当成一个新的表格来保存,物化视图的表格,会对原表的数据进行同步,物化视图的表格,本身就是不能更改的
物化视图也叫做 快照表。
create materialized view 物化视图名字
refresh on commit | demand
start with 时间点 next 下一次更新的时间点
as
select 语句;

on commit:类似于实时更新,原表提交数据时更新
create materialized view stu_nan
refresh on commit
as
select * from student where ssex=‘男’ and sage>20;

on demand:定时更新
create materialized view stu_nv_20
refresh on demand
start with sysdate
next to_date(to_char(sysdate+1,‘yyyy-mm-dd’)||’ 10:00:00’,‘yyyy-mm-dd hh24:mi:ss’)
as
select * from student where ssex=‘女’ and sage>20;

表格更新的方法:

  1. complete 完全刷新,整个表格全部都更新一次数据
  2. fast 快速刷新,更新你变更部分的数据
  3. force 默认的更新方式,默认的更新方法就是fast
  4. never 不要更新表格

declare
begin
dbms_mview.refresh(‘物化视图的名字’,‘更新的方法’);
end;

**视图和物化视图的区别是什么?

  1. 视图是一张虚拟的表格,不会占用磁盘空间,物化视图是一个真实的表格,会占用磁盘空间
  2. 视图为了简化select操作用的,物化视图也叫做快照表,是为了保存某个表格或者是select语句在某个时间点的数据而存在的
  3. 视图是实时更新的,物化视图有两个刷新表格内容的方法,一种是提交数据的时候更新,第二种是定时更新
  4. 当原表非常大的时候,视图不会减少查询时间,物化视图是会减少查询时间的
  5. 可以在物化视图上建立索引,进一步加快查询速度**

oracle的序列:sequence,一组有规律的从大到小或者从小到大的数字,一般序列都是在表格里面,充当主键的自增序号来使用的
简单序列的创建:
create sequence 序列名字;

序列的两个属性:
查看序列当前的内容
序列.currval;

使用序列,并且让序列进入到下一个数字
序列.nextval;

create sequence seq02;

create table s1(
id number,
name varchar2(20)
);

insert into s1 values(seq02.nextval,‘tom’);

创建一个自定义的序列:
create sequence 序列名字
start with 开始数字
increment by 自增的长度
maxvalue 最大值的数字 | nomaxvalue
minvalue 最小值的数字 | nominvalue
cache 缓存数字的数量 | nocache
cycle | nocycle;

create sequence seq03
start with 100
increment by 5
maxvalue 150
minvalue 0
cache 10
cycle;

删除序列:
drop sequence 序列名字;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一凡888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值