《基于C#的SQL Server應(yīng)用技術(shù)》課件第6章_第1頁(yè)
《基于C#的SQL Server應(yīng)用技術(shù)》課件第6章_第2頁(yè)
《基于C#的SQL Server應(yīng)用技術(shù)》課件第6章_第3頁(yè)
《基于C#的SQL Server應(yīng)用技術(shù)》課件第6章_第4頁(yè)
《基于C#的SQL Server應(yīng)用技術(shù)》課件第6章_第5頁(yè)
已閱讀5頁(yè),還剩35頁(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)介

工作任務(wù)1流程控制語(yǔ)句工作任務(wù)2函數(shù)情境總結(jié)

練習(xí)題

Transact-SQL(T-SQL)提供稱為控制流語(yǔ)言的特殊關(guān)鍵字,用于控制Transact-SQL語(yǔ)句、語(yǔ)句塊和存儲(chǔ)過程的執(zhí)行流。這些關(guān)鍵字可用于臨時(shí)Transact-SQL語(yǔ)句、批處理和存儲(chǔ)過程中。

若不使用控制流語(yǔ)言,則各Transact-SQL語(yǔ)句按其出現(xiàn)的順序分別執(zhí)行??刂屏髡Z(yǔ)言使用與程序設(shè)計(jì)相似的構(gòu)造使語(yǔ)句得以互相連接、關(guān)聯(lián)和相互依存。工作任務(wù)1流程控制語(yǔ)句

1.標(biāo)識(shí)符

數(shù)據(jù)庫(kù)對(duì)象的名稱即其標(biāo)識(shí)符。

2.注釋

3.批處理

批處理是由一個(gè)或多個(gè)T-SQL語(yǔ)句組成的,應(yīng)用程序?qū)⑦@些語(yǔ)句作為一個(gè)單元一次性地提交給SQLServer,并由SQLServer編譯成一個(gè)執(zhí)行計(jì)劃,然后作為一個(gè)整體來(lái)執(zhí)行。

4.?dāng)?shù)據(jù)類型

5.常量

6.變量

變量是指在程序的執(zhí)行過程中可以改變的量,它可以保存特定類型的值。

例6-1:將成績(jī)信息表中學(xué)號(hào)為“200606001”的學(xué)生的分?jǐn)?shù)賦值給變量@fenshu,并將該變量的值顯示在結(jié)果窗口中。

執(zhí)行如下命令,運(yùn)行結(jié)果如圖6-1所示。圖6-1例6-1運(yùn)行結(jié)果

7.運(yùn)算符和表達(dá)式

運(yùn)算符是一種符號(hào),用來(lái)指定要在一個(gè)或者多個(gè)表達(dá)式中執(zhí)行的操作。

1)算術(shù)運(yùn)算符

2)賦值運(yùn)算符

3)字符串連接運(yùn)算符

4)比較運(yùn)算符

5)邏輯運(yùn)算符子任務(wù)1順序結(jié)構(gòu)

順序結(jié)構(gòu)控制語(yǔ)句包括BEGIN…END語(yǔ)句塊定義語(yǔ)句、PRINT返回客戶端消息語(yǔ)句、WAITFOR等待語(yǔ)句和RETURN返回語(yǔ)句。本子工作任務(wù)介紹這四種語(yǔ)句在順序結(jié)構(gòu)中的應(yīng)用。

1.定義語(yǔ)句塊

BEGIN…END用來(lái)表示一個(gè)語(yǔ)句塊,凡是在BEGIN與END之間的程序都屬于同一個(gè)流程控制,通常都是與IF…ELSE或WHILE等一起使用的。

2.返回客戶端消息語(yǔ)句

PRINT語(yǔ)句的功能是將用戶定義的消息返回客戶端。

3.等待語(yǔ)句

WAITFOR語(yǔ)句是等待語(yǔ)句,該語(yǔ)句可以指定它以后的語(yǔ)句在某個(gè)時(shí)間間隔之后執(zhí)行,或未來(lái)的某一時(shí)間執(zhí)行。語(yǔ)法如下:

WAITFOR{DELAY‘time’|TIME‘time’}

參數(shù)含義:

DELAY‘time’是指定SQLServer等待的時(shí)間間隔,最長(zhǎng)可達(dá)24小時(shí)。

TIME‘time’是指定SQLServer等待到某一時(shí)刻。

4.返回語(yǔ)句

【任務(wù)1】WAITFOR語(yǔ)句的應(yīng)用:使用WAITFORTIME語(yǔ)句,以便在晚上10:30執(zhí)行存儲(chǔ)過程update_all_stats。

操作步驟如下:

①在查詢窗口中輸入以下命令文本:

BEGIN

WAITFORTIME‘22:30’

EXECUTEupdate_all_stats

END

②單擊【執(zhí)行】按鈕即可。

【任務(wù)2】RETURN語(yǔ)句的應(yīng)用:顯示如果在執(zhí)行findjobs時(shí)沒有給出用戶名作為參數(shù),RETURN則將一條消息發(fā)送到用戶的屏幕上后從過程中退出;如果給出用戶名,將從適當(dāng)?shù)南到y(tǒng)表中檢索由該用戶在當(dāng)前數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建的所有對(duì)象名。子任務(wù)2分支結(jié)構(gòu)

分支結(jié)構(gòu)控制語(yǔ)句包括IF條件語(yǔ)句、CASE判斷語(yǔ)句和GOTO無(wú)條件跳轉(zhuǎn)語(yǔ)句。本子任務(wù)介紹這三種語(yǔ)句在分支結(jié)構(gòu)中的應(yīng)用。1.?IF條件

2.?CASE判斷語(yǔ)句

3.無(wú)條件轉(zhuǎn)移語(yǔ)句

【任務(wù)1】IF語(yǔ)句的應(yīng)用:刪除滿足條件的學(xué)生記錄。

操作步驟如下:

①在查詢窗口中輸入以下命令文本:

USE班級(jí)管理系統(tǒng)

GO

IFEXISTS

(SELECT*FROM學(xué)生信息表WHERE學(xué)號(hào)='2007110102')

BEGIN

DELETE學(xué)生信息表

WHERE學(xué)號(hào)=‘2007110102’

PRINT‘學(xué)號(hào)=2007110102已被刪除’

END

②單擊【執(zhí)行】按鈕,結(jié)果如圖6-2所示。圖6-2子任務(wù)1的執(zhí)行結(jié)果

【任務(wù)2】IF語(yǔ)句的應(yīng)用:在屏幕上顯示成績(jī)信息表中的成績(jī)及格情況。

【任務(wù)3】CASE語(yǔ)句的應(yīng)用:在學(xué)生信息表中利用學(xué)號(hào)進(jìn)行系別說(shuō)明并排序。

①在查詢窗口中輸入以下命令文本:

Use班級(jí)管理系統(tǒng)

select姓名,系別=

casesubstring(學(xué)號(hào),5,1)

when‘1’then‘會(huì)計(jì)系’

when‘3’then‘計(jì)算機(jī)系’

when‘4’then‘機(jī)電系’

end

from學(xué)生信息表

orderby學(xué)號(hào)

②單擊【執(zhí)行】按鈕,得到結(jié)果如圖6-3所示。圖6-3任務(wù)3執(zhí)行結(jié)果

【任務(wù)4】CASE語(yǔ)句的應(yīng)用:根據(jù)“學(xué)生信息表”中的學(xué)生出生日期范圍來(lái)評(píng)定學(xué)生受教育的早晚。

單擊【執(zhí)行】按鈕,得到結(jié)果如圖6-4所示。圖6-4任務(wù)4執(zhí)行結(jié)果

【任務(wù)5】GOTO語(yǔ)句的應(yīng)用:利用GOTO語(yǔ)句計(jì)算0~100之間所有數(shù)的和。子任務(wù)3循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)控制語(yǔ)句包括WHILE循環(huán)語(yǔ)句、BREAK結(jié)束循環(huán)語(yǔ)句和CONTINUE跳到下一次循環(huán)語(yǔ)句。本子任務(wù)介紹這三種語(yǔ)句在循環(huán)結(jié)構(gòu)中的應(yīng)用。

【任務(wù)1】WHILE語(yǔ)句的應(yīng)用:計(jì)算1~100之間所有偶數(shù)之和,但是如果和大于2000,則立刻跳出循環(huán)并輸出結(jié)果。函數(shù)對(duì)于任何程序設(shè)計(jì)語(yǔ)言來(lái)說(shuō)都是非常關(guān)鍵的組成部分。SQLServer2008不僅提供了系統(tǒng)函數(shù),而且允許用戶創(chuàng)建自定義的函數(shù)。系統(tǒng)函數(shù)使得用戶可以訪問SQLServer2008系統(tǒng)表中的信息,而用戶自定義函數(shù)是接受參數(shù)、執(zhí)行操作并將操作結(jié)果以值的形式返回的子程序。本工作任務(wù)是對(duì)T-SQL語(yǔ)言中的函數(shù)的應(yīng)用。工作任務(wù)2函數(shù)子任務(wù)1系統(tǒng)函數(shù)

SQLServer2008提供的函數(shù)分為以下幾類:字符串函數(shù)、日期函數(shù)、系統(tǒng)函數(shù)、聚合函數(shù)、數(shù)學(xué)函數(shù)、元數(shù)據(jù)函數(shù)、安全函數(shù)、行集函數(shù)、游標(biāo)函數(shù)、配置函數(shù)、文本和圖像函數(shù)。本工作任務(wù)是對(duì)T-SQL語(yǔ)言提供的系統(tǒng)函數(shù)的應(yīng)用。

1.行集函數(shù)

行集函數(shù)可以在T-SQL語(yǔ)句中當(dāng)作表引用來(lái)返回對(duì)象。

2.聚合函數(shù)

聚合函數(shù)用于對(duì)一組值進(jìn)行計(jì)算并返回一個(gè)單一的值。

3.?dāng)?shù)學(xué)函數(shù)

算術(shù)函數(shù)(例如ABS、CEILING、DEGREES、FLOOR、POWER、RADIANS和SIGN)返回與輸入值具有相同數(shù)據(jù)類型的值。

4.字符串函數(shù)

字符串函數(shù)對(duì)字符串進(jìn)行操作,以下列出SQLServer的字符串函數(shù)及簡(jiǎn)要說(shuō)明和示例。

5.日期函數(shù)

日期和時(shí)間函數(shù)對(duì)日期和時(shí)間輸入值執(zhí)行操作,并返回一個(gè)字符串、數(shù)字值或日期和時(shí)間值。

6.元數(shù)據(jù)函數(shù)

元數(shù)據(jù)函數(shù)用于返回有關(guān)數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象的信息。

7.系統(tǒng)函數(shù)

系統(tǒng)函數(shù)用于獲得有關(guān)服務(wù)器、用戶、數(shù)據(jù)庫(kù)狀態(tài)等系統(tǒng)信息。

【任務(wù)1】AVG函數(shù)的應(yīng)用:統(tǒng)計(jì)所有學(xué)生成績(jī)的平均值。

操作步驟如下:

①在查詢窗口中輸入以下命令文本:

USE班級(jí)管理系統(tǒng)

SELECTAVG(成績(jī))as平均成績(jī)

FROM成績(jī)信息表

GO

②單擊【執(zhí)行】按鈕。

【任務(wù)2】ABS函數(shù)的應(yīng)用:計(jì)算“-8.5”的絕對(duì)值。

【任務(wù)3】LEFT函數(shù)的應(yīng)用:取“CHINA”字符串的左邊兩位字符。

【任務(wù)4】REPLACE函數(shù)的應(yīng)用:字符串替換。

【任務(wù)5】DATEDIFF函數(shù)的應(yīng)用:計(jì)算“出生日期”和當(dāng)前日期之間經(jīng)過了多少天。

【任務(wù)6】COL_LENGTH函數(shù)的應(yīng)用:返回“學(xué)生信息表”中“學(xué)號(hào)”列的定義長(zhǎng)度。

【任務(wù)7】IDENTITY函數(shù)的應(yīng)用:將“學(xué)生信息表”中學(xué)號(hào)的前四位是“2008”的所有行都插入到名為“學(xué)生2008”的新表中。使用IDENTITY函數(shù)在“學(xué)生”表中創(chuàng)建“序號(hào)”標(biāo)識(shí)列,其值從100開始。子任務(wù)2自定義函數(shù)

SQLServer2008不僅提供了系統(tǒng)函數(shù),而且允許用戶創(chuàng)建自定義的函數(shù)。用戶自定義函數(shù)可以接受參數(shù)、執(zhí)行操作并將操作結(jié)果以值的形式返回到子程序。本子任務(wù)是對(duì)自定義函數(shù)的應(yīng)用與管理。

1.用戶自定義函數(shù)概述

用戶在編寫程序的過程中除了可以調(diào)用系統(tǒng)函數(shù)外,還可以根據(jù)自己的需要自定義函數(shù)。

2.用戶自定義函數(shù)的創(chuàng)建

1)創(chuàng)建標(biāo)量函數(shù)

標(biāo)量函數(shù)往往根據(jù)輸入?yún)?shù)值的不同來(lái)獲得不同的函數(shù)值,在標(biāo)量函數(shù)中可以使用多個(gè)輸入?yún)?shù),而函數(shù)的返回值卻只能有一個(gè)。

2)內(nèi)嵌表值函數(shù)

該函數(shù)返回的都是一個(gè)表(table),而不是一個(gè)標(biāo)量數(shù)據(jù)。返回表值函數(shù)可以提供參數(shù)化視圖功能,可用在T-SQL查詢中允許有表或視圖表達(dá)式的地方。

3)多語(yǔ)句表值函數(shù)

多語(yǔ)句表值函數(shù)也是返回表的函數(shù),內(nèi)嵌表值函數(shù)返回的是單個(gè)SELECT語(yǔ)句的結(jié)果集。

3.用戶自定義函數(shù)調(diào)用

函數(shù)創(chuàng)建成功后,就可以調(diào)用函數(shù)了。

4.修改或刪除用戶定義函數(shù)的語(yǔ)句

【任務(wù)1】

自定義函數(shù)oldyear的應(yīng)用:在“班級(jí)管理系統(tǒng)”數(shù)據(jù)庫(kù)中,創(chuàng)建名為“oldyear”的函數(shù),用于計(jì)算學(xué)生的年齡。

【任務(wù)2】

自定義標(biāo)量函數(shù)max2的應(yīng)用:創(chuàng)建一個(gè)標(biāo)量函數(shù),該函數(shù)返回兩個(gè)參數(shù)中的最大值。

【任務(wù)3】

內(nèi)嵌表值函數(shù)“stuxi”的應(yīng)用:創(chuàng)建一個(gè)名為“stuxi”的函數(shù)用于返回學(xué)生信息表中屬于同一個(gè)系的學(xué)生的部分信息。

【任務(wù)4】多語(yǔ)句表值函數(shù)f_stu的應(yīng)用:在“班級(jí)管理系統(tǒng)”數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)多語(yǔ)句表值自定義函數(shù),它可以返回學(xué)生信息表的姓名或系別與姓名的組合(這個(gè)取決于用戶提供的參數(shù))。

【任務(wù)5】

調(diào)用標(biāo)量函數(shù)max2:使用EXEC語(yǔ)句調(diào)用max2函數(shù),參數(shù)的標(biāo)識(shí)次序與函數(shù)定義中的參數(shù)標(biāo)識(shí)次序不同。

【任務(wù)6】

調(diào)用內(nèi)聯(lián)表值函數(shù)stuxi:調(diào)用stuxi,返回某一院系的學(xué)生情況。本情境主要介紹T-SQL的語(yǔ)言基礎(chǔ)。通過示例介紹了流程控制語(yǔ)句和函數(shù)的用法;包括全局變量、用戶自定義變量、各種控制語(yǔ)句、系統(tǒng)函數(shù)及用戶自定義函數(shù)的用法。情境總結(jié)填空題

1.規(guī)則是一種約束,用于執(zhí)行一些與CHECK約束相同的功能。一個(gè)列只能應(yīng)用一個(gè)

,但可以應(yīng)用多個(gè)

。

2.在學(xué)生

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論