《基于C#的SQL Server應用技術(shù)》課件第6章_第1頁
《基于C#的SQL Server應用技術(shù)》課件第6章_第2頁
《基于C#的SQL Server應用技術(shù)》課件第6章_第3頁
《基于C#的SQL Server應用技術(shù)》課件第6章_第4頁
《基于C#的SQL Server應用技術(shù)》課件第6章_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

練習題

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

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

1.標識符

數(shù)據(jù)庫對象的名稱即其標識符。

2.注釋

3.批處理

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

4.數(shù)據(jù)類型

5.常量

6.變量

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

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

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

7.運算符和表達式

運算符是一種符號,用來指定要在一個或者多個表達式中執(zhí)行的操作。

1)算術(shù)運算符

2)賦值運算符

3)字符串連接運算符

4)比較運算符

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

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

1.定義語句塊

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

2.返回客戶端消息語句

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

3.等待語句

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

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

參數(shù)含義:

DELAY‘time’是指定SQLServer等待的時間間隔,最長可達24小時。

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

4.返回語句

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

操作步驟如下:

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

BEGIN

WAITFORTIME‘22:30’

EXECUTEupdate_all_stats

END

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

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

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

2.?CASE判斷語句

3.無條件轉(zhuǎn)移語句

【任務1】IF語句的應用:刪除滿足條件的學生記錄。

操作步驟如下:

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

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

GO

IFEXISTS

(SELECT*FROM學生信息表WHERE學號='2007110102')

BEGIN

DELETE學生信息表

WHERE學號=‘2007110102’

PRINT‘學號=2007110102已被刪除’

END

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

【任務2】IF語句的應用:在屏幕上顯示成績信息表中的成績及格情況。

【任務3】CASE語句的應用:在學生信息表中利用學號進行系別說明并排序。

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

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

select姓名,系別=

casesubstring(學號,5,1)

when‘1’then‘會計系’

when‘3’then‘計算機系’

when‘4’then‘機電系’

end

from學生信息表

orderby學號

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

【任務4】CASE語句的應用:根據(jù)“學生信息表”中的學生出生日期范圍來評定學生受教育的早晚。

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

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

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

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

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

1.行集函數(shù)

行集函數(shù)可以在T-SQL語句中當作表引用來返回對象。

2.聚合函數(shù)

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

3.數(shù)學函數(shù)

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

4.字符串函數(shù)

字符串函數(shù)對字符串進行操作,以下列出SQLServer的字符串函數(shù)及簡要說明和示例。

5.日期函數(shù)

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

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

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

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

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

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

操作步驟如下:

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

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

SELECTAVG(成績)as平均成績

FROM成績信息表

GO

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

【任務2】ABS函數(shù)的應用:計算“-8.5”的絕對值。

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

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

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

【任務6】COL_LENGTH函數(shù)的應用:返回“學生信息表”中“學號”列的定義長度。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

【任務1】

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

【任務2】

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

【任務3】

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

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

【任務5】

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

【任務6】

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

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

,但可以應用多個

2.在學生

溫馨提示

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

評論

0/150

提交評論