一、視圖
二、同義詞
三、序列
一、視圖
視圖是一條存儲(chǔ)起來(lái)的 SELECT 語(yǔ)句,是數(shù)據(jù)的顯示方式,通過(guò)視圖可以限制用戶訪問(wèn)行、列、或更新表內(nèi)容。
1.1、基表
組成視圖的表稱為基表。在 Oracle 中,不能對(duì)有多個(gè)基表的視圖進(jìn)行更新,此類操作可以利用"替換觸發(fā)器"完成。
1.2、視圖的更新約束
[WITH CHECK OPTION] 選項(xiàng)可以約束 對(duì)視圖更新值 符合 視圖的WHERE條件。
1.3、只讀約束
[WITH READ ONLY] 選項(xiàng)和 視圖查詢語(yǔ)句包含 GROPU BY/SUM 等聚合函數(shù)、DISTINCT 關(guān)鍵字時(shí)視圖不允許更新。
1.4、查看視圖內(nèi)容
DESC user_views;
SELECT text FROM user_views WHERE view_name='V_READ';
一個(gè)視圖的例子:
CREATE OR REPLACE VIEW myview
AS
SELECT * FROM books WHERE price>30
WITH CHECK OPTION;
/* 當(dāng)利用視圖插入一個(gè) price<=30 的數(shù)據(jù)時(shí)會(huì)報(bào)錯(cuò) */
二、同義詞
同義詞是一個(gè)對(duì)象的一個(gè)別名,利用同義詞,可以方便的操縱不同用戶模式下的對(duì)象,簡(jiǎn)化編碼。
使用同義詞之前要確保用戶擁有訪問(wèn)該對(duì)象的權(quán)限。
當(dāng)公有對(duì)象(公有同義詞)和本地對(duì)象具有相同的名稱時(shí),本地對(duì)象優(yōu)先。
● 公有同義詞:DBA建立,所有用戶共同擁有。CREATE PUBLIC SYNONYM ...
● 私有同義詞:用戶建立,使用與該用戶(對(duì)象,可被授權(quán))。
CREATE OR REPLACE SYNONYM dept FOR scott.dept;
SELECT * FROM dept;
DESC user_synonyms;
SELECT synonym_name, table_name, table_owner FROM user_synonyms;
三、序列
序列是用來(lái)生成唯一、連續(xù)的整數(shù)的數(shù)據(jù)庫(kù)對(duì)象。它通常用來(lái)自動(dòng)生成主鍵或唯一鍵。序列可以按升序、降序排列。
序列是一個(gè)獨(dú)立型事務(wù),不受提交或回滾事務(wù)影響。
3.1、創(chuàng)建
CREATE SEQUENCE sequence_name
[START WITH integer] /* 序列起始值,升序默認(rèn)為最小值,降序默認(rèn)為最大值 */
[INCREMENT BY integer] /* 遞增量,默認(rèn)為 1, */
[MAXVALUE integer | NOMAXVALUE] /* 最大值,默認(rèn)為 NOMAXVALUE */
[MINVALUE integer | NOMINVALUE] /* 最小值,必須小于等于起始值和 小于最大值 */
[CYCLE | NOCYCLE] /* 序列到達(dá)最大值后是否循環(huán),默認(rèn)為 NOCYCLE 不循環(huán) */
[CACHE integer | NOCACHE]; /* 是否預(yù)分配序列號(hào),默認(rèn)緩存20個(gè)序列號(hào) */
3.2、訪問(wèn)
NEXTVAL 偽列:返回一個(gè)新的序列值。
CURRVAL 偽列:內(nèi)存中最后一次引用 NEXTVAL 的返回值,也就是序列的當(dāng)前值。
INSERT INTO t1 VALUES(t1_seq.NEXTVAL, 'aaa');
SELECT t1_seq.CURRVAL FROM dual;
3.3、修改
序列建立后只能修改 最大/最小值、增量值、序列號(hào)緩存大小,不能修改起始值,并且保證序列最大/最小值符合規(guī)則。
3.4、查看
DESC user_sequences;
SELECT * FROM user_sequences WHERE SEQUENCE_NAME = 'T1_SEQ';
posted on 2008-10-28 16:51
黃小二 閱讀(1375)
評(píng)論(0) 編輯 收藏 所屬分類:
[DB].Oracle