




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第8章章 T-SQL編程基礎(chǔ)編程基礎(chǔ)主講人:董瑞芝復(fù)習(xí):設(shè)計數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫 收集、分析數(shù)據(jù)收集、分析數(shù)據(jù)建立概念模型建立概念模型(ER圖圖)建立邏輯模建立邏輯模型型(關(guān)系模式關(guān)系模式) 關(guān)系規(guī)范化:關(guān)系規(guī)范化:1NF 2NF 3NF數(shù)據(jù)庫的操作數(shù)據(jù)庫的操作 創(chuàng)建、修改、刪除數(shù)據(jù)庫創(chuàng)建、修改、刪除數(shù)據(jù)庫數(shù)據(jù)表的操作數(shù)據(jù)表的操作 創(chuàng)建、修改、刪除數(shù)據(jù)表、添加表約束創(chuàng)建、修改、刪除數(shù)據(jù)表、添加表約束數(shù)據(jù)查詢數(shù)據(jù)查詢 基本查詢、匯總查詢、子查詢、連接查詢基本查詢、匯總查詢、子查詢、連接查詢 視圖的使用視圖的使用數(shù)據(jù)索引數(shù)據(jù)索引案例-乘車卡消費(fèi)問題你的乘車卡上有你的乘車卡上有50.3元人民幣,當(dāng)余額
2、元人民幣,當(dāng)余額低于低于5元時,顯示友好提示信息元時,顯示友好提示信息“金額低于金額低于5元元,請盡快充請盡快充值值!”,當(dāng)余額低于,當(dāng)余額低于0.9元時,顯元時,顯示友情提示示友情提示 “余額不足,請投幣!余額不足,請投幣!”。該案例中包含了變量及計算等問題,那么如何實現(xiàn)呢?DECLARE i INT, je DECIMAL(5,1)SET i=0SET je=50.3WHILE (je=0.9 )BEGIN SET je=je-0.9 SET i=i+1 IF (je5) PRINT 金額低于金額低于5元元,請允值請允值! ENDSELECT je AS 余額余額,i AS 消費(fèi)次數(shù)消費(fèi)次
3、數(shù),i*0.9 AS 消費(fèi)額消費(fèi)額PRINT 金額不足金額不足,請投幣請投幣!本章要點(diǎn) 變量變量 表達(dá)式表達(dá)式 語句語句認(rèn)知目標(biāo): 了解標(biāo)識符的命名規(guī)則 掌握運(yùn)算符的使用方法 了解T-SQL語言語句塊、條件語句、循環(huán)語句的基本格式能力目標(biāo): 掌握變量的聲明、賦值和顯示方法(重點(diǎn)) 掌握系統(tǒng)內(nèi)置函數(shù)的使用方法(難點(diǎn)) 能運(yùn)用各種流程控制語句正確編寫SQL程序(重點(diǎn)、難點(diǎn))第8章 T-SQL編程基礎(chǔ)學(xué)習(xí)目標(biāo)一、標(biāo)識符 標(biāo)識符的含義 是指用戶定義的變量名、函數(shù)名、存儲過程名、庫名、表名、索引名、視圖名等各種名稱。 命名規(guī)則(P169) 標(biāo)識符的長度可以為1-128個字符 標(biāo)識符的第一個字符必須為字母
4、、下劃線、#以為首的標(biāo)識符表示1個局部變量。對于表或存儲過程,名稱前包含一個#時表示局部臨時對象,而兩個#(“#”)則表示為全局臨時對象。 標(biāo)識符內(nèi)不允許有空格,也不允許為SQL中的關(guān)鍵字 一、標(biāo)識符課堂練習(xí)1:判斷下列哪些標(biāo)識符是合法的?哪些是不合法的?_AbC X yza1 where#proc #xs7table as 1、常量常量的含義 在運(yùn)行過程中保持不變的量,是表示特定數(shù)據(jù)值的符號課堂練習(xí)2:判斷下列常量是什么類型常量?1894 2.5E2 1.52$12 -$23.5123 w34 2006-04-24二、二、T-SQL表達(dá)式表達(dá)式2、變量 局部變量: 用戶自己定義的變量,用于在
5、語句之間傳遞數(shù)據(jù) 局部變量名以符號開頭 使用時,必須先聲明 全局變量(了解): 是系統(tǒng)定義的變量,用于存儲系統(tǒng)的特定信息 用戶不能建立全局變量,也不能修改其值 全局變量名以符號開頭2、變量 局部變量的聲明語法格式declare 變量名 數(shù)據(jù)類型,n 實例1:分別定義一個整型變量和兩個字符型變量。declare name varchar(10) declare age smallint , msg varchar(50)注意:局部變量未被賦值之前,其值為null。2、變量 局部變量的賦值語法格式:SET 變量=表達(dá)式SELECT 變量=表達(dá)式 ,n說明: select語句不能同時完成賦值和查詢兩
6、種操作實例2:給age、name、msg賦值。SELECT name=劉偉,age=21SET msg=歡迎使用SQL Server 20052、變量 局部變量的顯示語法格式為:PRINT 表達(dá)式SELECT 表達(dá)式 ,n 實例3:顯示age、name、msg的值。PRINT namePRINT ageSELECT name as 姓名, 年齡=age, msg 歡迎詞必須是char、varchar;或可以隱式地轉(zhuǎn)化成字符型的常量或變量表達(dá)式。注意與賦值的區(qū)別。3、函數(shù)字符串函數(shù) 求串長len( )、轉(zhuǎn)換為大寫/小寫字母upper() / lower()數(shù)學(xué)函數(shù) Sum( )、avg( )、m
7、ax( )、min( )、count( )日期和時間函數(shù) 求當(dāng)前系統(tǒng)日期:Getdate( ) 數(shù)據(jù)類型轉(zhuǎn)換函數(shù) 轉(zhuǎn)換為字符型數(shù)據(jù):Convert( )、cast( )全局變量函數(shù)(了解P173,表8-2) 3、函數(shù) 常用函數(shù)應(yīng)用實例4:已知msg的值為“歡迎使用SQL Server 2005”,顯示該字串的長度。課堂練習(xí)3:顯示kc表中課程號為“107”的課程名稱的長度。udeclaresmallintuselectlenfromwhere107uselectasudeclarevarchar(50) - -聲明變量聲明變量uselect - -給變量賦值給變量賦值uselectas- -顯
8、示變量的值顯示變量的值實例實例5:統(tǒng)計:統(tǒng)計xsqk表中的學(xué)生人數(shù),要求顯示表中的學(xué)生人數(shù),要求顯示信息為信息為“學(xué)生表中共有學(xué)生表中共有 XX 名學(xué)生名學(xué)生”。 use xscj -將將xscj庫切換為庫切換為當(dāng)前庫當(dāng)前庫 declare rs smallint -聲明變量聲明變量 select rs=count(*) from xsqk -給變量賦值給變量賦值 print -顯示顯示1個空行個空行 print 學(xué)生表中共有學(xué)生表中共有 + convert(varchar(3),rs) + 名學(xué)生名學(xué)生將數(shù)值型將數(shù)值型rs的值轉(zhuǎn)換為的值轉(zhuǎn)換為字符型的值,以便與其它字符型的值,以便與其它字符進(jìn)
9、行串聯(lián)運(yùn)算。字符進(jìn)行串聯(lián)運(yùn)算。將字符串將字符串進(jìn)行聯(lián)接進(jìn)行聯(lián)接4、運(yùn)算符運(yùn)算符算術(shù)運(yùn)算符:算術(shù)運(yùn)算符:+ - * / %位運(yùn)算符:位運(yùn)算符:& (按位與按位與)、| (按位或按位或)、 (按位互斥按位互斥)、(求反)(求反)比較運(yùn)算符:比較運(yùn)算符:= = = != !邏輯運(yùn)算符:邏輯運(yùn)算符: And、or、not、between 、in 、like 、exists、all、any、some字符串連接運(yùn)算符:字符串連接運(yùn)算符: +賦值運(yùn)算符:賦值運(yùn)算符:= 4、運(yùn)算符 優(yōu)先級 三、T-SQL語句 批處理的含義 批處理是一條或多條T-SQL語句的集合,從應(yīng)用程序一次性發(fā)送到SQL Serv
10、er服務(wù)器,并由服務(wù)器編譯成一個可執(zhí)行單元(執(zhí)行計劃) 。1、使用批處理、使用批處理2、流程控制語句 語句塊:語句塊:beginend 條件語句:條件語句:ifelse、if exists 循環(huán)語句:循環(huán)語句:while、break、continue 等待語句:等待語句:waitfor 返回語句:返回語句:return 轉(zhuǎn)移語句:轉(zhuǎn)移語句:goto(了解)(了解)(1)BEGINEND語句 語句格式: BEGIN 語句 | 語句塊 END 作用 可以將多條T-SQL語句封裝起來,構(gòu)成一個獨(dú)立的語句塊。 BEGIN和END必須成對出現(xiàn)。語句塊的開始語句塊的結(jié)束(2) IFELSE語句 語法格式:
11、IF 邏輯表達(dá)式 語句 | 語句塊 ELSE 語句 | 語句塊 作用: 按條件控制程序的執(zhí)行。 當(dāng)條件滿足時,則在執(zhí)行條件之后的T-SQL 語句。否則,就執(zhí)行else后的T-SQL語句(若ELSE部分存在)。例1:求兩個整數(shù)的最大數(shù)。DECLARE max INT, a INT, b INTSELECT a=32,b=56IF (ab) SELECT max=aELSE SELECT max=bSELECT max AS 最大數(shù)(3)while、break和continue語句 語法格式: WHILE 邏輯表達(dá)式 語句 | 語句組 BREAK 語句 | 語句組 CONTINUE 說明: Bre
12、ak用于退出最內(nèi)層的while循環(huán)。 Continue用于重新開始一次while循環(huán)。實例實例2:計算:計算1到到100中奇數(shù)的和,要求顯示為中奇數(shù)的和,要求顯示為“奇數(shù)奇數(shù)和為:和為:XX”。 declare i int, sum int select i = 1, sum = 0 while i =0.9 )BEGIN SET je=je-0.9 SET i=i+1 IF (je5) PRINT 金額低于元金額低于元,請允值請允值! ENDSELECT je AS 余額余額,i AS 消費(fèi)次數(shù)消費(fèi)次數(shù),i*0.9 AS 消費(fèi)額消費(fèi)額PRINT 金額不足金額不足,請投幣請投幣!DECLARE
13、 i intSELECT i = 1WHILE i 500 BEGIN IF i %3=0 OR i %7=0 PRINT i SET i = i +1END課堂練習(xí)課堂練習(xí)2:計算:計算500以內(nèi)能被以內(nèi)能被3或或7整除的數(shù)。整除的數(shù)。367912141518212427495497498(4)waitfor語句 語法格式: WAITFOR DELAY 時間 | TIME 時間 作用: 指定其后的語句在某一時刻或在一段時間間隔后繼續(xù)執(zhí)行。 說明: DELAY:等待一個指定的時間間隔時間間隔,最長24小時 TIME: 等待一個指定的時間點(diǎn)時間點(diǎn)(即從某個時刻開始執(zhí)行一個操作)。 時間:指定等待
14、的時間。時間必須為datetime類型,不能包括日期。實例3:分析下列語句的功能。print 執(zhí)行waitfor之前,秒數(shù)為: + cast(datepart(ss,getdate() as varchar(5)waitfor delay 00:00:06print 執(zhí)行waitfor之后,秒數(shù)為: + cast(datepart(ss,getdate() as varchar(5)執(zhí)行執(zhí)行waitfor之前之前,秒數(shù)為秒數(shù)為: 9執(zhí)行執(zhí)行waitfor之后之后,秒數(shù)為秒數(shù)為: 15課堂練習(xí)4:延時6秒后查詢xsqk的信息;到下午4點(diǎn)15分30秒查詢xs_kc表。 waitfor delay
15、00:00:06 use xscj select * from xsqk go waitfor time 16:15:30 use xscj select * from xs_kc(5)RETURN語句 語法格式: RETURN 整型表達(dá)式 作用: 無條件地從過程、批或語句塊中退出,在return之后的其他語句不會被執(zhí)行。 說明: Return可以在過程、批和語句塊中的任何位置使用。 Return與break很相似,不同的是return可以返回一個整數(shù)。實例4:分析下列語句的功能。 use xscj if not exists(select * from xsqk where 姓名=田力) begin print 沒有找到! return end print 已找到! return本課小結(jié)u 標(biāo)識符:u 常量:u 變量:全局變量和局部變量u T-SQL系統(tǒng)內(nèi)置函數(shù)u T-SQL的運(yùn)算符本課小結(jié)u 流程控制語句概述u beginend語句u ifelse、if exists語句u while、break和continue語句u waitfor語句u return語句課余作業(yè)課外練習(xí)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年注冊會計師考試《會計》財務(wù)報表分析解題思路與技巧試題
- 2025年消防安全設(shè)施維護(hù)與管理標(biāo)準(zhǔn)試題庫
- 環(huán)保意識議論文作文4篇
- 職務(wù)晉升工作表現(xiàn)證明書(8篇)
- 歡樂的端午節(jié)活動事件類作文13篇
- 模具制造數(shù)字化設(shè)計仿真在2025年汽車電子控制系統(tǒng)制造中的應(yīng)用與優(yōu)化報告
- 稀土資源戰(zhàn)略儲備與全球產(chǎn)業(yè)鏈風(fēng)險分析報告
- 2025年工業(yè)互聯(lián)網(wǎng)平臺數(shù)據(jù)清洗算法在工業(yè)互聯(lián)網(wǎng)平臺數(shù)據(jù)創(chuàng)新服務(wù)中的應(yīng)用
- 勤奮學(xué)習(xí)快樂成長的議論文8篇范文
- 一個特別的生日禮物寫物作文4篇
- 概率潛在語義分析的算法
- LNG接收站定量風(fēng)險評價的開題報告
- 檢測行業(yè)業(yè)務(wù)開展方案
- 2024年1月電大國家開放大學(xué)期末試題及答案:企業(yè)法務(wù)
- 礦產(chǎn)資源儲量報告評審常見問題及意見
- 飼料學(xué)全套課件
- 工程部內(nèi)部培訓(xùn)(一)項目經(jīng)理培訓(xùn)
- 奇瑞入職在線測評題庫
- 智能制造中的安全與隱私問題
- DB3307-T 119 -2021 金華地方傳統(tǒng)小吃 永康肉麥餅
- 過程校驗儀市場需求分析報告
評論
0/150
提交評論