Oracle中的视图

1- 什么是视图

视图是一个虚拟表

视图是由sql查询语句产生的

视图真实存在 但是不存储数据

视图中的数据 只是对 基表(源数据表) 中的数据的引用

总的来说 视图可以简化数据

用户,订单,物流 三个表进行关联 吧很复杂的sql查询语句存储成一个视图 

获取结果就可以直接查询视图 不用再重复的进行sql查询

并且提供一定的安全性 以及 向后兼容性

视图你可以理解为   从原来的很多表中 select出你需要的几个字段信息进行查询 并且形成视图

无需重复查询,通过原表select出视图 。并且可以通过原表同步数据到t2表格

如果删除原表 则视图也无法查询

语法格式:

create [or replace] [force] view view_name
as 
subquery
[with check option ]
[with read only]

  • or replace

    • 替换已存在的视图

  • force

    • 强制创建视图(可以给不存在的数据表创建视图)

  • with check option

    • 不能修改视图形成字段的数据

  • with read only

    • 只读不能进行数据修改

with check option的作用

  • 简单视图 中的任意数据都可以进行任意操作

  • with check option 只要不影响我们的非视图数据就可以操作

with read only

视图不能进行任何的dml操作(增删改)

or replace

替换原有的视图

force

  • 作用

    • 创建一个没有源数据表的视图

  • 删除视图

    • drop view 视图名

2-复杂视图

  • 定义

    • 多表 聚合函数 子查询 等

  • 注意

    • 不要dml操作 很容易出错

3-物化视图

  • 什么是物化视图

    • 视图 是不会存储数据的

    • 物化视图 是真实存储数据

  • 为什么要物化视图

    • 加快查询速度

    • 数据量变大 视图查询速度比较慢

    • 物化视图 查询速度比较快

    • meger on read

  • meger on write  <<加快数据同步>>

语法格式

create materialized view view_name
[build immediate  |  build deferred ]
refresh [fast|complete|force]
[
on  [commit  |  demand ]  |  start  with  (start_time)  next
(next_time)
]
as
subquery

  • materialized view

    • 物化视图

  • build immediate(默认)

    • 创建视图后 立马生成数据

  • build deferred

    • 创建视图后 等待刷新生成数据

  • refresh : 数据刷新

    • fast : 增量更新

    • complete : 全量更新

    • force (默认方式)

      • 尝试使用fast更新

      • 再去使用全量更新

    • on (确定更新时机)

      • commit : 基表只要commit就会开始更新

      • demand : 手动方式(刷新) (默认的)

物化视图的增量更新

增量更新语法

  • 增量更新的物化视图

    • 创建基表的物化视图日志

    • 产生物化视图的 sql 必须包含rowid

创建日志

创建日志
create materialized view log on T_ADDRESS with rowid;
物化视图的sql必须包含rowid
select
        T_ADDRESS.ROWID as addr_rowid,
        T_AREA.ROWID as area_rowid,
        T_ADDRESS.ID, T_ADDRESS.NAME, T_AREA.NAME area
from T_ADDRESS
inner join T_AREA on T_ADDRESS.AREAID = T_AREA.ID;

4-序列

什么是序列

  • 一个可以产生 唯一数字

    • 设置起始位置

    • 设置增长数量

    • 最大值

    • 最小值

    • 循环

序列语法格式

CREATE SEQUENCE sequence  //创建序列名称

[INCREMENT BY n]  //递增的序列值是 n 如果 n 是正数就递增,如果是负数就递减 默认是 1

[START WITH n]     //开始的值,递增默认是 minvalue 递减是 maxvalue

[{MAXVALUE n | NOMAXVALUE}] //最大值
[{MINVALUE n | NOMINVALUE}] //最小值

[{CYCLE | NOCYCLE}] //CYCLE和NOCYCLE 表示当序列的值达到限制值后是否循环。CYCLE代表循环即到达例如最大值后重新从最小值开始

[{CACHE n | NOCACHE}];//定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。

注意点

  • 起始值是不能小于最小值的

  • 如果没有循环 能取到值 是不能超过最大值的

  • 如果有循环 起始从最小值开始

  • cache默认是为20的 循环值是要大于这个值的

5-同义词

  • 对象的别名

    • 对象 : 表 序列 视图

  • 作用

    • 私有

      • 只能是创建这个同义词的用户使用

    • 共有

      • 所有的用户都可以使用

    • 给对象起别名 设置为公共的

      • 所有人都可以用这个同义词 所有人都不知道原始表名 表的用户

语法格式
 

create [public] SYNONYM synooym for object;

  • 不加public就是私有的

  • 加public就是共有的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/638308.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

狗都不学系列——虚拟机的基本使用

前言 虚拟机&#xff08;Virtual Machine&#xff09;指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。 简单来讲就是我们可以通过虚拟机来安装各种不同的操作系统进行体验。 这次主…

【Flutter】多语言方案一:flutter_localizations 与 GetX 配合版

介绍 多语言方案&#xff1a;flutter_localizations 与 GetX 配合版&#xff0c;好处&#xff1a;命令行生成多语言字符串的引用常量类&#xff0c;缺点&#xff1a;切换语言以后&#xff0c;主界面需要手动触发setState&#xff0c;重绘将最新的Locale数据设置给GetMaterialA…

指针的使用以及运算、二级指针、造成野指针的原因以及解决方法、指针和数组相互使用

第七章&#xff0c;指针的学习 目录 前言 一、指针的概念 二、指针的类型 三、野指针 四、指针的运算 五、指针和数组的关系以及使用 六、指针数组 七、二级指针 总结 前言 这章主要学习的是指针方面的知识&#xff0c;这节只是简单了解一下指针&#xff0c;并不会深…

卷积神经网络(CNN)基础

目录 卷积神经网络介绍 卷积神经网络原理 卷积层&#xff1a;通过在原始图片上平移来提取特征 激活层&#xff1a;增加非线性分割能力 池化层polling&#xff08;下采样层&#xff09;&#xff1a;减少学习参数&#xff0c;去掉不重要的样本&#xff0c;降低网络的复杂度 卷…

java多线程-并发和并行

进程 并发 进程中的线程是由CPU进行调度的&#xff0c;但是CPU能够处理的进程数量有限为了保证所有的线程都在运行&#xff0c;CPU会快速切换&#xff0c;给外界的感觉就是所有的线程都在运行&#xff0c;这就是并发。 并行

钟薛高创始人称卖红薯也把债还上:网友,您可千万别……

网红雪糕品牌钟薛高&#xff0c;是真的网红属性强到让所有消费品牌羡慕。 纵使跌落神坛、纵使站在「破产」边缘&#xff0c;依然话题感满满&#xff0c;隔段时间&#xff0c;总能上一个热搜。 比如欠薪上热搜、产品降价上热搜、甚至官网微博微信停更&#xff0c;也得上个热搜&…

【数学建模】虫子追击问题(仿真)

已知 有四个虫子,分别是 A , B , C , D A,B,C,D A,B,C,D A , B , C , D A,B,C,D A,B,C,D分别在 ( 0 , 0 ) , ( 0 , 1 ) , ( 1 , 1 ) , ( 1 , 0 ) (0,0),(0,1),(1,1),(1,0) (0,0),(0,1),(1,1),(1,0)四个虫子A追B&#xff0c;B追C&#xff0c;C追D&#xff0c;D追A四个速度相同 …

《计算思维导论》笔记:《第10章 数据化思维-数据聚集与管理》计算思维第17讲-从表的管理看数据库

《大学计算机—计算思维导论》&#xff08;战德臣 哈尔滨工业大学&#xff09; 《计算思维第17讲-从表的管理看数据库----结构化与非结构化数据管理》 一、引言 今天我们从表的管理看数据库&#xff0c;给大家讲一下结构化与非结构化数据管理的思维。 二、为什么需要数据库–工…

机器学习(二)之监督学习

前言&#xff1a; 上一节大概讲解了几种学习方式&#xff0c;下面几张就具体来讲讲监督学习的几种算法。 以下示例中和都是权重的意思&#xff01;&#xff01;&#xff01; 注&#xff1a;本文如有错误之处&#xff0c;还请读者指出&#xff0c;欢迎评论区探讨&#xff01; 1…

Matlab进阶绘图第51期—带填充等高线的三维特征渲染散点图

带填充等高线的三维特征渲染散点图是填充等高线图与特征渲染三维散点图的组合。 其中&#xff0c;填充等高线图与特征渲染的三维散点图的颜色用于表示同一个特征。 由于填充等高线图无遮挡但不直观&#xff0c;特征渲染的三维散点图直观但有遮挡&#xff0c;而将二者组合&…

Python | Leetcode Python题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; class Solution:def isMatch(self, s: str, p: str) -> bool:def allStars(st: str, left: int, right: int) -> bool:return all(st[i] * for i in range(left, right))def charMatch(u: str, v: str) -> bool:return u v or v…

【Hadoop】- MapReduce YARN 初体验[9]

目录 提交MapReduce程序至YARN运行 1、提交wordcount示例程序 1.1、先准备words.txt文件上传到hdfs&#xff0c;文件内容如下&#xff1a; 1.2、在hdfs中创建两个文件夹&#xff0c;分别为/input、/output 1.3、将创建好的words.txt文件上传到hdfs中/input 1.4、提交MapR…