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

数据库对象_视图

视图
视图是从一个或几个实体表(或视图)导出的表。视图本身是一个不包含任何真实数据的虚拟表。数据库中只存放视图的定义,而不存放视图对应的数据。这些数据仍然存在于原来的实体表之中。从这个意义上来看,视图就像是一个窗口,通过它可以看到数据库中自己需要的数据及其变化。
 
▲视图能够简化用户的操作
▲视图能使用户以多种角度看待同一数据
▲视图对重构数据库提供了一定程度的逻辑独立性
▲视图能够对机密数据提供安全保护
▲适当的利用视图可以更清晰的表达查询
 
视图是一定会在标准开发之中出现,这样就可以实现系统的分工
视图本身也数以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 子句可以使视图变成只读视图,无法进行更新,建议使用此子句
 
 
视图从本身的定义来讲,并不是很麻烦,而且在标准开发之中,视图的数量是有可能远远大于数据表的数量。

           


CAPTCHAis initialing...
EA PLAYER &

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

      00:00/00:00