oracle 视图

  • 1、概要:  

  视图是一个虚拟表,视图并不在其中存储数据,数据库只能在数据字典中定义视图。

  • 2、优点:

  为用户集中数据,简化用户的数据查询与处理。

  屏蔽数据库的复杂性,用户不必要了解数据库的复杂性。

  简化用户权限的管理,只授予用户使用视图的权限。

  便于数据共享,多个用户不必要都定义所需的数据。

  可以重新组织数据,以便关联到其他应用中。

  • 3、语法:

  CREATE[ORREPLACE]VIEWview_name[(column_name1[,column_name2…
    AS
    select_statement
    [WITHCHECKOPTION]
    [WITHREADONLY]

  CREATEORRepalce:用于创建和修改视图
  WITHCHECKOPTION:用于创建限制数据访问的视图
  WITHREADONLY:用于创建只读视图

  • 4、视图类别

  4.1、简单视图

    指基于单个表并且不包含函数或表达式的视图,在该视图上可以执行DML语句(即可执行增、删、改操作)。

  4.2、复杂视图

    指包含函数、表达式或者分组数据的视图,在该视图上执行DML语句时必须要符合特定条件。
    注:在定义复杂视图时必须为函数或表达式定义别名

  4.3、连接视图

    指基于多个表建立的视图,一般来说不会在该视图上执行INSERT、UPDATE、DELETE操作。

  4.4、只读视图

    指只允许进行SELECT操作的视图,在该视图时指定WITHREADONLY选项。
    注:该视图上不能执行INSERT、UPDATE、DELETE操作。

  4.5、check约束视图

    WITHCHECKOPTION用于在视图上定义CHECK约束,即在该视图上执行INSERT或UPDATE操作时,数据必须符合查询结果

  • 5.如何查询视图和表的更新权限

  selecttable_name,column_name,updatable,insertable,deletable
    fromuser_updatable_columns;
    说明
    updatable表示当前字段是否可以执行修改操作
    insertable表示当前字段是否可以执行添加操作
    deletable表示当前字段是否可以执行删除操作

  • 6.视图的状态

  当创建视图后,ORACLE将会验证视图的有效性,如修改了基本表,则会导致视图的无效状态.可查询数据字典user_objects的status.
    1)、创建表T,包含ID和NAME两列;
    2)、使用该表创建一个视图t_view,查看该表所有信息;
    3)、使用该表创建一个视图t_view2,查看该表的ID和NAME列
    4)、查看该视图状态;
    5)、在表T上增加一列性别sex,重新查看视图t_view的状态.
    6)、在表T上删除列NAME,重新查看视图t_view2的状态.
    注:VALID表示正常状态,invalid表示非正常状态
原文地址:https://www.cnblogs.com/HEWU10/p/4280998.html