Oracle-31-对视图DML操作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle-31-对视图DML操作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含963字,纯文字阅读大概需要2分钟。
内容图文
一、对视图进行DML操作
1.创建一个视图v_person
create or replace noforceview v_person
as select *from person where id between 1003 and 1007;
2.向视图v_person中进行insert操作
insert into v_person (id,name) values(1010,’J’)
【注意】对视图进行 DML 操作时候。仅仅能对简单视图运行 DML 操作。复杂视图不支持 DML 操作。因为 v_person 没有使用 with check option 。因此对于子查询检索到的行能够进行增删改查。
例 1:练习对视图(没有with check option)插入数据。
解:当前用户下视图v_stu的数据
视图v_stu的基表是student表,该表当前的数据:
对视图插入新数据:
查询视图发现多了一行:
查询基表发现多了一行:
因此。对视图进行 DML 操作可达到改动基表数据的效果。
例 2:练习对视图(有with check option)插入数据。
解:创建视图并将已存在的视图覆盖。带上with check option:
然后插入例如以下数据:
报错原因是’男’不满足视图中的where条件。视图有with check option是对新数据进行校验。假设满足where条件,则同意插入,否则不同意。
同理,例如以下报错是由于视图在创建的时候要求仅仅读。即with read only:
例 3:练习两张基表生成视图且验证是否能在该视图中插入新数据。
解:当前的sc表:
当前的course表:
基于sc表和course表创建视图v_2,注意下图SQL命令:
向视图中插入新数据:
报错原因是该视图是基于两张表创建的。所以无法插入新数据。
【注意】
下面三种情况无法对视图做 DML 操作:
1. 带有 with check option 的视图,假设插入数据不满足where条件则无法做DML操作。如例2;
2. 带有 with read only 的视图。如例2;
3. 基于两张及两张以上基表的视图,比方student,course,sc表生成一个视图,那么这个视图无法做DML操作如例3。
内容总结
以上是互联网集市为您收集整理的Oracle-31-对视图DML操作全部内容,希望文章能够帮你解决Oracle-31-对视图DML操作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。