九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

PLSQL編程基礎(chǔ)

上傳人:ha****u 文檔編號(hào):244877600 上傳時(shí)間:2024-10-06 格式:PPT 頁(yè)數(shù):39 大?。?91.99KB
收藏 版權(quán)申訴 舉報(bào) 下載
PLSQL編程基礎(chǔ)_第1頁(yè)
第1頁(yè) / 共39頁(yè)
PLSQL編程基礎(chǔ)_第2頁(yè)
第2頁(yè) / 共39頁(yè)
PLSQL編程基礎(chǔ)_第3頁(yè)
第3頁(yè) / 共39頁(yè)

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《PLSQL編程基礎(chǔ)》由會(huì)員分享,可在線閱讀,更多相關(guān)《PLSQL編程基礎(chǔ)(39頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,第,7,章,PL/SQL,編程基礎(chǔ),前面所學(xué)習(xí)的,SQL,是操作關(guān)系性數(shù)據(jù)庫(kù)的一種通用語(yǔ)言,但是,SQL,本身是一種非過(guò)程化的語(yǔ)言,即不用指明執(zhí)行的具體方法和途徑,而是簡(jiǎn)單地調(diào)用相應(yīng)語(yǔ)句直接取得結(jié)果即可。所以,SQL,本身并不適合在復(fù)雜的業(yè)務(wù)流程下使用,為了解決這一問(wèn)題,,Oracle,提供了,PL/SQL,編程,這是一種過(guò)程化編程

2、語(yǔ)言,與,JAVA,語(yǔ)言一樣關(guān)注于處理細(xì)節(jié),可以實(shí)現(xiàn)較為復(fù)雜的業(yè)務(wù)邏輯。,7.1,PL/SQL,簡(jiǎn)介,PL/SQL,語(yǔ)法結(jié)構(gòu),DECLARE,-,聲明部分,例如:定義變量、常量、游標(biāo),BEGIN,-,程序編寫(xiě)、,SQL,語(yǔ)句,EXECEPTION,-,處理異常,END;,/,聲明部分(,DECLARE,),:包含變量定義、用戶(hù)定義的,PL/SQL,類(lèi)型、游標(biāo)、引用 的函數(shù)或過(guò)程。,執(zhí)行部分(,BEGIN,),:包含變量賦值、對(duì)象初始化、條件結(jié)構(gòu)、迭代結(jié)構(gòu)、嵌套的,PL/SQL,塊,或是對(duì)局部或者存儲(chǔ),PL/SQL,命名塊的調(diào)用。,異常部分(,exception,),:包含錯(cuò)誤處理語(yǔ)句,該語(yǔ)句可

3、以像執(zhí)行部分一樣使用所有項(xiàng)。,結(jié)束部分(,END,),:,程序執(zhí)行到,END,表示結(jié)束,分號(hào)用戶(hù)結(jié)束塊,正斜杠(,/,)執(zhí)行塊程序,既沒(méi)有變量,也沒(méi)有流程控制(分支、循環(huán))。,PL/SQL,與,SQL,區(qū)別:,SQL,PL/SQL,PL/SQL,是結(jié)構(gòu)化和過(guò)程化的結(jié)合體。,每條,SQL,語(yǔ)句逐一發(fā)送給數(shù)據(jù)庫(kù)。,一次性將多條,SQL,語(yǔ)言一起發(fā)送給數(shù)據(jù)庫(kù),7.1,PL/SQL,簡(jiǎn)介,最簡(jiǎn)單的,PL/SQL,塊可以不做任何事情,但是在,PL/SQL,編程過(guò)程中要求,執(zhí)行塊至少要有一條語(yǔ)句,即使這條語(yǔ)句只是編寫(xiě)一個(gè),NULL,也行。,范例:,編寫(xiě)不做任何工作的,PL/SQL,塊。,BEGIN,NUL

4、L;,END;,/,范例:,編寫(xiě)一個(gè)簡(jiǎn)單的,PL/SQL,程序,DECLARE,v_num number;,BEGIN,v_num:=30;,DBMS_output.put_line(v_num,變量的內(nèi)容是:,|v_num);,END;,7.1,PL/SQL,簡(jiǎn)介,范例:,編寫(xiě),PL/SQL,塊,輸入一個(gè)雇員編號(hào),而后取得指定的雇員姓名。,Declare,v_eno number;,v_ename varchar2(10);,Begin,V_eno:=-,由鍵盤(pán)輸入雇員編號(hào),Select ename into v_ename from emp where empno=v_eno;,DBMS_

5、OUTPUT.put_line(,編號(hào)為,:|v_eno|,雇員的名字為:,|v_ename);,End;,7.1,PL/SQL,簡(jiǎn)介,7.2,變量的聲明與賦值,變量聲明并使用變量:,變量名稱(chēng)可以有字母、數(shù)字、,_,、,$,、,#,等組成。,所有變量名稱(chēng)要求以字母開(kāi)頭,不能是,Oracle,中的保留字,變量的長(zhǎng)度最多只能為,30,個(gè)字符,變量不區(qū)分大小寫(xiě),7.2,變量的聲明與賦值,聲明變量語(yǔ)法:,變量名稱(chēng),CONSTANT,類(lèi)型,not NULL:=value,使用,%TYPE,聲明變量類(lèi)型:,在編寫(xiě),PL/SQL,程序時(shí),如果希望某一個(gè)變量與指定數(shù)據(jù)表中某一列的類(lèi)型一樣,則可以采用,“變量定

6、義”表名稱(chēng),.,表名稱(chēng),%TYPE,的格式,7.2,變量的聲明與賦值,Declare,v_eno emp.empno%type;,v_ename emp.ename%type;,Begin,DBMS_output.put_line(,請(qǐng)輸入雇員編號(hào):,);,v_eno:=,select ename into v_ename from emp where empno=v_eno;,DBMS_output.put_line(,編號(hào)為:,|v_eno|,雇員的名字為:,|v_ename);,end;,7.2,變量的聲明與賦值,使用,%ROWTYPE,聲明變量類(lèi)型,PL/SQL,提供了一種,%ROWT

7、YPE,,使用此標(biāo)記可以定義表中一行記錄的類(lèi)型。,當(dāng)用戶(hù)使用了“,selectinto,”將表中的一行記錄設(shè)置為,ROWTYPE,類(lèi)型的變量中時(shí),就可以利用“,rowtype,變量,.,表字段”的方式取得表中每行對(duì)應(yīng)的列數(shù)據(jù)。,7.2,變量的聲明與賦值,Declare,v_deptrow dept%rowtype;-,裝載一行,dept,記錄,Begin,select*into v_deptrow from dept where deptno=10;,DBMS_output.put_line(,部門(mén)編號(hào):,|v_deptrow.deptno|,名稱(chēng):,|v_deptrow.dname|,位置:

8、,|v_deptrow.loc);,End;,7.3,標(biāo)量類(lèi)型,數(shù)值型,標(biāo)量類(lèi)型,字符型,日期型,大對(duì)象,布爾,7.3,標(biāo)量類(lèi)型,7.3,標(biāo)量類(lèi)型,7.3,標(biāo)量類(lèi)型,7.3,標(biāo)量類(lèi)型,7.4,程序結(jié)構(gòu),PL/SQL,程序與其他編程語(yǔ)言一樣,也擁有自己的,3,中程序結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。,開(kāi)始,語(yǔ)句,1,語(yǔ)句,2,語(yǔ)句,n,結(jié)束,順序結(jié)構(gòu),判斷條件,語(yǔ)句,2,語(yǔ)句,n,結(jié)束,語(yǔ)句,1,分支結(jié)構(gòu),語(yǔ)句,1,語(yǔ)句,2,判斷條件,循環(huán)結(jié)構(gòu),7.4.1,分支結(jié)構(gòu),IF,語(yǔ)句,7.4.1,分支結(jié)構(gòu),范例:,查詢(xún),emp,表的工資。輸入員工編號(hào),根據(jù)編號(hào)查詢(xún)工資。如果工資高于,3000,元,

9、則顯示高工資;如果工資大于,2000,元?jiǎng)t顯示中等工資;如果小于,2000,元,則顯示低工資。,DECLARE,v_empSalemp.sal%TYPE;-,定義變量與,emp.sal,字段類(lèi)型相同,v_empNameemp.ename%TYPE;-,定義變量與,emp.ename,字段類(lèi)型相同,v_enoemp.empno%TYPE;-,定義變量與,emp.empno,字段類(lèi)型相同,BEGIN,v_eno:=-,用戶(hù)輸入要查找的雇員編號(hào),-,根據(jù)輸入的雇員編號(hào)查找雇員姓名及工資,SELECT ename,sal INTO v_empName,v_empSal FROM emp WHERE e

10、mpno=v_eno;,IF v_empSal 3000 THEN-,判斷,DBMS_OUTPUT.put_line(v_empName|,的工資屬于高工資!,);,ELSIF v_empSal 2000 THEN-,判斷,DBMS_OUTPUT.put_line(v_empName|,的工資屬于中等工資!,);,ELSE,DBMS_OUTPUT.put_line(v_empName|,的工資屬于低工資!,);,END IF;,END;,7.4.1,分支結(jié)構(gòu),范例:,用戶(hù)輸入一個(gè)雇員編號(hào),根據(jù)它所在的部門(mén)給上漲工資,規(guī)則:,10,部門(mén)上漲,10%,,,20,上漲,20%,,,30,上漲,30%

11、,;,但是要求最高不能超過(guò),5000,,超過(guò),5000,就停留在,5000,。,7.4.1,分支結(jié)構(gòu),7.4.1,分支結(jié)構(gòu),DECLARE,v_empSalemp.sal%TYPE;-,定義變量與,emp.sal,字段類(lèi)型相同,v_dnoemp.deptno%TYPE;-,定義變量與,emp.deptno,字段類(lèi)型相同,v_enoemp.empno%TYPE;-,定義變量與,emp.empno,字段類(lèi)型相同,BEGIN,v_eno:=-,用戶(hù)輸入要查找的雇員編號(hào),SELECT deptno,sal INTO v_dno,v_empSal FROM emp WHERE empno=v_eno;,

12、IF v_dno=10 THEN,IF v_empSal*1.1 5000 THEN,UPDATE emp SET sal=5000 WHERE empno=v_eno;,ELSE,UPDATE emp SET sal=sal*1.1 WHERE empno=v_eno;,END IF;,ELSIF v_dno=20 THEN,IF v_empSal*1.2 5000 THEN,UPDATE emp SET sal=5000 WHERE empno=v_eno;,ELSE,UPDATE emp SET sal=sal*1.2 WHERE empno=v_eno;,END IF;,ELSIF v

13、_dno=30 THEN,IF v_empSal*1.3 5000 THEN,UPDATE emp SET sal=5000 WHERE empno=v_eno;,ELSE,UPDATE emp SET sal=sal*1.3 WHERE empno=v_eno;,END IF;,ELSE,null;,END IF;,END;,7.4.1,分支結(jié)構(gòu),CASE,語(yǔ)句,Case,語(yǔ)句是一種多條件的判斷語(yǔ)句,其功能與,IFelseifelse,類(lèi)似,Case,語(yǔ)法:,Case,變量,when,值,|,表達(dá)式,THEN,執(zhí)行語(yǔ)句塊;,when,值,|,表達(dá)式,THEN,執(zhí)行語(yǔ)句塊;,Else,條件都不

14、滿(mǎn)足時(shí)執(zhí)行語(yǔ)塊;,End case,7.4.1,分支結(jié)構(gòu),范例:,使用,CASE,進(jìn)行多條件判斷,DECLARE,v_salaryemp.sal%TYPE;,v_enoemp.empno%TYPE;,BEGIN,v_eno:=,SELECT sal INTO v_salary FROM emp WHERE empno=v_eno;,CASE,WHEN v_salary=3000 THEN,DBMS_OUTPUT.put_line(雇員:|v_eno|的收入為高工資。);,WHEN v_salary=2000 AND v_salary=3;,v_i:=v_i+1;,END LOOP;,END;,

15、7.4.2,循環(huán)結(jié)構(gòu),范例:,使用,WHILELOOP,循環(huán),DECLARE,v_i NUMBER:=1;-,定義一個(gè)變量,用于循環(huán),BEGIN,WHILE(v_i 10 AND v_data 0 THEN-,部門(mén)存在,RAISE_APPLICATION_ERROR(-20888,此部門(mén)編號(hào)已存在,請(qǐng)重新輸入!,);,ELSE-,部門(mén)不存在,INSERT INTO dept(deptno,dname,loc)VALUES(v_dno,v_dna,v_dloc);,DBMS_OUTPUT.put_line(,新部門(mén)增加成功!,);,COMMIT;,END IF;,EXCEPTION,WHEN others THEN,DBMS_OUTPUT.put_line(SQLERRM);,ROLLBACK;,END;,范例:,使用,PL/SQL,增加部門(mén)信息,

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

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!