Oracle數(shù)據(jù)庫(kù)對(duì)象

數(shù)據(jù)庫(kù)對(duì)象簡(jiǎn)介

Oracle 數(shù)據(jù)庫(kù)對(duì)象又稱模式對(duì)象。

數(shù)據(jù)庫(kù)對(duì)象是邏輯結(jié)構(gòu)的集合沛婴,最基本的數(shù)據(jù)庫(kù)對(duì)象是表吼畏。



序列

序列是用于生成唯一、連續(xù)序號(hào)的對(duì)象嘁灯。

序列可以是升序的泻蚊,也可以是降序的。

序列創(chuàng)建

SQL> CREATE SEQUENCE toys_seq

? ? ? ? ? ?START WITH 10 -- 指定起始值

? ? ? ? ? ?INCREMENT BY 10

? ? ? ? ? ?MAXVALUE 2000

? ? ? ? ? ?MINVALUE 10

? ? ? ? ? ?NOCYCLE

? ? ? ? ? ?CACHE 10; -- 內(nèi)存中預(yù)先分配的序號(hào)數(shù)

SQL> CREATE SEQUENCE seqa START WITH 1000 INCREMENT BY 2;


序列操作

通過序列的偽列來訪問序列的值

NEXTVAL 返回序列的下一個(gè)值

CURRVAL 返回序列的當(dāng)前值

SQL> SELECT seqa.CURRVAL FROM dual;

更改序列

注意:不能修改序列的start with 數(shù)值

SQL> ALTER SEQUENCE seqa MAXVALUE 5000 CYCLE;

刪除序列

SQL> DROP SEQUENCE seqa;


同義詞

同義詞是現(xiàn)有對(duì)象的一個(gè)別名

簡(jiǎn)化SQL語(yǔ)句

隱藏對(duì)象的名稱和所有者丑婿,開發(fā)者可以不考慮具體對(duì)象名

提供對(duì)對(duì)象的公共訪問性雄,提高安全性


同義詞共有兩種類型:

公有同義詞可被所有的數(shù)據(jù)庫(kù)用戶訪問。

私有同義詞只能在其模式內(nèi)訪問羹奉,且不能與當(dāng)前模式的對(duì)象同名秒旋。


同義詞操作

創(chuàng)建同義詞

只有DBA用戶才能建立同義詞

SQL> CREATE SYNONYM myemp FOR scott.emp;

SQL> CREATE PUBLIC SYNONYM myemp2 FOR scott.emp;

訪問同義詞

私有同義詞無論授權(quán)與否一般(除DBA之外)只能當(dāng)前用戶模式訪問

公共同義詞只有得到同義詞所對(duì)應(yīng)對(duì)象的select授權(quán)才能訪問

SQL> GRANT SELECT ON myemp(同義詞) TO xm(用戶名);

SQL> SELECT * FROM myemp;

修改同義詞

SQL> CREATE OR REPLACE SYNONYM myemp FOR SCOTT.dept;

刪除同義詞

SQL> DROP SYNONYM myemp;

SQL> DROP PUBLIC SYNONYM myemp2;


視圖

視圖以經(jīng)過定制的方式顯示來自一個(gè)或多個(gè)表的數(shù)據(jù),可以視為“虛擬表”或“存儲(chǔ)的查詢”

視圖本身不存儲(chǔ)數(shù)據(jù)

創(chuàng)建視圖所依據(jù)的表稱為“基表”

視圖的優(yōu)點(diǎn)有:

提供了另外一種級(jí)別的表安全性

隱藏?cái)?shù)據(jù)的復(fù)雜性

簡(jiǎn)化用戶查詢SQL

隔離基表結(jié)構(gòu)的改變

通過重命名列,從另一個(gè)角度提供數(shù)據(jù)


創(chuàng)建視圖



創(chuàng)建視圖的語(yǔ)法:

CREATE? [OR REPLACE] [FORCE]? VIEW

? ? ? ? view_name [(alias[, alias]...)]

? ? ? ? ?AS select_statement

? ? ? ? [WITH CHECK OPTION]--檢查視圖

? ? ? ? [WITH READ ONLY];--只讀視圖


CREATE VIEW v_emp AS

? ? ? ? SELECT empno,ename,job FROM emp

? ? ? ? WHERE deptno=10

? ? ? ? [WITH CHECK OPTION CONSTRAINT chk_pv]

? ? ? ? [with read only];

刪除視圖:drop view


創(chuàng)建簡(jiǎn)單的視圖

CREATE VIEW myview AS

SELECT * FROM emp WHERE job='MANAGER';

創(chuàng)建帶有聚合函數(shù)的視圖

CREATE VIEW myviewa AS SELECT deptno,sum(sal) totsal FROM emp GROUP BY deptno;

創(chuàng)建從多張表連接形成的視圖

CREATE VIEW myviewb AS SELECT ename,job,dname,loc FROM? emp e,dept d WHERE e.deptno=d.deptno;

注意:

--創(chuàng)建視圖權(quán)限

grant create? view to scott;

--授予查詢權(quán)限

grant select any table to scott;

--授予權(quán)限

grant select any dictionary to scott;


視圖上的DML語(yǔ)句

在視圖上也可以使用修改數(shù)據(jù)的DML語(yǔ)句诀拭,如INSERT迁筛、UPDATE和DELETE

視圖上的DML語(yǔ)句有如下限制:

只能修改一個(gè)底層的基表

如果修改違反了基表的約束條件,則無法更新視圖

如果視圖包含連接操作符炫加、DISTINCT 關(guān)鍵字瑰煎、集合操作符铺然、聚合函數(shù)或 GROUP BY 子句俗孝,則將無法更新視圖

如果視圖包含偽列或表達(dá)式酒甸,則將無法更新視圖


視圖更改

UPDATE myview SET sal=sal+20;--成功

UPDATE myviewa SET totsal=10000 WHERE? deptno=10;聚合函數(shù)

UPDATE myviewb SET job=‘MANAGER’ WHERE ename=‘SMITH’;


SQL> INSERT INTO myview(empno,ename,job,deptno) VALUES(2222,'rose','CLERK',10);

SQL>SELECT * FROM myview;

SQL>--為什么插入數(shù)據(jù)看不到?--實(shí)際已添加至基表,但被職位限制不顯示了

SQL> DROP VIEW myview

SQL>CREATE VIEW myview AS SELECT * FROM emp WHERE job=‘MANAGER’ with check option;--再次添加會(huì)報(bào)錯(cuò)赋铝,因?yàn)橐严拗浦荒芴砑?manager'


索引

索引是與表相關(guān)的一個(gè)可選結(jié)構(gòu)

用以提高 SQL 語(yǔ)句執(zhí)行的性能

減少磁盤I/O

使用 CREATE INDEX 語(yǔ)句創(chuàng)建索引

在邏輯上和物理上都獨(dú)立于表的數(shù)據(jù)

Oracle 自動(dòng)維護(hù)索引


索引有各種類型插勤,除了標(biāo)準(zhǔn)索引外,還有一些特殊類型的索引:



索引管理

索引創(chuàng)建

通過主鍵革骨、唯一約束等自動(dòng)建立

手動(dòng)創(chuàng)建

CREATE INDEX index_emp ON emp(hiredate)

SELECT* FROM emp WHERE hiredate>to_date(‘19810101’,’yyyymmdd’)

重建索引

ALTER INDEX index_emp REBUILD;

刪除索引

DROP INDEX index_emp ;


索引一覽

唯一索引

Oracle 自動(dòng)在表的主鍵列上創(chuàng)建唯一索引

CREATE UNIQUE INDEX

組合索引

是在表的多個(gè)列上創(chuàng)建的索引

反向鍵索引

通常建立在值是連續(xù)增長(zhǎng)的列上农尖,使數(shù)據(jù)均勻地分布在整個(gè)索引上

創(chuàng)建索引時(shí)使用REVERSE關(guān)鍵字,基于B樹優(yōu)化

位圖索引

通常建立低基數(shù)列上良哲,列值相對(duì)固定

CREATE BITMAP INDEX


本章小結(jié)

同義詞是現(xiàn)有數(shù)據(jù)庫(kù)對(duì)象的別名

序列用于生成唯一盛卡、連續(xù)的序號(hào)

視圖是基于一個(gè)或多個(gè)表的虛擬表

索引是與表相關(guān)的一個(gè)可選結(jié)構(gòu),用于提高 SQL 語(yǔ)句執(zhí)行的性能筑凫。索引類型有標(biāo)準(zhǔn)索引滑沧、唯一索引、反向鍵索引巍实、位圖索引和基于函數(shù)的索引

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滓技,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棚潦,更是在濱河造成了極大的恐慌令漂,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件丸边,死亡現(xiàn)場(chǎng)離奇詭異叠必,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)妹窖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門挠唆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嘱吗,你說我怎么就攤上這事玄组。” “怎么了谒麦?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵俄讹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我绕德,道長(zhǎng)患膛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任耻蛇,我火速辦了婚禮踪蹬,結(jié)果婚禮上胞此,老公的妹妹穿的比我還像新娘。我一直安慰自己跃捣,他們只是感情好漱牵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疚漆,像睡著了一般酣胀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上娶聘,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天闻镶,我揣著相機(jī)與錄音,去河邊找鬼丸升。 笑死铆农,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狡耻。 我是一名探鬼主播墩剖,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼酝豪!你這毒婦竟也來了涛碑?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤孵淘,失蹤者是張志新(化名)和其女友劉穎蒲障,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體瘫证,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揉阎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了背捌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毙籽。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖毡庆,靈堂內(nèi)的尸體忽然破棺而出坑赡,到底是詐尸還是另有隱情,我是刑警寧澤么抗,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布毅否,位于F島的核電站,受9級(jí)特大地震影響蝇刀,放射性物質(zhì)發(fā)生泄漏螟加。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捆探。 院中可真熱鬧然爆,春花似錦、人聲如沸黍图。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)雌隅。三九已至翻默,卻和暖如春缸沃,著一層夾襖步出監(jiān)牢的瞬間恰起,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工趾牧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留检盼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓翘单,卻偏偏與公主長(zhǎng)得像吨枉,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哄芜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容