关于oracle视图小结
关于oracle的视图小记:
一.
视图:就是对SQL语句的封装,使用起来更方便.不易出错
优点:
1.简化数据操作:视图可以简化用户处理数据的方式
2.着重于特定数据:不必要的数据或敏感的数据可以
不出现在视图中(完成数据的筛选显示)
3.安全性高:视图提供了一个简单而有有效的安全机制,可以定制不同用户
对数据的访问权限
4.向后兼容性:视图使用户在表的架构更改时为表创建向后兼容接口
二视图分两种:
注意:
1.在创建与使用带检查约束是的视图时,
with check option与with read only 不能共存
2.with check option 作用范围包括(单个值,枚举,范围)
3.with check option与with read only区别:
with check option :只约束当前视图的条件字段不能被改变
with read only :约束的所有字段都不能被改变
第一种:简单的非物化的视图:
就是纯粹的对SQL语句进行封装
创建与修改视图的语法:
create [or replace] [force] view view_name as SQL语句
[with check option]
[with read only]
注;[]内是可选项
1.or replace: 有就同名的视图,就替换(把原先的删除在新建一个),没有就直接新建一个视图
2.force: 不管基表是否存在ORACLE都会自动创建该视图(为视图提供了向后兼容
的接口,可以在没有某表时也能成功创建视图)
3.subquery: 一条完整的select 语句,可以在该语句中定义别名
4.with check option: 插入或修改的数据必须满足视图定义的约束
5.with read only: 该视图上不能进行任何DML操作
注:
1>.4.5不能共存
2>.:其实视图的修改就是将原来的视图删除再重新建一个名字一样的
新视图
删除视图:
drop view 视图名;
第二种:物化视图
在内存中有存储空间,当效率要比去查表要快,相当于在内存中新建了一
个表,是牺牲了内存去换取效率
创建物化视图的语法:
create meterialized view 视图名字
[build immediate | build deferred]
refresh [fast|complete|force]
[
on [commit | demand] |start with (start_time) next (next_time)
]
sql语句
1.build immediate:是在创建视图的时候就生成数据
2.build deferred:则在创建时不生成数据,以后根据需要在 生成数据
1.2默认是1
3.refresh
1.fast:刷新采用增量刷新,只刷新上次以后进行的修改
2.complete:对整个视图进行完全的刷新
3.force:oracle会自动判断是用fast还是complete
1.2.3默认3
4.on [commit | demand]:刷新模式:
demand:只需要手动刷新物化视图(默认)
commit :在基表发生改变时自动刷新
start with (start_time) next (next_time):
start_time:开始刷新的时间
next_time:每次刷新时间的间隔
删除物化视图:
drop meterialized view 物化视图名字
物化视图的分类:
1.创建时生成数据
2.创建时不生成数据
3.自动刷新数据
4.手动刷新数据
5.增量刷新
注意:创建增量刷新视图前:要先为视图中用到的表创建物化视图日志
例:
--创建增量刷新的物化视图
--首先要创建物化视图日志
create materialized view log on dept with rowid
create materialized view log on emp with rowid
--创建物化视图
create materialized view view_name
refresh
on commit
as
select e.* from emp e,dept d where d.deptno=e.deptno
物化视图日志中的字段含义:
snaptime$$:用于表示刷新时间
dmltype$$:用于表示DML操作类型,
I表示insert ,D表示delete
U表示update
old_new$$:用于表示这个值是新值还是旧值
N(ew)表示新值,O(ld)表示旧值
U表示update操作
change_vector$$:表示修改矢量,用来表示被修改的是哪个或哪几个字段,此列是raw类型
其实oracle采用的方式就是用每个bit位去映射一个列插入操作显示为:fe,
删除显示为:oo 更新操作根据更新的字段的位置而显示不同的值.
当我们手动刷新物化视图后,物化视图日志被清空,物化图更新
关于oracle视图小结的更多相关文章
- ORACLE审计小结
ORACLE审计小结 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_ ...
- Oracle视图分类及各种操作讲解(超级好文)
目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1 创建简单视图 3.2 创建连接视图 3.2.1 连接视图定义 3.2.2 创建连接视图 3.2.3 ...
- Oracle -----视图
视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...
- Oracle视图详解
转载自:http://blog.itpub.net/29785807/viewspace-1270120/ 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本 ...
- oracle视图总结
视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...
- oracle视图总结(转)
视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...
- ORACLE 视图的 with check option
ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...
- ORACLE视图添加备注
ORACLE视图添加备注 版权声明:本文为博主原创文章,未经博主允许不得转载. create or replace view oes_material_series_ref as select t.p ...
- Oracle 视图 (待更新, 缓存)
参考: 视图.索引.存储过程优缺点: http://www.cnblogs.com/SanMaoSpace/p/3147059.html oracle视图总结(转):http://tianwei013 ...
随机推荐
- python3之迭代器&生成器
1.迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式.. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不 ...
- HTML知识点之表示强调的主要元素
<h1>~<h6> 在HTML中,标题(Heading)元素共有6个级别的标签:<h1>~<h6>.它们都是块级元素.标题数字越小,字体就会越大,标题的 ...
- js 拼接table 的方法
<html> <head> <title>test page</title> <script type='text/javascript'> ...
- Windows下安装Selenium
安装python,建议在官网下载python3以上的版本 安装easy_install,找度娘 安装selenium,在命令行窗口下输入:pip install -U selenium 下载chrom ...
- [已解决]pip安装包时报错:Read time out
有一些包在源在国外,因为某些原因,网络并不是很好,常常会发生Read time out安装失败的问题. 一般解决方法有:修改国内的安装源,如果能够获取只是慢的话,还有中比较懒的方法就是增加读取的时间. ...
- 如何删除chrome地址栏里面曾经输错的地址
在chrome浏览器的地址栏输入你想删除的网址的部分字幕,比如,在地址栏输入form,然后用键盘上的方向键定位到你想删除的那个错误的地址,如下图所示 然后在键盘上按 shift+del 组合键将其 ...
- Elixir的Phoenix框架:请求处理之道
本文基于Phoenix1.3,但请求的处理流程跟1.2基本一致,只是模块的命名和目录结构有所差异. 简单介绍,phoenix是一个网站框架,本质就是http请求处理.这篇文章主要就是讲一个请求,在结果 ...
- NPOI操作Excel 踩坑记
1 读取Excel并修改单元格 a.一定不能一边读数据,一边修改单元格,否则读出来的数据可能不准 b.注意写文件的模式,不然修改后的文件,打开会报错. c.清空单元格的数据,可以调用SetCellTy ...
- Gym 101612C Consonant Fencity
原题传送门 题意:给定一个只含小写字母的字符串,假设aeiouyw为元音字母,现在要把一些字母变为大写,要求相同字母的大小写必须相同,统计变化后的字符串中有多少对相邻.同为辅音字母且大小写不一样的字符 ...
- hackerrank Diameter Minimization
瞬间移动 题意:构造一个所有点出度都为m的有向图最小化图的直径. 显然转成m进制来做就好了. #include<queue> #include<cstdio> #include ...