數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 6.6掌握DMSQL程序中的控制結(jié)構(gòu)_第1頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 6.6掌握DMSQL程序中的控制結(jié)構(gòu)_第2頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 6.6掌握DMSQL程序中的控制結(jié)構(gòu)_第3頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 6.6掌握DMSQL程序中的控制結(jié)構(gòu)_第4頁(yè)
數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程(達(dá)夢(mèng)DM8) 課件 6.6掌握DMSQL程序中的控制結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)基礎(chǔ)(基于達(dá)夢(mèng)DM8)數(shù)據(jù)庫(kù)程序設(shè)計(jì)66.6掌握DMSQL程序中的控制結(jié)構(gòu)0203循環(huán)控制結(jié)構(gòu)分支結(jié)構(gòu)04順序結(jié)構(gòu)01語(yǔ)句塊05其他語(yǔ)句6.6.1語(yǔ)句塊語(yǔ)句塊是DMSQL程序的基本單元。每個(gè)語(yǔ)句塊由關(guān)鍵字DECLARE、BEGIN、EXCEPTION和END劃分為聲明部分、執(zhí)行部分和異常處理部分。其中執(zhí)行部分是必需的,說(shuō)明和異常處理部分可以省略。語(yǔ)句塊可以嵌套,它可以出現(xiàn)在任何其他語(yǔ)句可以出現(xiàn)的位置。[DECLARE<變量說(shuō)明>{,<變量說(shuō)明>};]BEGIN<執(zhí)行部分>[<異常處理部分>]END6.6.2分支結(jié)構(gòu)分支結(jié)構(gòu)先執(zhí)行一個(gè)判斷條件,根據(jù)判斷條件的執(zhí)行結(jié)果執(zhí)行對(duì)應(yīng)的一系列語(yǔ)句。IF語(yǔ)句CASE語(yǔ)句SWITCH語(yǔ)句分支結(jié)構(gòu)6.6.2分支結(jié)構(gòu)-IF語(yǔ)句IF語(yǔ)句控制執(zhí)行基于布爾條件的語(yǔ)句序列,以實(shí)現(xiàn)條件分支控制結(jié)構(gòu)。IF<條件表達(dá)式>THEN<執(zhí)行部分>;[<ELSEIF_OR_ELSIF><條件表達(dá)式>THEN<執(zhí)行部分>;{<ELSEIF__OR_ELSIF><條件表達(dá)式>THEN<執(zhí)行部分>;}][ELSE<執(zhí)行部分>;]ENDIF;<ELSEIF_OR_ELSIF>::=ELSEIF|ELSIF6.6.2分支結(jié)構(gòu)-IF語(yǔ)句IF條件THEN

代碼ENDIF;IF條件THEN

代碼1ELSE

代碼2ENDIF;IF條件1THEN

代碼1ELSEIF條件2THEN

代碼2…ELSE

代碼NENDIF6.6.2分支結(jié)構(gòu)-CASE語(yǔ)句CASE語(yǔ)句從系列條件中進(jìn)行選擇,并且執(zhí)行相應(yīng)的語(yǔ)句塊,主要有下面兩種形式:(1)簡(jiǎn)單形式:將一個(gè)表達(dá)式與多個(gè)值進(jìn)行比較,語(yǔ)法如下:CASE<條件表達(dá)式>WHEN<條件>THEN<執(zhí)行部分>;{WHEN<條件>THEN<執(zhí)行部分>;}[ELSE<執(zhí)行部分>]END[CASE];(2)搜索形式:對(duì)多個(gè)條件進(jìn)行計(jì)算,取第一個(gè)結(jié)果為真的條件,語(yǔ)法如下。CASEWHEN<條件表達(dá)式>THEN<執(zhí)行部分>;{WHEN<條件表達(dá)式>THEN<執(zhí)行部分>;}[ELSE<執(zhí)行部分>]END[CASE];6.6.2分支結(jié)構(gòu)-SWITCH語(yǔ)句DMSQL程序支持C語(yǔ)法風(fēng)格的SWITCH分支結(jié)構(gòu)語(yǔ)句,SWITCH語(yǔ)句的功能與簡(jiǎn)單形式的CASE語(yǔ)句類似,用于將一個(gè)表達(dá)式與多個(gè)值進(jìn)行比較,并執(zhí)行相應(yīng)的語(yǔ)句塊,語(yǔ)法如下:SWITCH(<條件表達(dá)式>){CASE<常量表達(dá)式>:<執(zhí)行部分>;BREAK;{CASE<常量表達(dá)式>:<執(zhí)行部分>;BREAK;}[DEFAULT:<執(zhí)行部分>;]}6.6.3循環(huán)控制結(jié)構(gòu)FORALL語(yǔ)句REPEAT語(yǔ)句FOR語(yǔ)句WHILE語(yǔ)句05040302循環(huán)控制結(jié)構(gòu)LOOP語(yǔ)句016.6.3循環(huán)控制結(jié)構(gòu)-LOOP語(yǔ)句LOOP語(yǔ)句是基本類型的循環(huán)語(yǔ)句,LOOP語(yǔ)句循環(huán)重復(fù)執(zhí)行一系列語(yǔ)句,直到EXIT語(yǔ)句終止循環(huán)為止。LOOP<執(zhí)行部分>;ENDLOOP[標(biāo)號(hào)名];LOOP語(yǔ)句實(shí)現(xiàn)對(duì)一語(yǔ)句系列的重復(fù)執(zhí)行,是循環(huán)語(yǔ)句的最簡(jiǎn)單形式。LOOP和ENDLOOP之間的執(zhí)行部分將無(wú)限次地執(zhí)行,必須借助EXIT、GOTO或RAISE語(yǔ)句來(lái)跳出循環(huán)。6.6.3循環(huán)控制結(jié)構(gòu)-WHILE語(yǔ)句WHILE<條件表達(dá)式>LOOP<執(zhí)行部分>;ENDLOOP[標(biāo)號(hào)名];WHILE語(yǔ)句是基本類型的循環(huán)語(yǔ)句,WHILE語(yǔ)句循環(huán)檢測(cè)一個(gè)條件表達(dá)式,當(dāng)表達(dá)式的值為T(mén)RUE時(shí)就執(zhí)行循環(huán)體的語(yǔ)句序列。WHILE循環(huán)語(yǔ)句在每次循環(huán)開(kāi)始之前,先計(jì)算條件表達(dá)式,若該條件為T(mén)RUE,執(zhí)行部分被執(zhí)行一次,然后控制重新回到循環(huán)頂部。若條件表達(dá)式的值為FALSE,則結(jié)束循環(huán)。當(dāng)然,也可以通過(guò)EXIT語(yǔ)句來(lái)終止循環(huán)。6.6.3循環(huán)控制結(jié)構(gòu)-FOR語(yǔ)句FOR語(yǔ)句是基本類型的循環(huán)語(yǔ)句,F(xiàn)OR語(yǔ)句對(duì)一系列的語(yǔ)句重復(fù)執(zhí)行指定次數(shù)的循環(huán)。FOR<循環(huán)計(jì)數(shù)器>IN[REVERSE]<下限表達(dá)式>..<.上限表達(dá)式>LOOP<執(zhí)行部分>;ENDLOOP[標(biāo)號(hào)名];循環(huán)計(jì)數(shù)器是一個(gè)標(biāo)識(shí)符,它類似于一個(gè)變量,但是不能被賦值,且作用域限于FOR語(yǔ)句內(nèi)部。下限表達(dá)式和上限表達(dá)式用來(lái)確定循環(huán)的范圍,它們的類型必須和整型兼容。循環(huán)次數(shù)是在循環(huán)開(kāi)始之前確定的,即使在循環(huán)過(guò)程中下限表達(dá)式或上限表達(dá)式的值發(fā)生了改變,也不會(huì)引起循環(huán)次數(shù)的變化。6.6.3循環(huán)控制結(jié)構(gòu)-REPEAT語(yǔ)句REPEAT語(yǔ)句是基本類型的循環(huán)語(yǔ)句,REPEAT語(yǔ)句重復(fù)執(zhí)行一系列語(yǔ)句直至達(dá)到條件表達(dá)式的限制要求。REPEAT<執(zhí)行部分>;UNTIL<條件表達(dá)式>;REPEAT語(yǔ)句先執(zhí)行<執(zhí)行部分>,然后判斷<條件表達(dá)式>,若為T(mén)RUE則控制重新回到循環(huán)頂部,若為FALSE則退出循環(huán)。可以看出,REPEAT語(yǔ)句的執(zhí)行部分至少會(huì)執(zhí)行一次。6.6.3循環(huán)控制結(jié)構(gòu)-FORALL語(yǔ)句FORALL語(yǔ)句對(duì)一條DML語(yǔ)句執(zhí)行多次,當(dāng)DML語(yǔ)句中使用數(shù)組或嵌套表時(shí)可進(jìn)行優(yōu)化處理,能大幅提升性能。FORALL<循環(huán)計(jì)數(shù)器>IN<bounds_clause>[SAVEEXCEPTIONS]<fora11_dml_stmt>;<bounds_clause>::=<下限表達(dá)式>..<上限表達(dá)式>|INDICESOF<集合>[BETWEEN]<下限表達(dá)式>AND<上限表達(dá)式>|VALUESOF<集合><forall_dml_stmt>::=<INSERT語(yǔ)句>|<UPDATE語(yǔ)句>|<DELETE語(yǔ)句>|<MERGEINTO語(yǔ)句>6.6.4順序結(jié)構(gòu)GOTO語(yǔ)句NULL語(yǔ)句順序結(jié)構(gòu)GOTO語(yǔ)句的作用是無(wú)條件地跳轉(zhuǎn)到一個(gè)標(biāo)號(hào)名所在的位置,其語(yǔ)法為:GOTO<標(biāo)號(hào)名>;NULL語(yǔ)句不做任何事情,只是用于保證語(yǔ)法的正確性,或增加程序的可讀性。NULL語(yǔ)句的語(yǔ)法為:NULL;6.6.5其他語(yǔ)句<賦值對(duì)象>:=<值表達(dá)式>;或SET<賦值對(duì)象>=<值表達(dá)式>;賦值語(yǔ)句[CALL]

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論