zoukankan      html  css  js  c++  java
  • Oracle数据库的视图

    使用视图的优点:
        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 表名(列名);

     

  • 相关阅读:
    共享纸巾更换主板代码分析 共享纸巾主板更换后的对接代码
    Python Django Ajax 传递列表数据
    Python Django migrate 报错解决办法
    Python 创建字典的多种方式
    Python 两个list合并成一个字典
    Python 正则 re.sub替换
    python Django Ajax基础
    Python Django 获取表单数据的三种方式
    python Django html 模板循环条件
    Python Django ORM 字段类型、参数、外键操作
  • 原文地址:https://www.cnblogs.com/lijingbo/p/7092040.html
Copyright © 2011-2022 走看看