oracle创建视图的一些总结:

create [or replace][force | noforce] view [user.] viewName

(column [,column2]...)

as query

[with check option[Constraint constraint]]

[with read only]

or replace 表示同名视图存则使用新视图替代已有视图

force 强制创建视图考虑基表否存否具有使用基表数据权限

noforce 只有基表存且具有权限才创建视图

user 表示创建视图用户名

viewName 表示要数据库上创建视图名称

column 指定视图列名

query 表示生成视图select语句

with check option 指定强制检查通过视图修改数据操作

constraint 表示指定约束名称

with read only 表示创建视图只能检索数据能修改数据

首先对于with check option的解释:

当用户创建了一个视图,如下

create or replace view MyView as

select *

from J where jno in('j1','j2','j3')

with check option constraint check_option;

在update和insert语句中如果jno没有包含('j1','j2','j3')里的数据查询条件,则会报错;对于select和delete语句来说,with check option这个检查约束不受影响。

例如:

update myview set jname = 'xxxxxx' where jno = 'j1';

这个是可以的。

原表的数据如下:

select * from j order by jno;

视图的数据如下:

select * from myview;

错误示例:

update myview set jno = 'j12' where jno = 'j1';

会报出如下错误:

insert into myview values('j4','造船厂','上海',36.00);

同样会报出一样的约束受限的错误:

原因是:

myview视图中没有jno='j4'的数据,因此不能插入成功。

然后对with read only的解释:

create or replace view MYVIEW as

select *

from J where jno in ('j1','j2','j3')

with read only ;

使用了with read only,就表示这是个只读的view,不能进行增删改操作,只能进行查操作。

举例说明:

update myview set jname = 'XXXXXXXXXX' where jno = 'j1';

执行这条语句会报视图只读错误:

oracle select with read only,oracle创建视图的一些总结:包括with check option和with read only...相关推荐

  1. oracle select into 多个,Oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解

    在Oracle中select into from不可以使用,用create tableselect代替该功能!!!在Sql Server中可以正常使用.1.INSERT INTOSELECT语句 语句 ...

  2. Oracle视图添加约束,Oracle创建视图的语法

    Oracle创建视图的语法 导读:就爱阅读网友为大家分享了多篇关于 "oracle 创建序列语法" 资料,内容精辟独到,非常感谢网友的分享,希望从中能找到对您有所帮助的内容. 相关 ...

  3. oracle如何创建视图

    视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分. 2.用户通过简单的查询可以从复杂查询中得到结果. 3.维护数据的独立性,试图可从多个表检索数据. 4.对于相同的数据可产 ...

  4. oracle创建视图与生成唯一编号

    Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 一.视图 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表. 视图 ...

  5. oracle 创建视图用 with check option 子句详解

    oracle的视图是一个很有用的工具,在很多应用中的应用到. 在oracle视图中,对于简单视图,oracle 允许进行 dml 操作 ,这就是说明如果我们在一个表上创建了一个视图,前提是没有限制对它 ...

  6. Oracle数据库如何创建视图【示例演示】

    视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 视图是存储在数 ...

  7. oracle 数据字典画报,收藏!Oracle常用数据字典表、视图的总结,都在这里了

    5.视图查看视图的名称SQL>select view_name from user_views;查看创建视图的 select 语句SQL>set view_name,text_length ...

  8. oracle 统计信息字典表,Oracle数据字典表查询

    /*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/selectusername,user_id,createdfromall_users ...

  9. Oracle数据导入要多久,oracle数据库备份导入要注意的几个问题

    oracle数据库备份导入要注意的几个问题 (1)oracle数据库备份的导入对数据库的版本有要求,也即源数据库(导出产生备份的数据库)的版本要和目标数据库(导入数据库)的版本一致,否则可能导致导入失 ...

最新文章

  1. windows下live555+rtsp+ffmpeg媒体源,nginx+rtmp转发服务器,vlc播放rtmp媒体流
  2. 这些实验好习惯科研小白一定要先养成!
  3. Hadoop入门(八)Mapreduce高级shuffle之Partitioner
  4. 一个会定时执行的方法
  5. 未能初始化appscan应用程序现在将关闭_企业区块链应用程序的两个关键问题
  6. 网易北京:全员核酸检测为阴性 园区环境检测为阴性
  7. leetcode127. Word Ladder
  8. python编程教学视频-【科研资源03】最全Python编程全套系统视频学习教程
  9. H5 WebSocket java服务端push
  10. Javascript特效:导航栏楼层效果
  11. 设计师学python还是processing_人人都能学会的processing创意编程能实现什么?
  12. python数字字母识别_字符图像识别——数字字母混合
  13. mis是商科还是计算机专业,MIS是什么?管理信息系统MIS和计算机科学CS有什么区别?...
  14. find -regex
  15. [android基础知识] 之十三: Runtime.getRuntime()
  16. 网络诊断工具之—IP连接测试ping命令
  17. 微信模板消息 群发 突破 4条限制
  18. Python中除法取整以及求余数(模)的方式
  19. yii2.0 中文手册 php,Yii2.0 高级版开发指南
  20. 初始化 Microsoft Visual SourceSafe 源代码管理提供程序时失败问题处理

热门文章

  1. 还能查询2021高考成绩,2021高考查分是0点开始吗
  2. Yahoo天气插件Api
  3. Java基础-并发篇
  4. 银行家算法是什么_什么是银行家算法?
  5. 计算机word考试试题在线,2017年计算机职称考试试题关于Word2003精选题4
  6. 哈希表(模拟散列表 字符串哈希)
  7. 概率论与数理统计知识总结——纵向分布式
  8. Word删除空白页要怎么做?
  9. access查询mysql_什么是access查询
  10. repo upload 时报错