流程控制語(yǔ)句_第1頁(yè)
流程控制語(yǔ)句_第2頁(yè)
流程控制語(yǔ)句_第3頁(yè)
流程控制語(yǔ)句_第4頁(yè)
流程控制語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩29頁(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)介

1、流程控制語(yǔ)句流程控制語(yǔ)句u課前預(yù)習(xí)課前預(yù)習(xí)u將手機(jī)調(diào)到靜音將手機(jī)調(diào)到靜音u認(rèn)真做筆記認(rèn)真做筆記u及時(shí)完成作業(yè)及時(shí)完成作業(yè)上課要求上課要求u掌握常用流程控制語(yǔ)句的語(yǔ)法格式掌握常用流程控制語(yǔ)句的語(yǔ)法格式u掌握常用掌握常用流程控制語(yǔ)句流程控制語(yǔ)句的基本使用方法的基本使用方法學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)學(xué)習(xí)內(nèi)容學(xué)習(xí)內(nèi)容u beginendbeginend語(yǔ)句語(yǔ)句u ifelseifelse語(yǔ)句語(yǔ)句u casecase語(yǔ)句語(yǔ)句u whilewhile語(yǔ)句語(yǔ)句u gotogoto語(yǔ)句語(yǔ)句u returnreturn語(yǔ)句語(yǔ)句u waitforwaitfor語(yǔ)句語(yǔ)句相關(guān)內(nèi)容 使用使用T-SQLT-SQL語(yǔ)言編程的時(shí)候,常

2、常要利語(yǔ)言編程的時(shí)候,常常要利用各種流程控制語(yǔ)句進(jìn)行用各種流程控制語(yǔ)句進(jìn)行順序順序、分支分支控制轉(zhuǎn)控制轉(zhuǎn)移、移、循環(huán)循環(huán)等操作。等操作。 T-SQL T-SQL提供了一組流程控制語(yǔ)句,包括提供了一組流程控制語(yǔ)句,包括條件控制語(yǔ)句、無(wú)條件控制語(yǔ)句、循環(huán)語(yǔ)句條件控制語(yǔ)句、無(wú)條件控制語(yǔ)句、循環(huán)語(yǔ)句和返回狀態(tài)值給調(diào)用例程的語(yǔ)句。和返回狀態(tài)值給調(diào)用例程的語(yǔ)句。 BEGINENDBEGINEND語(yǔ)句語(yǔ)句用來(lái)用來(lái)定義語(yǔ)句定義語(yǔ)句塊,塊,即將即將 BEGINENDBEGINEND內(nèi)的所有內(nèi)的所有T-SQLT-SQL語(yǔ)句視為一個(gè)語(yǔ)句視為一個(gè)單元單元執(zhí)行執(zhí)行。 在在實(shí)際應(yīng)用中,實(shí)際應(yīng)用中,BEGINBEGIN和和

3、ENDEND必須必須成對(duì)成對(duì)出現(xiàn)出現(xiàn)。 BEGINEND BEGINEND語(yǔ)句的基本語(yǔ)法格式為:語(yǔ)句的基本語(yǔ)法格式為:BEGINBEGINT-SQLT-SQL語(yǔ)句或語(yǔ)句塊語(yǔ)句或語(yǔ)句塊 ENDENDBEGINEND語(yǔ)句 BEGINEND BEGINEND語(yǔ)句一般與語(yǔ)句一般與IFELSE, IFELSE, WHILEWHILE等語(yǔ)句聯(lián)用,當(dāng)判斷條件符合需要執(zhí)等語(yǔ)句聯(lián)用,當(dāng)判斷條件符合需要執(zhí)行的兩個(gè)或多個(gè)語(yǔ)句時(shí),就需要使用行的兩個(gè)或多個(gè)語(yǔ)句時(shí),就需要使用BEGINENDBEGINEND語(yǔ)句將這些語(yǔ)句封裝成一個(gè)語(yǔ)語(yǔ)句將這些語(yǔ)句封裝成一個(gè)語(yǔ)句塊。句塊。 IFELSE語(yǔ)句 IFELSEIFELSE語(yǔ)句是條

4、件判斷語(yǔ)句,用于語(yǔ)句是條件判斷語(yǔ)句,用于實(shí)現(xiàn)選擇結(jié)構(gòu)。實(shí)現(xiàn)選擇結(jié)構(gòu)。 IFELSEIFELSE語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格式為:IF IF 條件表達(dá)式條件表達(dá)式T-SQLT-SQL語(yǔ)句或語(yǔ)句塊語(yǔ)句或語(yǔ)句塊 ELSEELSET-SQLT-SQL語(yǔ)句或語(yǔ)句塊語(yǔ)句或語(yǔ)句塊 當(dāng)當(dāng)IFIF后的條件成立時(shí)執(zhí)行其后的后的條件成立時(shí)執(zhí)行其后的T-SQLT-SQL語(yǔ)句。語(yǔ)句。 當(dāng)條件不成立時(shí),執(zhí)行當(dāng)條件不成立時(shí),執(zhí)行ELSEELSE后的后的T-SQLT-SQL語(yǔ)句,其中語(yǔ)句,其中ELSEELSE子句是可選項(xiàng)。子句是可選項(xiàng)。 如果沒(méi)有如果沒(méi)有ELSEELSE子句,當(dāng)條件不成立則執(zhí)子句,當(dāng)條件不成立則執(zhí)行行IFI

5、F語(yǔ)句后面的其他語(yǔ)句。語(yǔ)句后面的其他語(yǔ)句。 IFELSE IFELSE語(yǔ)句允許嵌套使用,可以在語(yǔ)句允許嵌套使用,可以在IFIF之之后或在后或在ELSEELSE下面,嵌套另一個(gè)下面,嵌套另一個(gè)IFIF語(yǔ)句,嵌套級(jí)語(yǔ)句,嵌套級(jí)數(shù)的限制取決于可用內(nèi)存。數(shù)的限制取決于可用內(nèi)存。IF IF IF IF ELSE ELSEELSEELSE IF IF ELSE ELSE IF IF ELSE ELSEIF IF IF IFELSEELSE IF IF ELSE ELSE IF IF ELSE ELSE IFIF【例例】輸出三個(gè)整數(shù)中的最大數(shù)。輸出三個(gè)整數(shù)中的最大數(shù)。DECLARE number1 INT,

6、number2 INT,number3 DECLARE number1 INT,number2 INT,number3 INT,tempINT,temp INT INTSET number1=52SET number1=52SET number2=38SET number2=38SET number3=66SET number3=66IF number1number2IF number1number3IF number1number3 BEGIN BEGIN PRINT PRINT 最大數(shù)為:最大數(shù)為: PRINT number1 PRINT number1 END ENDELSEELSE B

7、EGIN BEGIN PRINT PRINT 最大數(shù)為:最大數(shù)為: PRINT number3 PRINT number3 END ENDCASE語(yǔ)句CASECASE語(yǔ)句用于實(shí)現(xiàn)選擇結(jié)構(gòu),與語(yǔ)句用于實(shí)現(xiàn)選擇結(jié)構(gòu),與IFELSEIFELSE語(yǔ)語(yǔ)句相比,它能更方便地實(shí)現(xiàn)多重選擇的情況,句相比,它能更方便地實(shí)現(xiàn)多重選擇的情況,從而從而避免多重避免多重的的IFELSEIFELSE語(yǔ)句的語(yǔ)句的嵌套嵌套,使得,使得程序的結(jié)構(gòu)更加簡(jiǎn)練、清晰。程序的結(jié)構(gòu)更加簡(jiǎn)練、清晰。 簡(jiǎn)單簡(jiǎn)單CASECASE語(yǔ)句語(yǔ)句CASECASE語(yǔ)句語(yǔ)句 搜索搜索CASE CASE 語(yǔ)句語(yǔ)句簡(jiǎn)單簡(jiǎn)單CASECASE語(yǔ)句:語(yǔ)句:語(yǔ)法格式為

8、語(yǔ)法格式為CASE CASE 表達(dá)式表達(dá)式WHEN WHEN 表達(dá)式表達(dá)式 THEN THEN 結(jié)果表達(dá)式結(jié)果表達(dá)式ELSE ELSE 結(jié)果表達(dá)式結(jié)果表達(dá)式 ENDEND執(zhí)行過(guò)程執(zhí)行過(guò)程:1 1、首先計(jì)算、首先計(jì)算CASECASE后面的表達(dá)式,然后按指定順序與每個(gè)后面的表達(dá)式,然后按指定順序與每個(gè)WHENWHEN子句后的表達(dá)式進(jìn)行比較。子句后的表達(dá)式進(jìn)行比較。2 2、如果相等,則執(zhí)行對(duì)應(yīng)的、如果相等,則執(zhí)行對(duì)應(yīng)的WHENWHEN后的結(jié)果表達(dá)式,并退出后的結(jié)果表達(dá)式,并退出CASECASE結(jié)構(gòu)。結(jié)構(gòu)。3 3、若、若CASECASE后的表達(dá)式后的表達(dá)式與所有與所有WHENWHEN后的表達(dá)式均不相等

9、,則執(zhí)行后的表達(dá)式均不相等,則執(zhí)行ELSEELSE后的結(jié)果表達(dá)式。后的結(jié)果表達(dá)式。4 4、若若CASECASE后的表達(dá)式值與所有后的表達(dá)式值與所有WHENWHEN后的表達(dá)式均不相等,且后的表達(dá)式均不相等,且ELSEELSE結(jié)結(jié)果表達(dá)式被忽略,則返回果表達(dá)式被忽略,則返回NULLNULL值。值。搜索搜索CASE CASE 語(yǔ)句語(yǔ)句語(yǔ)法格式為語(yǔ)法格式為CASE CASE WHEN WHEN 條件表達(dá)式條件表達(dá)式 THEN THEN 結(jié)果表達(dá)式結(jié)果表達(dá)式ELSE ELSE 結(jié)果表達(dá)式結(jié)果表達(dá)式ENDEND執(zhí)行過(guò)程執(zhí)行過(guò)程:1 1、首先測(cè)試、首先測(cè)試WHENWHEN后的條件表達(dá)式,若為真,則后的條件表

10、達(dá)式,若為真,則執(zhí)行執(zhí)行THENTHEN后的結(jié)果表達(dá)式,否則執(zhí)行下一個(gè)后的結(jié)果表達(dá)式,否則執(zhí)行下一個(gè)WHENWHEN后的條件后的條件表達(dá)式的測(cè)試。表達(dá)式的測(cè)試。2 2、若所有、若所有WHENWHEN后的條件表達(dá)式都為假,則后的條件表達(dá)式都為假,則執(zhí)行執(zhí)行ELSEELSE后的結(jié)果表達(dá)式。后的結(jié)果表達(dá)式。3 3、若所有、若所有WHENWHEN后的條件表達(dá)式后的條件表達(dá)式都為假,且都為假,且ELSEELSE結(jié)果表達(dá)式被忽略,則返回結(jié)果表達(dá)式被忽略,則返回NULLNULL值。值。例:根據(jù)學(xué)生考試成績(jī)輸出等級(jí)例:根據(jù)學(xué)生考試成績(jī)輸出等級(jí)declare score declare score tinyin

11、ttinyintset score=82set score=82printprint case case when score=90 when score=90 then then 該學(xué)生考試成績(jī)優(yōu)秀該學(xué)生考試成績(jī)優(yōu)秀 when score=80 then when score=80 then 該學(xué)生考試成績(jī)良好該學(xué)生考試成績(jī)良好 when score=70 then when score=70 then 該學(xué)生考試成績(jī)一般該學(xué)生考試成績(jī)一般 when score=60 then when score=60 then 該學(xué)生考試成績(jī)及格該學(xué)生考試成績(jī)及格 else else 該學(xué)生考試成績(jī)不及

12、格該學(xué)生考試成績(jī)不及格 end endWHILE語(yǔ)句 WHILEWHILE語(yǔ)句用于實(shí)現(xiàn)循環(huán)結(jié)構(gòu),其功能是在滿語(yǔ)句用于實(shí)現(xiàn)循環(huán)結(jié)構(gòu),其功能是在滿足條件的情況下會(huì)重復(fù)執(zhí)行足條件的情況下會(huì)重復(fù)執(zhí)行T-SQLT-SQL語(yǔ)句或語(yǔ)句塊。語(yǔ)句或語(yǔ)句塊。 當(dāng)當(dāng)WHILEWHILE后面的條件為后面的條件為真真時(shí),重復(fù)執(zhí)行時(shí),重復(fù)執(zhí)行BEGIN END BEGIN END 之間的語(yǔ)句塊。之間的語(yǔ)句塊。 通常將通常將CONTINUECONTINUE或或BREAKBREAK語(yǔ)句和語(yǔ)句和WHILEWHILE語(yǔ)句語(yǔ)句配合使用。配合使用。 BREAK BREAK子句和子句和BREAKBREAK語(yǔ)句的語(yǔ)句的區(qū)別區(qū)別如下:如下

13、: 1 1、CONTINUECONTINUE語(yǔ)句語(yǔ)句的功能是使程序跳出本次循的功能是使程序跳出本次循環(huán),開(kāi)始執(zhí)行下一次循環(huán)。環(huán),開(kāi)始執(zhí)行下一次循環(huán)。 例:統(tǒng)計(jì)全班數(shù)據(jù)庫(kù)這門(mén)課及格的人數(shù)例:統(tǒng)計(jì)全班數(shù)據(jù)庫(kù)這門(mén)課及格的人數(shù) 2 2、BREAKBREAK語(yǔ)句語(yǔ)句的功能是立即終止循環(huán),結(jié)束整的功能是立即終止循環(huán),結(jié)束整個(gè)個(gè)WHILEWHILE語(yǔ)句的執(zhí)行,并繼續(xù)執(zhí)行語(yǔ)句的執(zhí)行,并繼續(xù)執(zhí)行WHILEWHILE語(yǔ)句后的語(yǔ)句后的其他語(yǔ)句。其他語(yǔ)句。 例:統(tǒng)計(jì)全班數(shù)據(jù)庫(kù)這門(mén)課是否都及格了。例:統(tǒng)計(jì)全班數(shù)據(jù)庫(kù)這門(mén)課是否都及格了。 WHILE WHILE語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格式為:WHILE WHILE 條

14、件表達(dá)式條件表達(dá)式BEGINBEGINT-SQLT-SQL語(yǔ)句或語(yǔ)句塊語(yǔ)句或語(yǔ)句塊 BREAKBREAKT-SQLT-SQL語(yǔ)句或語(yǔ)句塊語(yǔ)句或語(yǔ)句塊 CONTINUE CONTINUET-SQLT-SQL語(yǔ)句或語(yǔ)句塊語(yǔ)句或語(yǔ)句塊 END END【例例】計(jì)算計(jì)算11001100之間所有的奇數(shù)之和。之間所有的奇數(shù)之和。DECLARE sum SMALLINT, i TINYINTDECLARE sum SMALLINT, i TINYINTSET SET i=1i=1SET sum=0SET sum=0WHILE WHILE i=100i=100 BEGIN BEGIN SET sum=sum+i

15、 SET sum=sum+i SET SET i=i+2i=i+2 END ENDPRINT 1100PRINT 1100之間所有的奇數(shù)之和為之間所有的奇數(shù)之和為: + STR(sum): + STR(sum)【例例】計(jì)算計(jì)算2 2的的8 8次方。次方。DECLARE value INT, i INTDECLARE value INT, i INTSET i=8SET i=8SET value =1SET value =1WHILE WHILE 1=11=1 BEGIN BEGIN SET value =value SET value =value * *2 2 SET i=i-1 SET i

16、=i-1 IF i=0 IF i=0 BREAK BREAK ELSE ELSE CONTINUE CONTINUE END ENDPRINT 2PRINT 2的的8 8次方為次方為: + STR(value): + STR(value)GOTO語(yǔ)句GOTOGOTO語(yǔ)句是語(yǔ)句是無(wú)條件轉(zhuǎn)移無(wú)條件轉(zhuǎn)移語(yǔ)句,用來(lái)改變程序的執(zhí)語(yǔ)句,用來(lái)改變程序的執(zhí)行流程。行流程。GOTOGOTO語(yǔ)句使程序無(wú)條件跳轉(zhuǎn)到指定的標(biāo)簽處繼續(xù)語(yǔ)句使程序無(wú)條件跳轉(zhuǎn)到指定的標(biāo)簽處繼續(xù)執(zhí)行,增加了程序設(shè)計(jì)的執(zhí)行,增加了程序設(shè)計(jì)的靈活靈活性,但同時(shí)性,但同時(shí)破壞破壞了程了程序序結(jié)構(gòu)化結(jié)構(gòu)化的特點(diǎn),增加了程序測(cè)試與維護(hù)的難度的特點(diǎn),增加

17、了程序測(cè)試與維護(hù)的難度語(yǔ)法格式為:語(yǔ)法格式為:GOTO GOTO 標(biāo)簽標(biāo)簽標(biāo)簽:標(biāo)簽:【例例】計(jì)算計(jì)算1-1001-100之間所有的偶數(shù)之和之間所有的偶數(shù)之和declare sum declare sum intint,i ,i intintset i=0set i=0set sum=0set sum=0label_1:label_1:set i=i+2set i=i+2set sum=sum+iset sum=sum+iif i100if ibab print print 第一個(gè)數(shù)比第二個(gè)數(shù)大第一個(gè)數(shù)比第二個(gè)數(shù)大 elseelse print print 第一個(gè)數(shù)比第二個(gè)數(shù)小第一個(gè)數(shù)比第二個(gè)

18、數(shù)小else else print print 兩個(gè)數(shù)相等兩個(gè)數(shù)相等修改代碼,用修改代碼,用casecase語(yǔ)句實(shí)現(xiàn)相同功能?語(yǔ)句實(shí)現(xiàn)相同功能?declare a int,b intdeclare a int,b intset a=662set a=662set b=398set b=398print print casecase when ab then when ab then 第一個(gè)數(shù)比第二個(gè)數(shù)大第一個(gè)數(shù)比第二個(gè)數(shù)大 when ab then when ab then between when ab then between長(zhǎng)長(zhǎng) when ab then exists when a=5000 if product=5000 break break else else continue continue end endprint sequence+=+ltrim(str(product)print sequence+=+ltrim(str(product)計(jì)算計(jì)算1-1001-100之間能被之間能被7 7整除的整數(shù)之和整除的整數(shù)之和declare sum int,i intdeclare sum int,i intset i=7set i=7set sum=0

溫馨提示

  • 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)論