SQL流程控制語句.ppt_第1頁
SQL流程控制語句.ppt_第2頁
SQL流程控制語句.ppt_第3頁
SQL流程控制語句.ppt_第4頁
SQL流程控制語句.ppt_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

流程控制語句 變量 SQLServer的變量分為兩種 用戶自己定義的局部變量 開頭的標(biāo)識符表示局部變量系統(tǒng)定義和維護(hù)的全局變量 開頭的標(biāo)識符表示全局變量 局部變量 局部變量的作用范圍 定義局部變量的批處理 存儲過程 觸發(fā)器或語句塊 1 局部變量的定義DECLARE 局部變量名數(shù)據(jù)類型 n 注意 變量不能是text ntext或image數(shù)據(jù)類型 例 定義變量 sname為nvarchar 10 類型 定義變量 snum為int類型 例 定義變量 snum為int類型 DECLARE snumint DECLARE snamenvarchar 10 snumint 不能有空格 1 用SET語句給局部變量賦值SET 局部變量名 變量值 2 在查詢語句SELECT中給局部變量賦值SELECT 局部變量名 變量值 n 2 局部變量的賦值 局部變量在賦值之前 默認(rèn)為NULL 如果在程序中引用它 必須要先為其賦值 P136 3 局部變量的輸出 PRINT 局部變量注 變量的輸出僅用于DBA調(diào)試時使用 T SQL也提供了用于編寫過程性代碼的語法結(jié)構(gòu) 可用于進(jìn)行順序 分支 循環(huán)等程序設(shè)計 BEGIN END 語句塊的界定 相當(dāng)于C語言中的 BEGIN sql statement statement block END P145 IF ELSE IFBoolean expression sql statement statement block ELSE sql statement statement block DECLARE xint yintSET x 1SET y 4IF x yPRINT x y ELSEPRINT x y 布爾表達(dá)式 進(jìn)行條件判斷 定義變量 給變量賦值 練習(xí) 學(xué)生的成績表中 如果3 105課程平均成績在80分以上則顯示 考試成績不錯 否則顯示 需要繼續(xù)努力 USESchoolIF SELECTAVG Degree FROMScoreWHERECno 3 105 80PRINT 成績不錯 ELSEPRINT 需要繼續(xù)努力 3 105的平均成績 80 如果布爾表達(dá)式中含有SELECT語句 必須用圓括號將SELECT語句括起來 練習(xí) 判斷 陸君 是否在95033班 如果在輸出 陸君在95033班 否則輸出 陸君不在95033班 USESchoolIFEXISTS SELECT FROMStudentWHERESname 陸君 ANDClass 95033 PRINT 陸君在95033班 ELSEPRINT 陸君不在95033班 陸君在95033班 練習(xí) 判斷 陸君 是否在95033班 如果在輸出 陸君在95033班 否則輸出 陸君不在95033班 USESchoolGOIF 陸君 in SELECTSnameFROMStudentWHEREClass 95033 PRINT 陸君在95033班 ELSEPRINT 陸君不在95033班 練習(xí) 判斷 陸君 是否在95033班 如果在輸出 陸君在95033班 否則輸出 陸君不在95033班 USESchoolIF 95033 SELECTClassFROMStudentWHERESname 陸君 PRINT 陸君在95033班 ELSEPRINT 陸君不在95033班 多條件分支選擇CASE 1 簡單表達(dá)式CASEinput expressionWHEN THEN n ELSE END 2 選擇表達(dá)式CASEWHEN THEN n ELSE END CASE具有以下兩種格式 1 簡單表達(dá)式 將某個表達(dá)式與一組簡單表達(dá)式進(jìn)行比較以確定結(jié)果 2 選擇表達(dá)式 計算一組布爾表達(dá)式以確定結(jié)果 例 用CASE語句 根據(jù)教師的職稱來分級 USESchoolSELECTTname depart CASEProfWHEN 教授 THEN 高級職稱 WHEN 副教授 THEN 高級職稱 WHEN 講師 THEN 中級職稱 WHEN 助教 THEN 初級職稱 ELSE 無職稱 ENDFROMTeacher 只做臨時顯示 并不對表進(jìn)行修改 例 利用CASE語句對學(xué)生的成績進(jìn)行評價 USESchoolSELECTSno Cno CASEWHENDegree 90THEN A WHENDegree 80THEN B WHENDegree 70THEN C WHENDegree 60THEN D ELSE E ENDASRankFROMScoreORDERBYSno 循環(huán)語句WHILE WHILEBoolean expression sql statement statement block BREAK 跳出本層循環(huán) sql statement statement block CONTINUE 跳出本次循環(huán) sql statement statement block 布爾表達(dá)式 進(jìn)行條件判斷 練習(xí) 計算從1加到100并輸出結(jié)果 DECLARE sum100int iintSET sum100 0SET i 0WHILE i 100BEGINSET sum100 sum100 iSET i i 1ENDPRINT sum100 下列語句實現(xiàn)的什么功能WHILE SELECTAVG Degree FROMScoreWHERECno 3 105 100BREAKENDSELECT FROMScoreWHERECno 3 105 計算3 105課的平均成績 將3 105課的成績提高5分 如果3 105課的最高成績大于100分則跳出循環(huán) 跳轉(zhuǎn)語句GOTO GOTO語句將程序無條件地轉(zhuǎn)到相應(yīng)的標(biāo)簽的語句 DECLARE sum100int iintSELECT sum100 0 i 0My Loop SET sum100 sum100 iSET i i 1IF i 100GOTOMy LoopPRINT sum100 標(biāo)簽要符合命名規(guī)則 并且有 不利于程序閱讀 不符合結(jié)構(gòu)化程序的三種思想 因此不提倡用GOTO語句 延時語句WAITFOR WAITFOR語句可以將它之后的語句在一個指定的時間間隔之后執(zhí)行 或在未來的某一指定時間執(zhí)行 WAITFOR DELAY 延時時間 TIME 到達(dá)時間 WAITFORDELAY 0 00 05 PRINT 時間到 WAITFORTIME 20 00 00 PRINT 下課嘍 五秒鐘后顯示 時間到 必須是datetime數(shù)據(jù)類型 但不能包含日期部分 必須是datetime數(shù)據(jù)類型 但不能包含日期部分 不超過24小時 函數(shù) P1511 字符串函數(shù)2 日期和時間函數(shù)3 數(shù)

溫馨提示

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

最新文檔

評論

0/150

提交評論