天天看點

oracle視圖能否編輯資料,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

鍵保留表是了解連接配接視圖修改限制的一個基本概念。該表的主鍵列全部顯示在視

圖中,并且它們的值在視圖中都是唯一且非空的。也就是說,表的鍵值在一個連

接視圖中也是鍵值,那麼就稱這個表為鍵保留表。

物化視圖:

建立物化視圖文法、

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