Oracle資料庫的視圖

來源:互聯網
上載者:User

標籤:佔用   地址   唯一索引   res   ddr   eve   rac   refresh   定製   

使用視圖的優點:
    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資料庫的視圖

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.