資源描述:
《tj第六章sql編程技術(shù)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第六章SQL編程技術(shù)16.1SQL編程基礎(chǔ)6.1.1批處理批處理是一個以“GO”為結(jié)束的語句集.這些語句是作為一個組來執(zhí)行并一起提交的.腳本是一系列順序執(zhí)行的批處理.腳本文件的文件類型為.sql注意:GO不是SQL語句.2例:給出含有三個批處理的腳本CREATETABLE學(xué)院(學(xué)院名稱char(12)PRIMARYKEY,院長char(8),學(xué)院地址char(16),辦公電話char(8),編制人數(shù)smallint)GOINSERTINTO學(xué)院VALUES('計算機學(xué)院','劉洋','一號樓4','88889999',50)INSERTINTO學(xué)
2、院VALUES('商學(xué)院','梁山','五號樓302','99998888',60)GOSELECT*FROM學(xué)院GO36.1.2變量1.變量的類型局部變量--以@引導(dǎo),由用戶定義.其作用域定義的轄域中.全局變量--以@@引導(dǎo),由系統(tǒng)提供并賦值.其作用域為全局.46.1.2變量2.變量的聲明語句格式:DECLARE@變量名數(shù)據(jù)類型[,@變量名數(shù)據(jù)類型……]例:聲明變量DECLARE@NameCHAR(8),@SexCHAR(2),@AgeSMALLINT56.1.2變量3.變量的賦值語句格式一:SET@變量名稱=表達式語句格式二:SELECT@變
3、量名稱=表達式語句格式三:SELECT@變量名稱=字段(或函數(shù))FROM表(或視圖)名WHERE<條件表達式>6舉例例1:DECLARE@NameCHAR(8),@SexCHAR(2),@AgeSMALLINTSET@Name=‘李華’SET@Sex=‘女’SET@Age=20例2:DECLARE@NameCHAR(8)SELECT@Name=‘李華’7舉例例3:DECLARE@NameCHAR(8),@SexCHAR(2),@AgeSMALLINTSELECT@Name=姓名,@Sex=性別,@Age=YEAR(GETDATE())-YEAR(
4、出生日期)FROM學(xué)生WHERE學(xué)號='00150236'SELECT@Name,@Sex,@AgeGO顯示結(jié)果86.1.3控制流語句包含條件控制語句、無條件轉(zhuǎn)移語句、循環(huán)語句等??刂普Z句說明IF...ELSE條件語句GOTO無條件轉(zhuǎn)移語句WHILE循環(huán)語句CONTINUE用于重新開始下一次循環(huán)BREAK用于退出最內(nèi)層的循環(huán)RETURN無條件返回96.1.3控制流語句1.BEGIN…END功能:將一組SQL語句作為一個語句塊。語句格式:BEGINEND與IF語句和WHILE語句配合使用106.1.3控制流語句2.IF…ELSE語
5、句語句格式:IF<條件表達式>ELSE1112舉例USE教學(xué)數(shù)據(jù)庫GODECLARE@gavgsmallintSELECT@gavg=AVG(成績)FROM選課WHERE課程號=(SELECT課程號FROM課程WHERE課程名稱='大學(xué)英語')IF(@gavg>80)PRINT'大學(xué)英語課程的平均成績高于80分'ELSEBEGINPRINT'大學(xué)英語課程的平均成績低于80分'select'平均成績:',@gavgEND136.1.3控制流語句3.循環(huán)語句語句格式:WHILE<條件表達式>
6、[BREAK][][CONTINUE]146.1.3控制流語句15舉例:求出大學(xué)英語課程的平均成績當該分數(shù)小于80分時,循環(huán)做,給所有成績高于平均分的成績加1分,當最高分大于100時停止加分.并顯示加的分數(shù).該分數(shù)(平均成績)大于80分時,循環(huán)停止并顯示加的分數(shù)16舉例DECLARE@gavgsmallint,@COUNsmallintSET@COUN=0SELECT@gavg=AVG(成績)FROM選課WHERE課程號=(SELECT課程號FROM課程WHERE課程名稱='大學(xué)英語')WHILE(@gavg<80)BEGIN
7、SET@COUN=@COUN+1UPDATE選課set成績=成績+1where課程號=(SELECT課程號FROM課程WHERE課程名稱='大學(xué)英語')AND成績>@gavgIF(SELECTmax(成績)FROM選課WHERE課程號=(SELECT課程號FROM課程WHERE課程名稱='大學(xué)英語'))>100BREAKENDPRINT@COUN17舉例DECLARE@gavgsmallint,@COUNsmallintSET@COUN=0SELECT@gavg=AVG(成績)FROM選課WHERE課程號=(SELECT課程號FROM課程WHER
8、E課程名稱='大學(xué)英語')PRINT@gavgWHILE(@gavg<80)BEGINSET@COUN=@COUN+1UPDATE選課s