Oracle12C--视图(十九)

本文详细介绍了Oracle12C中视图的使用,包括视图的单表和多表更新、删除操作的影响,以及如何通过触发器进行多表更新。还讨论了视图的作用,如简化复杂SQL、限制数据访问。此外,讲解了创建、替换视图的语法,以及with read only和with check option子句的应用,强调了这些特性在保护和管理数据库数据方面的重要性。
摘要由CSDN通过智能技术生成

知识点的梳理:

  • 使用视图进行单表更新时,会影响视图中指定的数据。而删除操作也会影响原始表的数据;
    • 视图在进行多表更新操作时,因涉及到多表,所以都会出现异常,只有删除操作可以正常执行。同样会影响原始表的数据;
    • 可以通过触发器,对视图进行多表的更新操作:
  • 删除视图语法:drop view视图名称;
  • 视图本身不属于真实数据,所以在创建视图时,利用with read only 设置为只读视图;

      

  • 为什么需要视图
    • 视图可以实现对复杂sql语句的封装;
    • 限制数据访问;
  • oracle实体 -- 视图
    • 视图是Oracle数据库对象 , 可以把视图当做一张数据库 虚拟表对待 , 数据库只存放视图的定义,而不存放视图对应的数据。这些数据仍然在原来的实体表中。所以实体表中的数据发生变化,视图中查询出的数据也随之改变;
  • 创建视图
    • 语法:

create [force | noforce] [or replace] view视图名称 [(别名1,别名2,.....)]
as
子查询;

语法参数解析:
force:表示要创建视图的表,不存在也可以创建视图;
noforce(默认)表示要创建视图的表必须存在,否则无法创建;
or replace:表示视图的替换。如果创建的视图不存在,则创建新的视图;如果视图已经存在,则将其替换;

示例:如果出现权限不足的问题看这里:创建视图时出现权限不足

CREATE VIEW v_myview

AS

SELECT * FROM emp WHERE sal>2000 ;

示例:查看视图是否创建成功
select * from tab where tabtype = 'VIEW'; --VIEW必须是大写

示例2:第2种查看视图的方式,通过user_view数据字典
SELECT view_name,text_length,text FROM user_views ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值