資源描述:
《北大青鳥oracle學(xué)習(xí)資料TP3.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、第三章數(shù)據(jù)庫對象本章任務(wù)使用Oracle創(chuàng)建各種數(shù)據(jù)庫對象理解和使用序列理解和創(chuàng)建視圖理解和創(chuàng)建索引本章目標(biāo)數(shù)據(jù)庫對象簡介Oracle數(shù)據(jù)庫對象又稱模式對象數(shù)據(jù)庫對象是邏輯結(jié)構(gòu)的集合,最基本的數(shù)據(jù)庫對象是表其他數(shù)據(jù)庫對象包括數(shù)據(jù)庫對象序列視圖索引序列序列是用于生成唯一、連續(xù)序號的對象序列可以是升序的,也可以是降序的使用CREATESEQUENCE語句創(chuàng)建序列SQL>CREATESEQUENCEtoys_seqSTARTWITH10INCREMENTBY10MAXVALUE2000MINVALUE10NOCYCLECACHE10;指定內(nèi)存中預(yù)先分配的序號數(shù)訪問序列通
2、過序列的偽列來訪問序列的值NEXTVAL返回序列的下一個(gè)值CURRVAL返回序列的當(dāng)前值SQL>INSERTINTOtoys(toyid,toyname,toyprice)VALUES(toys_seq.NEXTVAL,‘TWENTY’,25);SQL>INSERTINTOtoys(toyid,toyname,toyprice)VALUES(toys_seq.NEXTVAL,’MAGICPENCIL’,75);指定序列的下一個(gè)值SQL>SELECTtoys_seq.CURRVALFROMdual;檢索序列的當(dāng)前值更改和刪除序列SQL>ALTERSEQUENCEto
3、ys_seqMAXVALUE5000CYCLE;使用ALTERSEQUENCE語句修改序列,不能更改序列的STARTWITH參數(shù)使用DROPSEQUENCE語句刪除序列SQL>DROPSEQUENCEtoys_seq;視圖視圖以經(jīng)過定制的方式顯示來自一個(gè)或多個(gè)表的數(shù)據(jù)視圖可以視為“虛擬表”或“存儲的查詢”創(chuàng)建視圖所依據(jù)的表稱為“基表”視圖的優(yōu)點(diǎn)有:提供了另外一種級別的表安全性隱藏的數(shù)據(jù)的復(fù)雜性簡化的用戶的SQL命令隔離基表結(jié)構(gòu)的改變通過重命名列,從另一個(gè)角度提供數(shù)據(jù)創(chuàng)建視圖3-1studnostudnamestudmarkssubnostudcaste1Rob45
4、2Open2James334SC3Jesica405OpenStud_detailsStud_viewstudnostudnamesubno1Rob22James43Jesica5CREATEVIEWstud_viewASSELECTstudno,studname,subnoFROMStud_details;創(chuàng)建視圖3-2創(chuàng)建視圖的語法:CREATE[ORREPLACE][FORCE]VIEWview_name[(alias[,alias]...)]ASselect_statement[WITHCHECKOPTION][WITHREADONLY];創(chuàng)建視圖3-3使
5、用WITHCHECKOPTION選項(xiàng)創(chuàng)建視圖CREATEORREPLACEVIEWpause_viewASSELECT*FROMorder_masterWHEREostatus='p'WITHCHECKOPTIONCONSTRAINTchk_pv;使用ORDERBY子句創(chuàng)建視圖CREATEORREPLACEVIEWord_venASSELECT*FROMvendor_masterORDERBYvenname;創(chuàng)建帶有錯(cuò)誤的視圖CREATEFORCEVIEWvenASSELECT*FROMvenmaster;聯(lián)接視圖2-1StudnoStudnameSubmrksS
6、ubno1Rob4522James3343Jesica404SubnoSubname2English4Maths5ScienceStud_detailsSub_detailsCREATEVIEWStud_sub_viewASSELECTStudno,Studname,Submrks,SubnameFROMStud_details,Sub_DetailsWHEREStud_details.Subno=Sub_details.Subno;Stud_sub_view聯(lián)接視圖StudnoStudnameSubmrksSubname1Rob45English2James33
7、Maths3Jesica40Maths聯(lián)接視圖2-2創(chuàng)建外聯(lián)接視圖CREATEVIEWven_ord_outj_viewASSELECTvm.vencode,venname,orderno,odate,ostatusFROMvendor_mastervm,order_masteromWHEREvm.vencode=om.vencode(+);SELECTvm.vencode,venname,orderno,odate,ostatusFROMvendor_mastervmLEFTOUTERJOINorder_masteromONvm.vencode=om.venco
8、de;視圖