資源描述:
《sql批處理和流程控制語句.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、批處理和流程控制語句批處理所謂批處理是指從客戶機傳遞到服務(wù)器上的一組完整的數(shù)據(jù)和SQL指令。在一個批處理中,可以只包含一條SQL指令,也可以包含多條指令。批處理的所有語句被當作一個整體整體,而被成批地分析、編譯和執(zhí)行,若這一批處理中存在一個語法錯誤,則所有的語句都無法通過編譯。所有的批處理指令以GO作為結(jié)束的標志,當編譯器讀到GO時,它就會把GO前面的所有指令當作一個批處理,并包裝成一個數(shù)據(jù)包發(fā)送給服務(wù)器。例如:建立一個批處理完成查詢。USE學(xué)生信息庫--打開數(shù)據(jù)庫GOSELECT*FROM學(xué)生基本表WHERE院系名稱=‘信息學(xué)院’GO流程控制語句一、注釋語句在SQL中提供了兩種注釋方式:-
2、-:一行注釋(注釋的內(nèi)容不超過一行)/**/:一段注釋(當注釋的內(nèi)容超過一行)二、變量變量指的是在程序運行過程中值可以發(fā)生變化的量。SQL分為兩種類型的變量:全局變量和局部變量。其中全局變量是系統(tǒng)已經(jīng)定義好的變量,主要反映SQL數(shù)據(jù)庫的操作狀態(tài)。全局變量名稱以@@開頭;局部變量可以由用戶定義,主要用于保存運算結(jié)果,局部變量的名稱必須以@開頭。局部變量的聲明DECLARE<@變量名1><數(shù)據(jù)類型>[,<@變量名2><數(shù)據(jù)類型>……]例如:DECLARE@xint,@yint局部變量的顯示SELECT<@變量名表>PRINT<@變量名>例如:SELECT@X,@Y在此,若使用SELECT顯示,則
3、返回結(jié)果在“網(wǎng)格”中;若使用PRINT顯示,則返回結(jié)果在“消息”中。局部變量賦值1.通過SELECT賦值SELECT<@變量名1>=<表達式1>[,<@變量名2>=<表達式2>……]說明:SELECT語句可以給多個變量賦值。例如:SELECT@X=0,@Y=12.通過SET賦值SET@變量名=表達式說明:局部變量沒有賦值時其值是NULL;不能在一個SET語句中同時對幾個變量賦值,如果給幾個變量賦值,那就不得不分開來寫。例如:按要求編寫程序。先定義一個INT類型@num變量,CHAR類型@cnum變量,然后分別賦值2004,最后使用PRINT語句將這兩個變量的值輸出。DECLARE@numin
4、t,@cnumchar(10)SET@NUM=2004SET@CNUM=‘2004’PRINT@NUMPRINT@CNUM三、BEGIN……END語句又稱語句塊,是將SQL語句組合起來從而形成一個語句塊。BEGIN語句1語句2..END說明:1.將要組合成語句塊的語句在BEGIN和END之間就可以了。2.BEGIN……END可以嵌套。四、IF……ELSE語句利用IF……ELSE語句能夠?qū)σ粋€條件進行測試,并根據(jù)測試的結(jié)果來執(zhí)行不同的語句塊。IF<條件表達式>語句塊[ELSE語句塊]說明:1.ELSE并不一定是必須的。2.條件為真,就執(zhí)行IF語句后面的語句塊,否則執(zhí)行ELSE后面的語句塊。3.
5、IF……ELSE可以嵌套。例如:編寫程序完成如下功能:查看是否有1988年9月1日以后出生的學(xué)生。有則將輸出該學(xué)生的姓名和學(xué)號,否則輸出提示用戶沒有找到的信息。IFEXISTS(SELECT*FROM學(xué)生基本表WHERE出生日期>‘1988-9-1’)BEGINSELECT姓名,學(xué)號FROM學(xué)生基本表WHERE出生日期>‘1988-9-1’ENDELSEPRINT‘沒有此信息’五、無條件轉(zhuǎn)移語句GOTO標號……標號說明:1.GOTO語句會強迫服務(wù)器從標號處開始繼續(xù)執(zhí)行程序。2.標號必須出現(xiàn)在同一個存儲過程或批處理中。標號和GOTO語句誰在代碼中先出現(xiàn)不重要。3.對于GOTO的使用,盡可能不用
6、。六、循環(huán)語句WHILE條件表達式SQL語句塊[BREAK]SQL語句塊[CONTINUE]說明:[BREAK]表示退出所在的循環(huán)。[CONTINUE]表示結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語句,進行下一次是否執(zhí)行循環(huán)體的判斷。例如:計算1到100的和。DECLARE@IINT,@SINTSELECT@I=1SELECT@S=0WHILE@I<=100BEGINSELECT@S=@S+@ISELECT@I=@I+1ENDSELECT@S例如:計算1到100中奇數(shù)的和。DECLARE@NUMINT,@SUMINTSET@NUM=0SET@SUM=0WHILE@NUM<100BEGINSET@
7、NUM=@NUM+1IF@NUM%2=0CONTINUEELSESET@SUM=@SUM+@NUMENDPRINT@SUM這個程序中的CONTINUE是不能用BREAK來代替的。七、無條件退出RETURN說明:用于從批處理、語句塊中無條件的退出,不執(zhí)行位于RETURN后面的語句。