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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

工作任務1流程控制語句工作任務2函數情境總結

練習題

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

若不使用控制流語言,則各Transact-SQL語句按其出現的順序分別執行。控制流語言使用與程序設計相似的構造使語句得以互相連接、關聯和相互依存。工作任務1流程控制語句

1.標識符

數據庫對象的名稱即其標識符。

2.注釋

3.批處理

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

4.數據類型

5.常量

6.變量

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

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

執行如下命令,運行結果如圖6-1所示。圖6-1例6-1運行結果

7.運算符和表達式

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

1)算術運算符

2)賦值運算符

3)字符串連接運算符

4)比較運算符

5)邏輯運算符子任務1順序結構

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

1.定義語句塊

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

2.返回客戶端消息語句

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

3.等待語句

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

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

參數含義:

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

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

4.返回語句

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

操作步驟如下:

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

BEGIN

WAITFORTIME‘22:30’

EXECUTEupdate_all_stats

END

②單擊【執行】按鈕即可。

【任務2】RETURN語句的應用:顯示如果在執行findjobs時沒有給出用戶名作為參數,RETURN則將一條消息發送到用戶的屏幕上后從過程中退出;如果給出用戶名,將從適當的系統表中檢索由該用戶在當前數據庫內創建的所有對象名。子任務2分支結構

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

2.?CASE判斷語句

3.無條件轉移語句

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

操作步驟如下:

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

USE班級管理系統

GO

IFEXISTS

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

BEGIN

DELETE學生信息表

WHERE學號=‘2007110102’

PRINT‘學號=2007110102已被刪除’

END

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

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

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

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

Use班級管理系統

select姓名,系別=

casesubstring(學號,5,1)

when‘1’then‘會計系’

when‘3’then‘計算機系’

when‘4’then‘機電系’

end

from學生信息表

orderby學號

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

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

單擊【執行】按鈕,得到結果如圖6-4所示。圖6-4任務4執行結果

【任務5】GOTO語句的應用:利用GOTO語句計算0~100之間所有數的和。子任務3循環結構

循環結構控制語句包括WHILE循環語句、BREAK結束循環語句和CONTINUE跳到下一次循環語句。本子任務介紹這三種語句在循環結構中的應用。

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

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

1.行集函數

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

2.聚合函數

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

3.數學函數

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

4.字符串函數

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

5.日期函數

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

6.元數據函數

元數據函數用于返回有關數據庫和數據庫對象的信息。

7.系統函數

系統函數用于獲得有關服務器、用戶、數據庫狀態等系統信息。

【任務1】AVG函數的應用:統計所有學生成績的平均值。

操作步驟如下:

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

USE班級管理系統

SELECTAVG(成績)as平均成績

FROM成績信息表

GO

②單擊【執行】按鈕。

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

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

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

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

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

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

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

1.用戶自定義函數概述

用戶在編寫程序的過程中除了可以調用系統函數外,還可以根據自己的需要自定義函數。

2.用戶自定義函數的創建

1)創建標量函數

標量函數往往根據輸入參數值的不同來獲得不同的函數值,在標量函數中可以使用多個輸入參數,而函數的返回值卻只能有一個。

2)內嵌表值函數

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

3)多語句表值函數

多語句表值函數也是返回表的函數,內嵌表值函數返回的是單個SELECT語句的結果集。

3.用戶自定義函數調用

函數創建成功后,就可以調用函數了。

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

【任務1】

自定義函數oldyear的應用:在“班級管理系統”數據庫中,創建名為“oldyear”的函數,用于計算學生的年齡。

【任務2】

自定義標量函數max2的應用:創建一個標量函數,該函數返回兩個參數中的最大值。

【任務3】

內嵌表值函數“stuxi”的應用:創建一個名為“stuxi”的函數用于返回學生信息表中屬于同一個系的學生的部分信息。

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

【任務5】

調用標量函數max2:使用EXEC語句調用max2函數,參數的標識次序與函數定義中的參數標識次序不同。

【任務6】

調用內聯表值函數stuxi:調用stuxi,返回某一院系的學生情況。本情境主要介紹T-SQL的語言基礎。通過示例介紹了流程控制語句和函數的用法;包括全局變量、用戶自定義變量、各種控制語句、系統函數及用戶自定義函數的用法。情境總結填空題

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

,但可以應用多個

2.在學生

溫馨提示

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

評論

0/150

提交評論