一直用mysql,Oracle很少使用,最近要求使用Oracle根据Oracle的视图进行业务操作,才开始了解视图是什么,表是什么,以下是我个人理解和结合网上的一些总结。如果哪里有不对的,还望指正,非常感谢!
区别:
**1、**表是基本存储,视图是把一个或者一些表的数据按照一定规则集合显示。
**2、**视图是已经编译好的sql语句,而表不是。
**3、**表是有实际的物理记录,占用物理空间,视图没有实际的物理记录,不占用物理空间。
**4、**视图是把内容展现的窗口。
**5、**表可以直接对它进行修改,但视图只能用创建的语句来修改。
作用:
**1、**视图因为可以不给用户或者其它开发人员开发看到表结构,安全性可想而知,具有更大的安全性;
**2,**一张或者多张表,之间可能具有比较复杂的联系,我们可以将它们创建成视图,提供出来,这样需要的人就不用每次去理解这其中可能存在的复杂的业务逻辑了,具有更好的简化数据的能力。
**3、**有些库或者整个系统开发完后,这其中各个表无论是结构还是字段含义等都是设计好的。然后要更新或者升级时,发现表设计固定了,如果想要去改的话,很多都要重新设计,增加开发成本的问题,如果创建视图来对表结构的设计进行补充,不就可以大大节约成本,具有对原表设计的一个补充的作用。