使用視圖的優點:
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
鍵保留表是了解連接配接視圖修改限制的一個基本概念。該表的主鍵列全部顯示在視
圖中,并且它們的值在視圖中都是唯一且非空的。也就是說,表的鍵值在一個連
接視圖中也是鍵值,那麼就稱這個表為鍵保留表。
物化視圖:
建立物化視圖文法、
CREATEMETERIALIZED 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資料庫的視圖
标簽:占用 位址 唯一索引 res ddr eve rac refresh 定制
本條技術文章來源于網際網路,如果無意侵犯您的權益請點選此處回報版權投訴 本文系統來源:http://www.cnblogs.com/lijingbo/p/7092040.html