使用视图的优点:
    1.简化数据操作:视图可以简化用户处理数据的方式。
    2.着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。
    3.视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。

4.提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。

创建或修改视图语法

CREATE [OR REPLACE] [FORCE] VIEW view_name
        AS subquery
        [WITH CHECK OPTION ]
        [WITH READ ONLY]

OR REPLACE :若所创建的试图已经存在,ORACLE 自动重建该视图;
    FORCE :不管基表是否存在 ORACLE 都会自动创建该视图;
    subquery :一条完整的 SELECT 语句,可以在该语句中定义别名;
    WITH CHECK OPTION :插入或修改的数据行必须满足视图定义的约束;
    WITH READ ONLY :该视图上不能进行任何 DML 操作。

删除视图语法
    DROP VIEW view_name

   键保留表是理解连接视图修改限制的一个基本概念。该表的主键列全部显示在视
    图中,并且它们的值在视图中都是唯一且非空的。也就是说,表的键值在一个连
    接视图中也是键值,那么就称这个表为键保留表。

物化视图:

    创建物化视图语法、

        CREATE METERIALIZED VIEW view_name
        [BUILD IMMEDIATE | BUILD DEFERRED ]
        REFRESH  [FAST|COMPLETE|FORCE]
        [  ON [COMMIT |DEMAND ] | START WITH (start_time) NEXT
        (next_time) ]  AS
         subquery

BUILD IMMEDIATE 是在创建物化视图的时候就生成数据
        BUILD DEFERRED 则在创建时不生成数据,以后根据需要再生成数据。
        默认为 BUILD IMMEDIATE。
        刷新(REFRESH):指当基表发生了 DML 操作后,物化视图何时采用哪种
        方式和基表进行同步。
        REFRESH 后跟着指定的刷新方法有三种:FAST、COMPLETE、FORCE。

FAST 刷新采用增量刷新,只刷新自上次刷新以后进行的修改。

注意:创建增量刷新的物化视图,必须

                create materialized view log on t_address with rowid;
                create materialized view log on t_area with rowid

                1. 创建物化视图中涉及表的物化视图日志。
                2. 在查询语句中,必须包含所有表的 rowid ( 以 rowid 方式建立物化视图日志 )

COMPLETE 刷新对整 个物化视图进行完全的刷新。

如果选择 FORCE 方式,则 Oracle 在刷新时会去判 断是否可以进行快速刷新,

如果可以则采用 FAST 方式,否则采用 COMPLETE 的方式。

   FORCE 是默认的方式。
        刷新的模式有两种:ON DEMAND 和 ON COMMIT。ON DEMAND 指需要
        手动刷新物化视图(默认)。ON COMMIT 指在基表发生 COMMIT 操作时自动
        刷新

        手动刷新物化视图代码:

                begin
                        DBMS_MVIEW.refresh('物化视图表名称','C');
                end;
                或者通过下面的命令手动刷新物化视图:
                 EXEC DBMS_MVIEW.refresh('物化视图表名称','C');
                 注意:此语句需要在命令窗口中执行。

                    C:代表 complete

序列:

        序列是 ORACLE 提供的用于产生一系列唯一数字的数据库对象。

    创建序列语法:
        create sequence 序列名称
        通过序列的伪列来访问序列的值
        NEXTVAL 返回序列的下一个值
        CURRVAL 返回序列的当前值

        提取下一个值
       select 序列名称.nextval from dual
       提取当前值
        select 序列名称.currval from dual

创建复杂序列

        CREATE SEQUENCE sequence //创建序列名称
        [INCREMENT BY n] //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是 1
        [START WITH n] //开始的值,递增默认是 minvalue 递减是 maxvalue
        [{MAXVALUE n | NOMAXVALUE}] //最大值
        [{MINVALUE n | NOMINVALUE}] //最小值
        [{CYCLE | NOCYCLE}] //循环/不循环
        [{CACHE n | NOCACHE}];//分配并存入到内存中

删除序列:
       
DROP SEQUENCE 序列名称;

索引:

        索引是用于加速数据存取的数据对象。合理的使用索引可以大大降低 i/o 次
        数,从而提高数据访问性能。
        索引是需要占据存储空间的,也可以理解为是一种特殊的数据。形式类似于
        下图的一棵“树”,而树的节点存储的就是每条记录的物理地址,也就是我们提
        到的伪列(ROWID)

普通索引

            create index 索引名称 on 表名(列名);

唯一索引:

            如果我们需要在某个表某个列创建索引,而这列的值是不会重复的。这是我们可
            以创建唯一索引。

            语法

            create unique index 索引名称 on 表名(列名);

复合索引:

            语法:
            create index 索引名称 on 表名(列名,列名.....);

反向键索引:

            应用场景:当某个字段的值为连续增长的值,如果构建标准索引,会形成歪脖子
            树。这样会增加查询的层数,性能会下降。建立反向键索引,可以使索引的值变
            得不规则,从而使索引树能够均匀分布。

            语法:
            create index 索引名称 on 表名(列名) reverse;

位图索引:

            使用场景:位图索引适合创建在低基数列上
            位图索引不直接存储 ROWID,而是存储字节位到 ROWID 的映射
            优点:减少响应时间,节省空间占用
            语法:
            create bitmap index 索引名称 on 表名(列名);

 

Oracle数据库的视图的更多相关文章

  1. Oracle数据库之视图与索引

    Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...

  2. Oracle数据库学习 视图、序列及存储过程

    视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...

  3. ORACLE数据库编程

    第一章 Oracle数据库基本概念 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为 核心的一组软件产品,是目前最流行的客户/服务器(Client/Server, ...

  4. 关于oracle数据库 跨表查询建立 视图的方法

    工作中很多时候都会遇到需要将两个不同的表空间甚至数据库的表进行联合查询或者建立视图的情况. 不同的表空间查询我们可以通过在将要查询的表前面加上 表空间的对应的用户名来实现,如有两个表空间分别对应两个用 ...

  5. Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  6. oracle数据库表约束、视图、索引—该记录为本人以前微博的文章

    一.Oracle 数据库常用操作续关于创建表时创建约束1.创建表的时候增加约束----约束是定义表中的数据应该遵循的规则或者满足的条件----约束是建立在列上的,让某一列或者某几列数据之间有约束--- ...

  7. Oracle数据库对象(表空间/同义词/序列/视图/索引)

    数据库对象 Oracle数据库对象: 数据库对象是数据库的组成部分,常常用 CREATE 命令进行创建,可以使用 ALTER 命令修改,用 DROP 执行删除操作. 种类: (1)表空间:所有的数据对 ...

  8. Oracle数据库入门——如何根据物化视图日志快速刷新物化视图

    Oracle物化视图的快速刷新机制是通过物化视图日志完成的.Oracle如何通过一个物化视图日志就可以支持多个物化视图的快速刷新呢,本文简单的描述一下刷新的原理. 首先,看一下物化视图的结构:SQL& ...

  9. Oracle数据库入门——物化视图语法

    一.Oracle物化视图语法 create materialized view [view_name]refresh [fast|complete|force][on [commit|demand] ...

随机推荐

  1. 第09组 Beta冲刺(2/4)

    队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...

  2. SpringBoot dev-tools vjtools dozer热启动类加载器不相同问题

    最近使用唯品会的vjtools的BeanMapper进行对象的深度克隆转换DTO/VO这种操作,Spring Boot的dev-tools热启动,需要把vjtools和dozer包都放到spring- ...

  3. Nim游戏博弈(收集完全版)

    Nim游戏证明参见: 刘汝佳训练指南P135-写的很酷! 知乎上SimonS关于Nim博弈的回答! Nim游戏的概述: 还记得这个游戏吗? 给出n列珍珠,两人轮流取珍珠,每次在某一列中取至少1颗珍珠, ...

  4. 用SC命令 添加或删除windows服务提示OpenSCManager 失败5

    在安装命令行中安装  windowsOpenSCManager 失败5  的错误,原因是当前用户的权限不足,需要做的是在注册表 HKEY_LOCAL_MACHINE\Software\Microsof ...

  5. mac php7.3 安装扩展

    进入到PHP的目录 /bin/pecl install mongodb 其他扩展同理. 另外: Mac brew 安装的php的启动和停止: brew services stop phpbrew se ...

  6. JVM常用命令和性能调优建议

      一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程 ...

  7. Pycharm连接远程服务器并进行代码上传+远程调试

    前提:需要有一个远程服务器,知道他的ip.port.user.password 一.连接远程服务器 进入配置页面 Pycharm菜单栏,如下图所示,依次点击 Tools -> Deploymen ...

  8. 查看已安装dpkg包的poinst安装文件

    /var/lib/dpkg/info |grep printburn(软件名称) /var/lib/dpkg/info 文件都在这个目录下面poinst, preinst,prerm等

  9. [LeetCode] 303. Range Sum Query - Immutable 区域和检索 - 不可变

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  10. InfluxDB入门

    InfluxDB是一个用于存储和分析时间序列数据的开源数据库 时序数据是基于时间的一系列的数据 时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入.持久化.多纬度的聚合查询等基本功能 ...