视图-View

视图是一个虚拟表,由存储的查询构成,可以将它的输出看成一个表。但是视图并不在数据库中存储数据值,其数据来自定义视图的查询语句所引用的表,数据库只在数据字典中存储视图的定义信息。

  视图具有以下优点:

  • 可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。
  • 可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。
  • 限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。
  • 从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

创建视图

CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name

OR REPLACE:若所创建的试图已经存在,则替换旧视图;

  FORCE:不管基表是否存在ORACLE都会自动创建该视图(即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用);

  NOFORCE:如果基表不存在,无法创建视图,该项是默认选项(只有基表都存在ORACLE才会创建该视图)。

  alias:为视图产生的列定义的别名;

  subquery  :一条完整的SELECT语句,可以在该语句中定义别名;

  WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;

  WITH READ ONLY :默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

查看视图定义

      前面介绍过,数据库并不存储视图中数值,而是存储视图的定义信息。用户可以通过查询数据字典视图USER_VIEWS,已获得视图的定义信息。

修改视图定义

      建立视图后,如果要改变视图所对应的子查询语句,则可以执行CREATE OR REPLACE VIEW语句 

重新编译视图

      视图被创建后,如果用户修改了视图所依赖的基本表定义,则该视图会被标记为无效状态。当用户访问视图时,Oracle会自动重新编译视图。

  ALTER VIEW... COMPILE 

删除视图

      当视图不再需要时,用户可以执行DROP VIEW语句删除视图。用户可以直接删除其自身模式中的视图,但如果要删除其它用户模式中的视图,要求该用户必须具有DROP ANY VIEW 系统权限。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值