Oracle經(jīng)典自學(xué)筆記_第1頁
Oracle經(jīng)典自學(xué)筆記_第2頁
Oracle經(jīng)典自學(xué)筆記_第3頁
Oracle經(jīng)典自學(xué)筆記_第4頁
Oracle經(jīng)典自學(xué)筆記_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一驗(yàn)證Oracle已經(jīng)安裝完成了,首先得確認(rèn)程序里有這些個(gè)選項(xiàng),有四個(gè)選項(xiàng):Oracle Installation Products、集成管理工具、配置和移植工具(管理員用得比較多)、應(yīng)用程序開發(fā)。Oracle也可以形成一種層次性的鏈接(Directory Manager),對(duì)于我們來說用得最多是sqlplus,而OLE 是一種面向?qū)ο蟮募夹g(shù),利用這種技術(shù)可開發(fā)可重復(fù)使用的軟件組件(COM),他是微軟提出的,在用VB開發(fā)時(shí)可能要用,對(duì)于我們來說不須管。當(dāng)啟動(dòng)sqlplus時(shí)會(huì)提示輸入用戶名和口令,所謂的sqlplus是Oracle的一個(gè)客戶端。Oracle大多數(shù)命令都用命令來實(shí)現(xiàn),所以比較難使

2、,就如同unix比windows難使。口令你輸入tiger,建議就用它,因?yàn)橐院笕テ髽I(yè)里Oracle 9i就是用的這個(gè)口令。當(dāng)你看到SQL命令符時(shí)說明已經(jīng)進(jìn)入到了Oracle的命令行了。圖形版的sqqlpluss,命令行的的sqlpllus,還有有一個(gè)就是通通過網(wǎng)頁訪問問Oraclle的服務(wù),啟啟動(dòng)sqlpplus,端端口號(hào)是55560,URRL是 HYPERLINK htttp:/1:55560/iisqlpllus。issqlpluus httpp:/1227.0.00.1:55560/issqlpluus。isqqlpluss非常有用,比比如說你的機(jī)機(jī)器上沒有裝裝上Or

3、accle,就可可以通過鍵入入別人的IPP,然后登陸陸到他的機(jī)器器上來做實(shí)驗(yàn)驗(yàn),當(dāng)然也可可以安裝特定定的客戶端軟軟件實(shí)現(xiàn)。說實(shí)在的Orracle的的這個(gè)客戶端端太難看了,并并且要記好多多好多的命令令,所以專門門有一類公司司專門為Orracle開開發(fā)客戶端。有有一個(gè)比較著著名的客戶端端叫Toad,當(dāng)當(dāng)然Oraccle還有一一個(gè)客戶端PPL/SQLL Deveelplorr,這個(gè)用的的也非常多。數(shù)據(jù)庫(kù)管理時(shí)常用Toad(英文蛤蟆的意思),如果有聲卡的話,你啟動(dòng)一次它就叫一次。對(duì)我們來說sqlplus足夠使了。以后有機(jī)會(huì)我使用一下PL/SQL Develplor,不過這個(gè)也不好使,因?yàn)槟阃瑫r(shí)必須裝上

4、Oracle,還不如isqlplus好呢。以超級(jí)管理員員身份鏈接數(shù)數(shù)據(jù)庫(kù)的方法法是再命令行行下敲入命令令:sqlpplus ssys/口令令 as ssysdbaa。Sys和syystem的的區(qū)別是syys是數(shù)據(jù)庫(kù)庫(kù)管理者,ssystemm是數(shù)據(jù)庫(kù)所所有者,sys用戶擁擁有dba,sysdbba,sysopper等角色色或權(quán)限,是是oraclle權(quán)限最高高的用戶,ssystemm用戶擁有dbba,sysdbba等角色或或系統(tǒng)權(quán)限,system如果正常登錄,它其實(shí)就是一個(gè)普通的dba用戶,但是如果以as sysdba登錄,其結(jié)果實(shí)際上它是作為sys用戶登錄的,這一點(diǎn)類似Linux里面的sudo的

5、感覺,從登錄信息里面我們可以看出來。sys用戶必須以as sysdba或as sysoper形式登錄。然后輸入命令alter user scott account unlock;它的意思是將Scott用戶解鎖,以后關(guān)于dba的用到一個(gè)學(xué)一個(gè),沒必要從頭到尾的去學(xué)它。二SQL語言是是在數(shù)據(jù)庫(kù)下下進(jìn)行操作的的語言,它本本身是一個(gè)標(biāo)標(biāo)準(zhǔn)語言,有有國(guó)際標(biāo)準(zhǔn)。有兩套一個(gè)是SQL1992,SQL1999。大多數(shù)數(shù)據(jù)庫(kù)既支持舊的標(biāo)準(zhǔn)也支持新的,很多也是用的舊的SQL語言寫程序的,對(duì)于我們來說新舊都要學(xué),而且對(duì)大多數(shù)數(shù)據(jù)庫(kù)系統(tǒng)來說都是通用的,只不過不同數(shù)據(jù)庫(kù)有一個(gè)輕微的改變,這就是最郁悶的地方,沒辦法到時(shí)候查

6、手冊(cè)或google一下。SQL全稱為Structured Query Language,即機(jī)構(gòu)化查詢語言,它被定義為第四代語言。為什么叫第四代語言,因?yàn)槲覀冎赖谌Z言也得有if else for 等這些流程控制語句,也就是你得告訴它干什么且怎么干。第四大只用告訴它我要干什么,不用去控制它怎么干,這樣的語言學(xué)起來當(dāng)然十分easy。我們共有四類類語句要學(xué):數(shù)據(jù)操作語語言語句Data manippulatiion laanguagge,DMLL,會(huì)話控制語語句 HYPERLINK /searchwhatis/18/5949018.shtml sessiion coontroll statteme

7、ntt,數(shù)據(jù)定義語語言語句DData ddefiniition languuage,DDDL以及及事務(wù)控制語語句 HYPERLINK /searchwhatis/297/6092797.shtml transsactioon conntrol stateement。查詢語句只有有一句話就是是selecct語句,這這是最重要的的一條語句。以以后只要遇到到相應(yīng)的seelect語語句一律背過過,企業(yè)再面面試時(shí)其他語語句一般不會(huì)會(huì)怎么考但這這條語句是必必考的。如果果考你SQLL語句肯定會(huì)會(huì)考這條seelect語語句不是別的的。你跟別人人交流的時(shí)候候,別說我寫寫過幾條dmml語句,而而因詳細(xì)的說說到底是

8、什么么語句,比如如inserrt語句、uupdatee語句等。選擇的意思思是從表里把把數(shù)據(jù)拿出來來,展現(xiàn)出來來。聽起來似似乎挺簡(jiǎn)單的的,但你要從從表里拿數(shù)據(jù)據(jù)得首先知道道有幾張表,每每張表里有些些什么內(nèi)容。第一步要做的的就是熟悉一一下實(shí)驗(yàn)用的的數(shù)據(jù),這些些數(shù)據(jù)Oraacle都給給自帶了,直直接用就行了了。首先第一一條語句deesc emmp,描述一一下emp這這張表,會(huì)分分別列出所有有字段(表頭頭),emppno 雇員員編號(hào),enname 雇雇員名字,jjob 雇員員工種,mggr 經(jīng)理人人,hireedate 雇員入職日日期,sall 薪水,ccomm 津津貼,獎(jiǎng)金,ddeptnoo 所屬部

9、門門編號(hào)。表還有一部部分叫類型,也也就是相對(duì)應(yīng)應(yīng)字段的類型型,這些都是是Oraclle已經(jīng)定義義好的,我們們直接用。現(xiàn)現(xiàn)在先用別人人建立好的表表,然后再自自己建表。NNUMBERR指數(shù)字,VVARCHAAR指字符型型,Oraccle7以前前在用,現(xiàn)在在常用的是VVARCHAAR2它支持持各種可變字符串,可以更好的的表示各國(guó)文文字,DATTE指日期,NNUMBERR(7,2)指七位數(shù)字字有兩位小數(shù)數(shù)。desc ddept 部部門表,它有有三個(gè)字段DDEPTNOO 部門編號(hào)號(hào),DNAMME 部門名名稱,LOCC部門所在位位置。Desc ssalgraade工資等等級(jí)表,許多多公司都實(shí)行行的是工資等

10、等級(jí)制,分幾幾級(jí)工資,GGRADE工工資等級(jí),HHISAL該該等級(jí)最高工工資,LOSSAL該等級(jí)級(jí)最低工資。以上簡(jiǎn)要的介介紹了三張表表,如果想更更詳細(xì)的了解解里面的數(shù)據(jù)據(jù),教大家第第一個(gè)sellect語句句:seclectt * from 表名;。*表示把表表里所有的數(shù)數(shù)據(jù)都取出來來,分號(hào)表示示語句結(jié)束。盡量多熟悉悉各張表之間間的關(guān)系,以以及表內(nèi)部各各字段之間的的關(guān)系,越熟熟悉越好。如果要算純數(shù)數(shù)據(jù),可以采采用duall這張表,它它就一條記錄錄,一個(gè)字段段。你如果用用其他表計(jì)算算的話會(huì)有好好多條重復(fù)結(jié)果,記記錄。字段是不能有有空格的,如如果非要空格格可以將整個(gè)個(gè)字段用雙引引號(hào)括起來,這樣的話引

11、號(hào)里面就可以加上各種各樣的字符了。如果沒加引號(hào)的話那樣做是不對(duì)的。再?zèng)]有加雙引號(hào)的時(shí)候結(jié)果字段名會(huì)以大寫字母顯示出來,但加了雙引號(hào)就保持住了原來的形式不變。沒有就是null值,即便是0也與空值大不一樣。0是有值但為0,null是沒有值。任何含有空值的表達(dá)式最后的結(jié)果都是空值。SQL里面有有一個(gè)字符串串鏈接符|,它的作用用跟Javaa里的+一樣樣,所有被鏈鏈接的都會(huì)轉(zhuǎn)轉(zhuǎn)換為字符串串顯示出來。如select ename|sal from emp;它的意思是將結(jié)果sal轉(zhuǎn)換為字符串后鏈接到ename后面。在任何數(shù)據(jù)庫(kù)的SQL語句里面都是用單引號(hào)括起來表示一個(gè)字符串序列。如果字符串里本來就有單引號(hào),再

12、解析時(shí)就會(huì)出錯(cuò)??梢杂脙蓚€(gè)單引號(hào)來代替一個(gè)單引號(hào),這樣就可以正確顯示了。關(guān)鍵字disstinctt是指選擇不不重復(fù)的記錄錄,如果修飾飾多個(gè)字段時(shí)時(shí)表示選擇該該多個(gè)字段的的組合不重復(fù)復(fù)的顯示出來來。wherre叫過濾條條件,它會(huì)過過濾掉一些記記錄,等值判判斷用=,不不等值判斷注注意是而而不是Javva語句里的的不等號(hào)。字符串比較較是比較字符符的ASCIII碼,挨個(gè)個(gè)比較。做比比較時(shí)還可以以用關(guān)鍵字bbetweeen andd,注意的是是包括邊界值值的。andd也可把兩個(gè)個(gè)過濾條件連連接起來。下面來講空值值的處理,你你可以直接用用wheree +字段+is nuull來取出出是空值的,取取出不是空

13、值值的多加一個(gè)個(gè)not就行行。這種處理理方式非常像像我們的說話話習(xí)慣。inn然后跟著某某個(gè)字段的取取值是括號(hào)括括起來各值之之間用逗號(hào)隔隔開??梢允故褂胊nd、oor,nott連接起各個(gè)個(gè)查詢條件。日期處理起來來稍微麻煩一一些,由于現(xiàn)現(xiàn)在還沒有學(xué)學(xué)日期函數(shù),所所以采用另外外一種方式一個(gè)特殊的的字符串。你你就按它的日日期寫法來寫寫如20-2月月-07,然后系統(tǒng)統(tǒng)就按照字符符串來比較即即可。年份可可以寫全如20-2月月-2007,它能認(rèn)出出來。以后我我們可以寫成成任何形式的的日期格式都都能處理。模糊查詢是這這樣的,比如如找出名字里里含有al的的,有點(diǎn)像正正則表達(dá)式。使用關(guān)鍵字like,可以通配符%,

14、代表0個(gè)或多個(gè)字符,_代表一個(gè)字母。如果名字里就含有一個(gè)%,則使用轉(zhuǎn)義字符%的形式,當(dāng)然可以自己指定轉(zhuǎn)義字符方法是select * from emp where ename like _A$% escape $;。排序用到的一一個(gè)關(guān)鍵字是是orderr by,默默認(rèn)的是按升升序排列,如如果想降序排排列可以采用用如下形式:selecct * ffrom ddept oorder by deeptno desc;desc是是降序的英文文縮寫。升序序排列可不寫寫也可加上aasc。還可可以加入whhere先過過濾了再排序序,按照幾個(gè)個(gè)字段進(jìn)行排排序時(shí),用逗逗號(hào)分隔開,如下:select ename ,

15、job,empno,sal ,deptno from emp order by deptno,sal desc;意思是先將表按照deptno升序排列,然后相同的deptno內(nèi)部再按照sal降序排列。三SQL函數(shù),函函數(shù)就是Jaava里的方方法,有參數(shù)數(shù)有返回值?,F(xiàn)現(xiàn)在講的是單單行函數(shù),第第一個(gè)叫做llower,作作用是轉(zhuǎn)換為為小寫;第二二個(gè)叫uppper,作用用是轉(zhuǎn)為大寫寫;第三個(gè)叫叫substtring,取取子串。這幾幾個(gè)函數(shù)都是是對(duì)字符串進(jìn)進(jìn)行操作的,傳傳遞進(jìn)去的參參數(shù)就是字段段名。如selecct lowwer(enname) from emp;還還有一個(gè)函數(shù)數(shù)叫chr,它它是把一個(gè)數(shù)數(shù)

16、字轉(zhuǎn)為字符符:seleect chhr(86) fromm duall;將86代代表的字符顯顯示出來,與與之對(duì)應(yīng)的是是將一個(gè)字符符轉(zhuǎn)為對(duì)應(yīng)的的ASCIII碼,叫asscii,如如:seleect asscii(A) froom duaal;就是將將A的碼值顯顯示出來。round函函數(shù)是四舍五五入的作用,如如selecct rouund(433.5354435) ffrom ddual;結(jié)結(jié)果就為444。還有一個(gè)個(gè)重載的帶兩兩個(gè)參數(shù)的方方法如sellect rround(43.5335435,4) frrom duual;四舍舍五入到小數(shù)數(shù)點(diǎn)后4位,結(jié)結(jié)果位44.5354,第第二個(gè)參數(shù)可可以是負(fù)

17、數(shù)表表示四舍五入入到小數(shù)點(diǎn)前前多少位。其他函數(shù)可以以不用記住,但但要知道有這這么個(gè)函數(shù),然然后取手冊(cè)中中可以查到,但但下面講的一一個(gè)函數(shù)最好好記住它。tto_chaar是將字段段內(nèi)容顯示為為字符,可以以對(duì)顯示的形形式進(jìn)行格式式控制,比如如selecct to_char(sal, $99,999,9999.99999) from emp;就就是以后面給給定字符形式式顯示出來,小小數(shù)點(diǎn)后的四四位會(huì)強(qiáng)制顯顯示,而前面面的沒有的位位數(shù)就不顯示示,這就是99的含義。$換為L(zhǎng)表示示本地貨幣。0代表表一位數(shù)字,如如果沒有該位位數(shù)字也會(huì)強(qiáng)強(qiáng)制顯示為00,對(duì)于這種種方式是為了了進(jìn)行格式控控制。實(shí)際上用too_c

18、harr來控制數(shù)字字是比較少用用的,而用得得最多的是對(duì)對(duì)日期格式的的控制,我們們知道Oraacle里的的sysdaate包含了了插入記錄的的詳細(xì)時(shí)間信信息,我們可可以對(duì)其進(jìn)行行顯示的格式式進(jìn)行控制,比比如:sellect tto_chaar(hirredatee,yyyyy-mm-dd) from emp;轉(zhuǎn)轉(zhuǎn)換為年月日日2006-3-23這這種格式的。實(shí)際上對(duì)日期的格式控制是利用Java來實(shí)現(xiàn)的,到時(shí)會(huì)有一個(gè)關(guān)于日期處理的專題。selectt enamme,jobb,hireedate from emp wwhere hireddate to_daate(11982-11-1 1:30:00

19、0, yyyyy-mmm-dd hh:mii:ss);意思是將將特定的字符符串轉(zhuǎn)換為相相應(yīng)的日期格格式。還有to_numbeer是將特定定的字符串解析為為相應(yīng)的數(shù)字格格式如selecct enaame ,jjob ,ssal frrom emmp wheere saal22000;首首先按depptno求出出每個(gè)depptno的平平均sal,然然后對(duì)這些分分組利用haaving 語句進(jìn)行過過濾。到現(xiàn)在為止已已經(jīng)學(xué)完了所所有的單條sselectt語句,執(zhí)行行順序按照sselectt+字段或內(nèi)容+frrom+表名名+wherre+grouup by+haviing+ordeer by這個(gè)順序進(jìn)進(jìn)行

20、執(zhí)行,首首先取出記錄錄,然后對(duì)單單個(gè)記錄進(jìn)行行過濾,過濾濾完了分組,分分組好了對(duì)組組過濾,剩下下的分組再按按順序顯示出出來。單條sselectt語句一定要要非常熟悉,如如果這都要查查書的話對(duì)企企業(yè)就沒法交交代了,哈哈哈!之前已經(jīng)講過過一個(gè)子查詢?cè)兊睦樱簊selectt enamme,sall fromm emp wheree sal=(seleect maax(sall) froom empp);看誰的的工資最高,之所以叫子查詢因?yàn)樵僖粋€(gè)select語句里套了另外一個(gè)select語句。理解子查詢的關(guān)鍵是把它當(dāng)成一張表,可以對(duì)它做表連接最后就可以求出想要的結(jié)果來。單獨(dú)的select語句相當(dāng)簡(jiǎn)單

21、,但是有了select子句和表連接之后語句就稍微復(fù)雜了點(diǎn)。select ename ,sal from emp join(select max(sal) max_sal,deptno from emp group by deptno) t on (emp.sal=t.max_sal and t.deptno=emp.deptno);這個(gè)語句的作用是求出每個(gè)部門薪水最高的員工記錄。selectt e1.eename,e2.enname ffrom eemp e11,emp e2 whhere ee1.mgrr=e2.eempno;對(duì)于在同一一張表中進(jìn)行行查詢時(shí)需要要進(jìn)行自連接接,為表取別別名便于

22、寫出出條件和比較較。這條語句句的意思是找找出每個(gè)員工工的經(jīng)理人。為同一張表起不同的別名然后當(dāng)成兩張表來用。在SQL999里面鏈接條條件和過濾條條件是分開的的,即鏈接條條件不能出現(xiàn)現(xiàn)在wherre語句里面面,利用Jooin+表名名+on+鏈鏈接條件進(jìn)行行。比如:sellect eename ,job,dnamee fromm emp join dept on (eemp.deeptno=dept.deptnno);等值值鏈接的時(shí)候候有一個(gè)簡(jiǎn)便便的寫法ussing(ddeptnoo)代替onn (empp.depttno=deept.deeptno)但不推薦使使用,因它的的限制條件很很多,可能報(bào)報(bào)

23、出來的錯(cuò)誤誤很難找并且且看起來也不不是很清楚。連接有各種各各樣的形式,下下面我們講外外連接,其實(shí)實(shí)用起來特別別方便。它會(huì)把左邊邊那張表不能能和右邊鏈接接的數(shù)據(jù)也拿拿出來。seelect t1.enname , t2.eename mgr , t1.ddeptnoo fromm emp t1 left ouuter jjoin eemp t22 on (t1.mggr=t2.empnoo);outter可以省省略掉效果一一樣。如果想想把右邊多余余的拿出來JJoin前加加上righht即可;如如果兩邊多余余的都想拿出出來Joinn前加上fuull叫全外外連接。講一道面試題題,不準(zhǔn)用組組函數(shù)求出薪薪

24、水的最高值值。方法是用用自連接,連連接條件采用用非等值連接接,這樣表表中的最大值值就會(huì)連接不不上,然后再再?gòu)膃mp表表中找出未連連接上的最大大值,如下:selecct sall fromm emp wheree sal not iin (seelect t1.saal froom empp t1 join emp tt2 on (tt1.sall(sselectt max(sal) from emp wwhere empnoo not in (sselectt disttinct mgr ffrom eemp whhere mmgr iss not null) andd empnno in (

25、seleect diistincct mgrr fromm emp wheree mgr is noot nulll );再講一道面試試題:比較這這兩個(gè)語句的的執(zhí)行效率Select * froom empp wherre depptno=110 andd enamme likke %A%;Select * froom empp wherre enaame liike %A% and deptnno=10;理論上說應(yīng)該是是第一個(gè),就就如同&和和&的區(qū)別一一樣它會(huì)過濾濾掉很多條件件,后面的字字符串就不用用再取去比較較了,但實(shí)際際中不好說因因?yàn)橛锌赡躉Oraclee在執(zhí)行的時(shí)時(shí)候做了優(yōu)化化,自動(dòng)將數(shù)

26、數(shù)字比較放前前面了。四現(xiàn)在已經(jīng)講完完了seleect語句,接接下來講dmml語句,常常見的有三條條,他們和sselectt語句合稱為為數(shù)據(jù)庫(kù)的四四大語句(sselectt/inseert/uppdate/delette)。增刪改查!接下來簡(jiǎn)單介介紹一下Orracle的的邏輯結(jié)構(gòu)。安裝的時(shí)候創(chuàng)建了一個(gè)全局?jǐn)?shù)據(jù)庫(kù),同時(shí)為這個(gè)數(shù)據(jù)庫(kù)建立了一系列管理它的進(jìn)程SID。一個(gè)大數(shù)據(jù)庫(kù)里面又區(qū)分為不同的表空間,說白了就是裝表的地兒。我們現(xiàn)在的表是放在不同的表空間里面,比方說users表空間,在里面放著某個(gè)用戶所有的表,當(dāng)該用戶登錄進(jìn)去后其實(shí)是去訪問自己的表空間里的相對(duì)應(yīng)的表??梢詫⒛硞€(gè)表空間里的內(nèi)容全部cop

27、y出去創(chuàng)建一個(gè)新的user,然后該user就操作專屬于自己的表空間里的表了,所以說Oracle是支持多用戶的。將某個(gè)表空間間里的內(nèi)容全全部copyy出去創(chuàng)建一一個(gè)新的usser做法是是這樣的:11.以超級(jí)管管理員登錄數(shù)數(shù)據(jù)庫(kù)connn syss/oraccle ass sysddba; 2.從命令行行在起一個(gè)cclientt,先建立一一個(gè)目錄如CC:tesst進(jìn)入該目目錄后執(zhí)行ddel *.*刪除所有有,然后鍵入入命令expp后提示輸入入用戶名和口口令,就是你你要備份哪個(gè)個(gè)就輸哪個(gè),接接下來提示輸輸入數(shù)組提取取緩沖區(qū)大小小,這個(gè)沒關(guān)關(guān)系(內(nèi)存里里的一個(gè)小區(qū)區(qū)域填滿了再再統(tǒng)一拿到硬硬盤上來)一一

28、路回車就行行,等著它導(dǎo)導(dǎo)完就可以了了;3.創(chuàng)建新用用戶creaate usser huuanggaang iddentiffied bby hahha08322 defaault ttablesspace userss quotta 10MM on uusers;用戶名huuanggaang口令hhaha08832在ussers表空空間里分配110M的默認(rèn)認(rèn)表空間給該該用戶;4.給予相應(yīng)應(yīng)權(quán)限graant crreate sessiion,crreate tablee,creaate viiew too huannggangg,如果沒有有sessiion它登錄錄都是問題;5.導(dǎo)入文文件imp后

29、后回車幾個(gè)后后提示是否導(dǎo)導(dǎo)入整個(gè)導(dǎo)出出文件選否后后輸入想導(dǎo)入入的那個(gè)用戶戶數(shù)據(jù)的用戶戶名。只有2和55是在命令行行中完成,其其余是超級(jí)用用戶登錄后在在數(shù)據(jù)庫(kù)里完完成。insertt intoo+表名+vvaluess(各字段值值),在對(duì)這這些數(shù)據(jù)進(jìn)行行操作時(shí)最好好有一個(gè)備份份,方法很簡(jiǎn)簡(jiǎn)單rolllback回回退操作,ccreatee tablle 表名 as seelect * froom +欲備份表名名;inserrt語句還有有一種插入方方法,inssert iinto ddept2(deptnno,locc) vallues(550,beeijingg);只是是插入部分字字段的值,其其他

30、字段的值值為nulll,還有一種種方法是innsert into dept22 seleect * from dept;將seleect子句選選出的記錄挨挨個(gè)插入前提提是選出的記記錄與該表的的記錄格式相相同。在Oraclle中取完相相應(yīng)字段后,會(huì)會(huì)在末尾附加加一個(gè)偽字段段,你看不到到,叫做roownum,它它是記錄下每每條記錄在第第幾行了,用用它的時(shí)候有有個(gè)限制條件件只能與或或=6 aand r=10;這個(gè)在Oraccle里面是是效率最高的的,如果通過過連接數(shù)據(jù)庫(kù)庫(kù)用Javaa編程來做,但但效率相當(dāng)?shù)偷?。這個(gè)重點(diǎn)點(diǎn)掌握,比如如說顯示論壇壇里的帖子是是分頁顯示的的,如果想顯顯示第4頁的的內(nèi)容一定

31、是是從某一個(gè)帖帖子到某一個(gè)個(gè)帖子顯示出出來,帖子這這個(gè)記錄是按按照發(fā)帖時(shí)間間倒序排列的的。三層嵌套套就是Oraacle對(duì)這這種問題的解解決方案,當(dāng)當(dāng)然每一種數(shù)數(shù)據(jù)庫(kù)有自己己的解決方式式。SQL面試題題:有3個(gè)表S,C,SC。SS(SNO,SNAMEE)代表(學(xué)學(xué)號(hào),姓名);C(CNOO,CNAMME,CTEEACHERR)代表(課課號(hào),課名,教教師);SCC(SNO,CNO,SSCGRADDE)代表(學(xué)學(xué)號(hào),課程成成績(jī))。問題:找出沒選過“黎黎明”老師課程的的所有學(xué)生姓姓名;列出2門以上(含含2門)不及及格學(xué)生姓名名及平均成績(jī)績(jī);既學(xué)過1號(hào)課程程又學(xué)過2號(hào)號(hào)課程所有學(xué)學(xué)生姓名。請(qǐng)用標(biāo)準(zhǔn)SQLL

32、語言寫出答答案,方言也也行(請(qǐng)說明明使用什么方方言)。select snamee fromm s jooin scc on (s.snoo=sc.ssno) jjoin cc on (o=sc.noo) wheere c.cteaccher limingg; (2) seleect snname ffrom ss wherre snoo in (selecct snoo fromm sc wwhere scgraade =2); (3) seleect snname ffrom ss wherre snoo in (selecct snoo fromm sc wwhere cno=11 and

33、 sno = (sellect ssno frrom scc wherre cnoo=2);update 的作用相對(duì)對(duì)于對(duì)記錄進(jìn)進(jìn)行修改。用用法是upddate+表表名+sett+字段列表表及更新值過過濾條件;deelete+from+表名+過濾濾條件,刪除除某些字段。五接下來講數(shù)據(jù)據(jù)定義語言dddl語言。它實(shí)現(xiàn)了數(shù)據(jù)表,視圖等的建立。事務(wù)transaction就是一系列的操作,要么同時(shí)完成要么不完成,比如轉(zhuǎn)賬操作要對(duì)兩個(gè)賬戶update,不會(huì)出現(xiàn)數(shù)據(jù)不一致。對(duì)于Oracle來說,一個(gè)transcation起始于一條dml語句,然后一系列的操作rollback回退事務(wù)會(huì)結(jié)束;或commit結(jié)束

34、事務(wù),再rollback也沒用;當(dāng)遇到一條dcl語句或ddl語句提交結(jié)束事務(wù);當(dāng)正常退出exit時(shí)提交結(jié)束事務(wù),不正常退出時(shí)(如斷電)自動(dòng)回滾結(jié)束事務(wù)。數(shù)據(jù)庫(kù)常用對(duì)對(duì)象是指它經(jīng)經(jīng)常使用的一一些資源,比比方說表、視視圖或其他資資源。下面講講如何創(chuàng)建一一張表,crreate tablee +表名+字段及字段段的數(shù)據(jù)類型型。Oraccle常用的的數(shù)據(jù)類型有有變長(zhǎng)字符串串varchhar2(最最長(zhǎng)字符數(shù)即即上界4k)、定長(zhǎng)字符串串char(所所占大?。S杏辛俗冮L(zhǎng)字符符串后為什么么還要有定長(zhǎng)長(zhǎng)字符串呢?主要還是效效率問題,跟跟數(shù)組很像,但但是站空間,很很多結(jié)構(gòu)、算算法都存在拿拿空間換時(shí)間間問題,如HH

35、ashTaable。數(shù)字型nuumber(mm,n)m指指總共多少為為,n是小數(shù)數(shù)點(diǎn)后的位數(shù)數(shù);日期daate,包含含年月日時(shí)分分秒;變長(zhǎng)字符串串long可可達(dá)2G,主主要是有些時(shí)時(shí)候一篇文本本相當(dāng)長(zhǎng);存存圖片可以把把硬盤上圖像像的名字存到到數(shù)據(jù)庫(kù)里,也也可以把整張張圖片存到數(shù)數(shù)據(jù)庫(kù)里。創(chuàng)建一張表存存放學(xué)生數(shù)據(jù)據(jù)如:create tablee stu ( id nummber(88), name vvarchaar(20), sex nuumber(10), age nuumber(3), sdate date, grade numbeer(2) defauult 1, class numbe

36、er(2), email varchhar2(550) );sex取數(shù)字來來表示更節(jié)省省空間,入學(xué)學(xué)時(shí)日期加個(gè)個(gè)s避免和關(guān)關(guān)鍵字沖突,可可以為某些字字段指定默認(rèn)認(rèn)值當(dāng)插入記記錄時(shí)沒有對(duì)對(duì)該字段賦新新值就以該默默認(rèn)值,其他他沒有默認(rèn)值值為nulll。五個(gè)約束條件件第一個(gè)叫非非空,第二個(gè)個(gè)叫唯一,第第三個(gè)叫主鍵鍵,第四個(gè)叫叫外鍵第五個(gè)個(gè)叫checck。當(dāng)我們們創(chuàng)建這張表表的時(shí)候,有有一個(gè)最簡(jiǎn)單單的條件字段段非空nott nulll。在Oraacle里面面約束條件也也可以看成一一個(gè)對(duì)象,能能為之取一個(gè)個(gè)名字,加一一個(gè)關(guān)鍵字cconstrraint+約束名,如如name varchhar(2) con

37、sstrainnt stuu_namee_nn nnot nuull,不起時(shí)系統(tǒng)統(tǒng)自動(dòng)起名字字我們不用管管了。唯一約約束的意思是是在這個(gè)字段段里面所有的的記錄不能重重復(fù),如id nnumberr(8) uuniquee,這屬于字段段級(jí)的約束;字段級(jí)的約約束有些限制制,比如要某某些字段組合合不能重復(fù),還有就是兩個(gè)空值它不認(rèn)為是重復(fù)的。要達(dá)到表級(jí)約束方法是在最后一個(gè)字段寫完后加一句如:constraint stu_name_email_uniunique(emaill,namee)。主鍵(priimary key)是是可以唯一標(biāo)標(biāo)示整條記錄錄的東西,它代表表的意思是既既不能為空又又不能重復(fù),比如學(xué)

38、生學(xué)號(hào)。E-mail做主鍵不好因?yàn)樗梢詾閚ull,同時(shí)索引的時(shí)候數(shù)字比字符串效率高。如id number(8) primary key ,也可以加在表級(jí),如constraint stu_id_pk primary key(id),主鍵也可以是多個(gè)字段組合。外鍵約束建立立在一張表的的兩個(gè)字段上上或者是兩張張表的兩個(gè)字字段上,是比比較麻煩的一一種約束。在在emp和ddept就有有外鍵約束,往emp里加記錄的時(shí)候不允許再dept里沒有的部門編號(hào)。class number(2) references class(id),參考class這張表的id字段,當(dāng)然也可以加在表級(jí)上:constraint fo

39、reign key (class) references class(id),。注意在寫外鍵約束的時(shí)候,stu里的class叫參考字段,class里的id叫被參考字段,加外鍵的前提是被參考字段必須是主鍵。刪一條記錄的時(shí)候首先看有沒有其他字段參考它,有的話是無法刪除的,違反了完整約束條件。Check約約束用得比較較少,在寫mmis系統(tǒng)時(shí)時(shí)數(shù)據(jù)在Jaava程序里里就已經(jīng)校驗(yàn)驗(yàn)過了。修改改表結(jié)構(gòu)是在在現(xiàn)有表上修修改。在任何何項(xiàng)目開發(fā)時(shí)時(shí)候建表的SSQL語句是是要保存下來來的,所以可可以將表整個(gè)個(gè)刪掉再建。添添加字段allter ttable +表名+aadd(字段段名+數(shù)據(jù)類類型)如allter t

40、table dept22 add(dphonne varrchar22(11);刪除某個(gè)個(gè)字段如allter ttable dept22 dropp(dphoone);還還可以修改字字段的數(shù)據(jù)類類型,如果里里面已經(jīng)有數(shù)數(shù)據(jù)修改的后后果應(yīng)不影響響原來存的記記錄值。在Oraclle里面看當(dāng)當(dāng)前用戶下有有哪些表,哪哪些約束,哪哪些視圖等等等這些信息被被單獨(dú)地裝在在一張表里面面,稱作數(shù)據(jù)據(jù)字典表。uuser_ttabless里面裝的是是當(dāng)前用戶共共有多少?gòu)埍肀?,里面字段可多多了,我們關(guān)關(guān)心的是taable_nname。查查詢當(dāng)前用戶戶下有哪些視視圖:sellect vview_nname ffrom

41、uuser_vviews;查詢當(dāng)前用用戶下有哪些些表:sellect ttable_name from user_tablees;查詢當(dāng)當(dāng)前用戶下有有哪些約束:selecct connstraiint_naame,tablee_namee fromm userr_consstrainnts;。user_tablees、user_consttraintts、user_viewss這些都是數(shù)數(shù)據(jù)字典表,那么一共有有多少個(gè)數(shù)據(jù)據(jù)字典表呢?Oraclle專門有另另外一張表存存放數(shù)據(jù)字典典表的表叫做做dictiionaryy,它總共兩兩個(gè)字段一個(gè)個(gè)叫tablle_namme數(shù)據(jù)字典典表的名字、還還有一個(gè)

42、叫ccommennts對(duì)于這這張數(shù)據(jù)字典典表的描述??偣灿?00多個(gè)數(shù)據(jù)字典表,這就是Oracle的DBA總是背著個(gè)小本本的原因,你要背是不可能的。索引就相當(dāng)于于字典里的索索引一樣,它它在Oraccle里相當(dāng)當(dāng)于一種新的的數(shù)據(jù)庫(kù)對(duì)象象,建立索引引的方法crreate indexx idx_stu_eemil oon stuu (emaail);也也可以在字段段組合上建立立索引,以后后在查詢組合合時(shí)效率就高高,刪除索引引同刪除表方方法類似。忘了自己有有哪些索引可可以采用seelect indexx_namee fromm userr_indeexse;當(dāng)當(dāng)你給某張表表的字段加主主鍵或唯一性性約束

43、的時(shí)候候。建立索引引的用處是當(dāng)當(dāng)你建立了索索引后取訪問問相應(yīng)數(shù)據(jù)的的時(shí)候效率會(huì)會(huì)很高。注意意說的是讀的效率高了了,但存的效效率反而低了了,因?yàn)槟愕玫猛瑫r(shí)往索引引表里加索引引值,會(huì)占用用大量的空間間。記住一點(diǎn)不不要輕易建立立索引,除非非覺得訪問量量特別大時(shí)。視圖前面也提提過,它是一一張?zhí)摫?,?yán)嚴(yán)格來講就是是一個(gè)子查詢?cè)儭@盟煽梢院?jiǎn)化我們們的查詢復(fù)雜雜度,同時(shí)它它也有不好的的地方,就是是表結(jié)構(gòu)改了了它也得跟著著改動(dòng),增加加了維護(hù)的難難度。視圖有有些其他功能能,比如說我我有一個(gè)數(shù)據(jù)據(jù)庫(kù),它里面面存了所有的的產(chǎn)品信息,而有一個(gè)供應(yīng)商他想看我產(chǎn)品的信息,如果我把整張表都給他看那么關(guān)鍵信息他就全部都看

44、走了,我的銷量有多少等等。我可以建立一個(gè)視圖里面只包含我想要給他看的內(nèi)容。序列是Oraacle數(shù)據(jù)據(jù)庫(kù)獨(dú)有的東東西,它產(chǎn)生生一個(gè)唯一、不不間斷的序列列,作用是一一般做主鍵。如下我們要存儲(chǔ)BBS里的帖子建立一張表:create tablee artiicle (id numbber,title vvarchaar2(10024),cont loong);如果要加入一篇篇文章,采用用這種做法sselectt max(id) ffrom aarticlle;然后知知道了id往往里插,但若若有另外一個(gè)個(gè)客戶端在做做數(shù)據(jù)插入同同時(shí)也在執(zhí)行行完上面一條條語句插入了了一條記錄就就會(huì)導(dǎo)致數(shù)據(jù)據(jù)不一致的現(xiàn)現(xiàn)象。

45、為此我我們可以創(chuàng)建建一個(gè)seqquencee,每次插的的時(shí)候訪問它它的一個(gè)屬性性nextvval就會(huì)得得到不重復(fù)的的id,實(shí)際際上它是在內(nèi)內(nèi)部做了同步步的。六范式就是數(shù)據(jù)據(jù)庫(kù)設(shè)計(jì)的一一些規(guī)則,而而它又是由一一個(gè)姓范的提出的。講講到設(shè)計(jì)其實(shí)實(shí)是很復(fù)雜的的事情,不能能指望用幾條條規(guī)則把所有有的都總結(jié)出出來(你在造造永動(dòng)機(jī),追追求銀彈siilver bulleet),所以有時(shí)要要具體問題具具體分析,該該打破三范式式的時(shí)候還是是要敢于打破破。三范式追求的的是這樣的目目標(biāo):不存在在冗余數(shù)據(jù),換換句話說就是是同樣的數(shù)據(jù)據(jù)不存第二遍遍。當(dāng)然除了冗冗余性外還有有一些邊緣性性的要求,不不是很重要,講到的時(shí)候再說

46、。第一范式的第第一個(gè)要求-要有主鍵;第二個(gè)要求求-列不可分分,不能說姓姓名我還要分分成姓和名。第二范式當(dāng)一一張表里有多多個(gè)字段作為為組合主鍵的的時(shí)候,非主主鍵的字段不不能夠依賴于于部分主鍵,多對(duì)多關(guān)系的表應(yīng)分割成三張表,如前一個(gè)面試題。第三范式是不不能存在傳遞遞依賴,即除除了主鍵之外外的其他字段段必須直接依依賴于主鍵。比比如emp表表里的depptno依賴于emppno,而lloc依賴于于empnoo所以不能放放一張表里。七PL_SQLL是Oraccle里面的的一個(gè)編程語語言,比較有有用,在Orracle內(nèi)內(nèi)部寫一些存存儲(chǔ)過程,觸觸發(fā)器,函數(shù)數(shù)?;旧厦恳灰环N數(shù)據(jù)庫(kù)都都有這么一個(gè)個(gè)語言,SQQ

47、L-Serrver叫做做T_SQLL,如果每個(gè)個(gè)都學(xué)比較累累,但是可以以取學(xué)一種然然后其他實(shí)在在要用時(shí)再查查上手要快很很多??赡芤砸院笪覀兘佑|觸的寫存儲(chǔ)過過程機(jī)會(huì)很少少,實(shí)際上我我們用SQLL和Javaa程序就可以以解決大部分分問題了,這這只是讓大家家有個(gè)了解知知道有這么回回事。PL語言用來來補(bǔ)充SQLL語言的,因因?yàn)楹笳卟粠в蟹种Ш脱h(huán),對(duì)于有有些問題求解解不便,而過過程語言可以以解決。PL_SQQL寫程序非非常固定,分分為四塊,第第一塊叫deeclaree,聲明各種種變量和游標(biāo)標(biāo)的地方,可可選;第二個(gè)個(gè)叫begiin,就是說說程序從這開開始執(zhí)行了;excepption是是catchh到

48、任何異常常時(shí)要執(zhí)行的的;end是是結(jié)束,后面面得有一個(gè)分分號(hào)。set serrverouutput on;begin dbms_ooutputt.put_line(hi,ppl_sqll!);end;/第一句是將內(nèi)部部環(huán)境變量打打開,默認(rèn)的的是關(guān)掉的,不不然看不到任任何輸出結(jié)果果。dbmss_outpput相當(dāng)于于systeem.outt而put_line相相當(dāng)于priintln。declaree v_namme varrchar22(20);begin v_namme := huannggangg; dbms_outpuut.putt_linee(v_naame);end;/變量名的寫法是是

49、v_+名字字,聲明的時(shí)時(shí)候是變量名名在前,類型型在后;賦值值語句有點(diǎn)像像pascaal冒號(hào)等號(hào)號(hào);declaree v_naame nuumber := 0; begin v_naame := 2/v_name; dbmss_outpput.puut_linne(v_nname); excepttion whenn otheers thhen dbbms_ouutput.put_lline(Errorr!); end; /當(dāng)檢測(cè)到異常時(shí)時(shí)才執(zhí)行exxceptiion,whhen otthers then 這樣做就相相當(dāng)于一張大大網(wǎng)子,肯定定能把異常捕捕獲到。PL_SQLL變量聲明規(guī)規(guī)則:變量名

50、名不能夠使用用保留字(OOraclee里保留字很很多所以推薦薦使用v_+名字,這樣樣不易沖突),如select、from等;第一個(gè)字符必須是字母;變量名最多包含30個(gè)字符;不要與數(shù)據(jù)庫(kù)的表或者列同名;每一行只能聲明一個(gè)變量。常用變量類型7種:binary_integer整數(shù)主要是計(jì)數(shù)而不是用來表示字段類型(用來for循環(huán),數(shù)組下標(biāo),效率比較高,Oracle追求的目標(biāo));number數(shù)字類型;char定長(zhǎng)字符串;date日期;long長(zhǎng)字符串可達(dá)2GB;boolean布爾可取true、false或null值,建議大家布爾類型在用的時(shí)候一定要給一個(gè)初值,否則是null。declaree v_tee

51、mp nuumber(1); v_coount bbinaryy_inteeger :=0; v_sal numbeer(7,22) := 4000.00; v_datee datee := ssysdatte; v_pi cconstaant nuumber := 3.14; v_valiid booolean := faalse; v_namee varcchar2(20) nnot nuull :=myNaame; begin dbmss_outpput.puut_linne(v_temp valuee:|vv_datee); end; /dbms_ouutput.put_lline不能

52、能打印處布爾爾類型的值。Constant相當(dāng)于Java的final ,not null對(duì)變量進(jìn)行限制。Oraclee里面的變量量經(jīng)常用來存存儲(chǔ)某一張表表的某個(gè)字段段的值,使用用%typee屬性為了解解決表里字段段的變動(dòng)與聲聲明變量類型型一致。在PPL_SQLL里面可以使使用 兩個(gè)短短橫線注釋掉掉一行,注釋釋掉多行的時(shí)時(shí)候用/* */。declaree v_emmpno nnumberr(4); v_emmpno2 emp.eempno%type; v_emmpno3 v_emppno2%ttype; begin dbmss_outpput.puut_linne(Teest); end;%typ

53、e可以以看做變量的的一個(gè)屬性,指指示其類型;引用某張表表某個(gè)字段方方法如v_eempno22 emp.empnoo%typee;。下面接著講PPL_SQLL里面復(fù)雜的的變量,可以以定義復(fù)合變變量,有兩種種:Tablle相當(dāng)于JJava里的的數(shù)組;Reecord相相當(dāng)于Javva里的類,暫暫且這樣理解解。要指定ttable的的數(shù)據(jù)類型,比比較復(fù)雜是這這樣來做type type_tablee_emp_empnoo is ttable of emmp.emppno%tyype inndex bby binnary_iintegeer;typpe定義了一一種新的數(shù)據(jù)據(jù)類型名字叫叫type_tablee

54、_emp_empnoo,然后可以以用它定義新新變量如 vv_empnnos tyype_taable_eemp_emmpno;。比較有意思的是下標(biāo)可以取負(fù)值如v_empnos(-1)。是什么促使了了recorrd類型數(shù)據(jù)據(jù)的出現(xiàn)呢?我們現(xiàn)在寫寫的是PL_SQL,它它最主要用于于操縱表,表表里面有字段段、記錄,如如果把一條記記錄放一個(gè)變變量里以后用用起來要方便便得多。聲明明這種類型的的方式如:declaree type type_recorrd_deppt is recorrd( depttno deept.deeptno%type, dnamme deppt.dnaame%tyype, loc

55、 dept.loc%ttype); v_temmp typpe_reccord_ddept;begin v_temmp.depptno := 50; v_temmp.dnaame := aaaaa; v_temmp.locc := bj; dbms_outpuut.putt_linee(v_teemp.deeptno| | v_ttemp.ddname);end;/這樣聲明還有一一個(gè)弊病,那那就是當(dāng)字段段改變時(shí)控制制起來比較煩煩人,為此引引入rowttype屬性性來聲明reecord變變量。只需:declaree v_temmp deppt%rowwtype;begin v_temmp.dep

56、ptno := 50; v_temmp.dnaame := aaaaa; v_temmp.locc := bj; dbms_outpuut.putt_linee(v_teemp.deeptno| | v_ttemp.ddname);end;/PL_SQLL語句里的sselectt語句只能返返回一條記錄錄,且sellect語句句里面必須有有個(gè)intoo或使用游標(biāo)標(biāo),還要保證證有且僅有一一條記錄被返返回,這是它它比較特別的的地方,不然然會(huì)報(bào)錯(cuò)。在PL_SSQL里面使使用inseert、deelete、uupdatee后加上coommit不不然起不了作作用有時(shí),只只不過。同時(shí)還有這這么一個(gè)需求求-執(zhí)

57、行上述述語句以后有有多少條記錄錄受影響(除除selecct,對(duì)它來來說沒多大意意義),這樣樣做:dbms_ouutput.put_lline(ssql%roowcounnt|條記錄錄受影響);sql代代表剛剛執(zhí)行行完的sqll語句,而rrowcouunt代表剛剛剛執(zhí)行完的的sql語句句影響了多少少條記錄。如果在PL_SQL里創(chuàng)創(chuàng)建一張表得得這樣寫:eexecutte immmediatte crreate tablee T(nnnn varrchar22(20) deffault aaaa); 由于外面已已經(jīng)有單引號(hào)號(hào)了所以里面面的一個(gè)單引引號(hào)得用兩個(gè)個(gè)代表一個(gè)。default是給一個(gè)默認(rèn)值。

58、PL_SQLL里條件語句句是形如iff (條件) thenn elsiif (條件件) theen elsee end if;注意意最后一個(gè)eelse后沒沒有thenn,其他條件件后有,而且且elsiff沒有那個(gè)ee,最后以eend iff;結(jié)束。PL_SQLL里也有三種種循環(huán),首先先看第一種,如下:declaree i binnary_iintegeer :=00;begin loopdbms_ouutput.put_lline(ii);i:= i+11;exit whhen (ii=11); end lloop;end;這也類似于Jaava里的ddo -whhile循環(huán)環(huán);第二種,如下:d

59、eclaree j binnary_iintegeer :=11;begin whilee j111 looppdbms_ouutput.put_lline(jj);j := j+1; end lloop;end;這也類似于Jaava里的wwhile循循環(huán);第三種,如下:begin beginn forr k inn 1.110 looop ddbms_ooutputt.put_line(k); endd loopp; forr k inn reveerse 11.10 loop ddbms_ooutputt.put_line(k); endd loopp;end;這類似于Javva里的foo

60、r循環(huán),rreversse表示逆序序循環(huán),1.100指定循環(huán)范范圍。PL_SQLL里也可以逮逮某種類型的的錯(cuò)誤,Jaava里每一一種exceeptionn都有相應(yīng)的的類為代表,同同理PL_SSQL里也一一樣,如noo_dataa_founnd/tooo_manyy_rowss,學(xué)語言得得學(xué)會(huì)類比。下面舉個(gè)例子給大家看一下,本來錯(cuò)誤處理也不是我們的重點(diǎn)。declaree v_temmp empp.empnno%typpe;begin selecct emppno innto v_temp from emp wheere deeptno=10; dbms_outpuut.putt_linee(v_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論