工作中的报表
作为一个开发人员,首次接触报表。但也被折腾的不轻。自己刚接手这块业务时间不长,各个模块还不熟悉并且有很多的开发需求,写存储过程,视图,各种函数,js,简直就是折磨。说一下我前面一个报表需求吧。
- 在各种业务中,记录不同业务数据,放在数据库不同的表中;
- 然后从不同的表中,取得关联的各种数据,以报表的形式展现出来;
- 从各种表中查到的数据插入到一个新的表中,可以组成一个视图,并且这个视图可以实时刷新;
- 最后取这个报表中的数据展示给各位领导看;
由此可见,如果取得哪个表中的数据不对,或者哪个表中缺少了需要的数据,那这就有点坑了,所以在同事的指点下,需要把数据组成一个视图。
对于视图,这压根都没用过,所以写下这边文章以做记录和总结。
视图是什么
根据百科解释,视图是一个虚拟表,并不在数据库中存储数据值,数据库中只有数据字典中存储对视图的定义。也就是说,视图并不是一个数据库表,而视图中的数据存在于真实的数据库表中。除此之外,视图和表一样,也有字段的行和列。它可以从多个表中那点数据来展示又不用创建一个数据库表,这样就节省了空间。
创建视图
创建视图的语句比较简单,用我工作上的一个业务进行说明。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;
简单的记录一下,要学的东西太多,学无止境。作为开发也是如此,不进步就是一种退步。