oracle select with read only,oracle创建视图的一些总结:包括with check option和with read only...
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...相关推荐
- oracle select into 多个,Oracle SELECT INTO 和 INSERT INTO SELECT 两种表复制语句详解
在Oracle中select into from不可以使用,用create tableselect代替该功能!!!在Sql Server中可以正常使用.1.INSERT INTOSELECT语句 语句 ...
- Oracle视图添加约束,Oracle创建视图的语法
Oracle创建视图的语法 导读:就爱阅读网友为大家分享了多篇关于 "oracle 创建序列语法" 资料,内容精辟独到,非常感谢网友的分享,希望从中能找到对您有所帮助的内容. 相关 ...
- oracle如何创建视图
视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分. 2.用户通过简单的查询可以从复杂查询中得到结果. 3.维护数据的独立性,试图可从多个表检索数据. 4.对于相同的数据可产 ...
- oracle创建视图与生成唯一编号
Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 一.视图 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表. 视图 ...
- oracle 创建视图用 with check option 子句详解
oracle的视图是一个很有用的工具,在很多应用中的应用到. 在oracle视图中,对于简单视图,oracle 允许进行 dml 操作 ,这就是说明如果我们在一个表上创建了一个视图,前提是没有限制对它 ...
- Oracle数据库如何创建视图【示例演示】
视图:是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表,Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 视图是存储在数 ...
- oracle 数据字典画报,收藏!Oracle常用数据字典表、视图的总结,都在这里了
5.视图查看视图的名称SQL>select view_name from user_views;查看创建视图的 select 语句SQL>set view_name,text_length ...
- oracle 统计信息字典表,Oracle数据字典表查询
/*显示当前用户*/ show user 在sql plus中可用,在pl sql中不可用 /*查看所有用户名*/selectusername,user_id,createdfromall_users ...
- Oracle数据导入要多久,oracle数据库备份导入要注意的几个问题
oracle数据库备份导入要注意的几个问题 (1)oracle数据库备份的导入对数据库的版本有要求,也即源数据库(导出产生备份的数据库)的版本要和目标数据库(导入数据库)的版本一致,否则可能导致导入失 ...
最新文章
- windows下live555+rtsp+ffmpeg媒体源,nginx+rtmp转发服务器,vlc播放rtmp媒体流
- 这些实验好习惯科研小白一定要先养成!
- Hadoop入门(八)Mapreduce高级shuffle之Partitioner
- 一个会定时执行的方法
- 未能初始化appscan应用程序现在将关闭_企业区块链应用程序的两个关键问题
- 网易北京:全员核酸检测为阴性 园区环境检测为阴性
- leetcode127. Word Ladder
- python编程教学视频-【科研资源03】最全Python编程全套系统视频学习教程
- H5 WebSocket java服务端push
- Javascript特效:导航栏楼层效果
- 设计师学python还是processing_人人都能学会的processing创意编程能实现什么?
- python数字字母识别_字符图像识别——数字字母混合
- mis是商科还是计算机专业,MIS是什么?管理信息系统MIS和计算机科学CS有什么区别?...
- find -regex
- [android基础知识] 之十三: Runtime.getRuntime()
- 网络诊断工具之—IP连接测试ping命令
- 微信模板消息 群发 突破 4条限制
- Python中除法取整以及求余数(模)的方式
- yii2.0 中文手册 php,Yii2.0 高级版开发指南
- 初始化 Microsoft Visual SourceSafe 源代码管理提供程序时失败问题处理