oracle之视图


工作中的报表

作为一个开发人员,首次接触报表。但也被折腾的不轻。自己刚接手这块业务时间不长,各个模块还不熟悉并且有很多的开发需求,写存储过程,视图,各种函数,js,简直就是折磨。说一下我前面一个报表需求吧。

  1. 在各种业务中,记录不同业务数据,放在数据库不同的表中;
  2. 然后从不同的表中,取得关联的各种数据,以报表的形式展现出来;
  3. 从各种表中查到的数据插入到一个新的表中,可以组成一个视图,并且这个视图可以实时刷新;
  4. 最后取这个报表中的数据展示给各位领导看;

由此可见,如果取得哪个表中的数据不对,或者哪个表中缺少了需要的数据,那这就有点坑了,所以在同事的指点下,需要把数据组成一个视图。
对于视图,这压根都没用过,所以写下这边文章以做记录和总结。

视图是什么

根据百科解释,视图是一个虚拟表,并不在数据库中存储数据值,数据库中只有数据字典中存储对视图的定义。也就是说,视图并不是一个数据库表,而视图中的数据存在于真实的数据库表中。除此之外,视图和表一样,也有字段的行和列。它可以从多个表中那点数据来展示又不用创建一个数据库表,这样就节省了空间。

创建视图

创建视图的语句比较简单,用我工作上的一个业务进行说明。SQL语句:

create view pl_set_check as
select * from c_store c where c.status=1; 

create view是创建视图的关键字,后面跟的是视图的名字,一半大家都以V_开头的形式命名,大家可以自由选择;as 之后指定的是查询语句,表示从c_store表中获取需要的数据。这个查询是单标查询,也可以是多表查询,甚至可以从其他视图上面再去获取数据,这样会出现在视图上创建视图的情况。
在很多时候,视图都是用来展示数据的,并不用它直接进行操作,所以我们可以建立一个只读的视图。例如:

create view pl_set_check as
select * from c_store c where c.status=1
with read only; 

加上with read only选项,即表示创建的视图是只读的。
这样视图就创建好了,我们可以对它进行查询,调用或删除。

使用视图

创建好视图之后,我们就可以通过视图访问基础表中的数据了,就像直接访问基础表一样。例如:

select * from pl_set_check;

这样就可以查询pl_set_check视图中展示的所有数据了

删除视图

如果不需要这个视图,或者看它有点不顺眼那就把它毙掉:

DROP VIEW pl_set_check;

简单的记录一下,要学的东西太多,学无止境。作为开发也是如此,不进步就是一种退步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值