首页 > 经验记录 > 数据库 > 数据库对象_视图

数据库对象_视图

视图

视图是从一个或几个实体表(或视图)导出的表。视图本身是一个不包含任何真实数据的虚拟表。数据库中只存放视图的定义,而不存放视图对应的数据。这些数据仍然存在于原来的实体表之中。从这个意义上来看,视图就像是一个窗口,通过它可以看到数据库中自己需要的数据及其变化。

 

▲视图能够简化用户的操作

▲视图能使用户以多种角度看待同一数据

▲视图对重构数据库提供了一定程度的逻辑独立性

▲视图能够对机密数据提供安全保护

▲适当的利用视图可以更清晰的表达查询

 

视图是一定会在标准开发之中出现,这样就可以实现系统的分工

视图本身也数以Oracle中的对象,所以视图可以被查询、更新等操作。

 

创建视图的语法

CREATE [FORCE | NOFORCE][OR REPLACE] VIEW视图名称 [(别名1,别名2…)]

       AS

子查询;

 

语法参数:

       FORCE:表示要创建视图的不存在也可以创建视图

       NOFORCE:(默认)表示要创建的视图必须存在,否则无法创建

       OR REPLACE:表示视图的替换,如果创建的视图不存在则会创建新的,如果视图已经存在,则将其进行替换

 

Oracle11g版本后,默认情况下scott用户没有创建视图的权限

可以进sys用户执行语句:GRANT CREATE VIEW TO c##Scott

      

 

       范例:创建一张工资大于两千的雇员信息图

              CREATE VIEW myview

                     AS

              SELECE * FROM emp WHERE sal>2000;

              此时是希望把这条语句的操作封装在视图之中。

             

创建完成后,只要查询视图就可以实现与被封装SQL语句同样的功能

       在视图上也能执行DML操作,但是在开发角度来讲,不建议在视图上更新

 

在进行视图增加数据的时候,如果视图只包含了表中的部分数据,那么增加时也只会增加部分数据,没有映射到视图之中的列都会使用null填充

 

 

在创建视图的结尾可以添加这几个子句:

使用WITH CHECK OPTINO子句可以保证视图的创建字段不被修改

使用WITH READ ONLY 子句可以使视图变成只读视图,无法进行更新,建议使用此子句

 

 

视图从本身的定义来讲,并不是很麻烦,而且在标准开发之中,视图的数量是有可能远远大于数据表的数量。


EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00