关于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视图小结的更多相关文章

  1. ORACLE审计小结

    ORACLE审计小结 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_ ...

  2. Oracle视图分类及各种操作讲解(超级好文)

    目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1  创建简单视图   3.2  创建连接视图  3.2.1 连接视图定义  3.2.2 创建连接视图  3.2.3 ...

  3. Oracle -----视图

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  4. Oracle视图详解

    转载自:http://blog.itpub.net/29785807/viewspace-1270120/ 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本 ...

  5. oracle视图总结

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  6. oracle视图总结(转)

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  7. ORACLE 视图的 with check option

    ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...

  8. ORACLE视图添加备注

    ORACLE视图添加备注 版权声明:本文为博主原创文章,未经博主允许不得转载. create or replace view oes_material_series_ref as select t.p ...

  9. Oracle 视图 (待更新, 缓存)

    参考: 视图.索引.存储过程优缺点: http://www.cnblogs.com/SanMaoSpace/p/3147059.html oracle视图总结(转):http://tianwei013 ...

随机推荐

  1. 更新Appium中的WebDriverAgent

    到WebDriverAgent下载最新版本的WebDriverAgent 进入下载后的WebDriverAgent文件 执行 ./Scripts/bootstrap.sh 直接用Xcode打开WebD ...

  2. View 动画 Animation 运行原理解析

    这次想来梳理一下 View 动画也就是补间动画(ScaleAnimation, AlphaAnimation, TranslationAnimation...)这些动画运行的流程解析.内容并不会去分析 ...

  3. koa2教程(一)-快速开始

    来自Koa官网对于Koa的简介: koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架. 使用 koa 编写 web 应用,通过组合不同的 async ...

  4. 解决Fiddler出现无线弹框 "creation of the root certificate was not successful”的问题

    打开Fiddler 访问:http://localhost:8888/ 安装证书,如果提示没有证书(8888是你在Tool->Fiddler Option->Connections设置的F ...

  5. Erlang epmd官方文档中文翻译

    本文含epmd简介及官方文档之翻译,文档地址 http://erlang.org/doc/man/epmd.html翻译时的版本 R19.1 中英文水平都不咋地,不通顺处海涵,就酱. 简介 Erlan ...

  6. Hexo next博客添加折叠块功能添加折叠代码块

    前言 有大段的东西想要放上去,但又不想占据大量的位置.折叠是最好的选择.下面在Hexo的主题上定制添加折叠功能. 本文基于Hexo Next的主题修改.其他主题应该也差不多. 在main.js中添加折 ...

  7. win10/win7下不通过winmanager整合NERDTree和Tagbar的gVim8.0配置

    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 注:图片来自作者公众号--"iKM_2018",亦即& ...

  8. Jfinal控制器源码解读

    本文对Jfinal的控制器源码做以下分析. PS:控制器是所有请求跳转的基础,本文就Jfinal控制器的继承关系及初始化的方法做出解释说明. 啰嗦下:所有的请求和响应都是都是通过web容器封装,我们主 ...

  9. js面向对象学习笔记(四):对象的混合写法

    //对象的混合写法//1.构造函数function 构造函数() { this.属性}构造函数.原型.方法 = function () {};//调用var 对象1 = new 构造函数();对象1. ...

  10. CTF---Web入门第八题 Guess Next Session

    Guess Next Session分值:10 来源: iFurySt 难度:易 参与人数:3870人 Get Flag:1672人 答题人数:1690人 解题通过率:99% 写个算法没准就算出来了, ...