




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第第8章章 T-SQL編程基礎(chǔ)編程基礎(chǔ)主講人:董瑞芝復(fù)習(xí):設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì)數(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元時(shí),顯示友好提示信息元時(shí),顯示友好提示信息“金額低于金額低于5元元,請(qǐng)盡快充請(qǐng)盡快充值值!”,當(dāng)余額低于,當(dāng)余額低于0.9元時(shí),顯元時(shí),顯示友情提示示友情提示 “余額不足,請(qǐng)投幣!余額不足,請(qǐng)投幣!”。該案例中包含了變量及計(jì)算等問題,那么如何實(shí)現(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元元,請(qǐng)?jiān)手嫡?qǐng)?jiān)手? ENDSELECT je AS 余額余額,i AS 消費(fèi)次數(shù)消費(fèi)次
3、數(shù),i*0.9 AS 消費(fèi)額消費(fèi)額PRINT 金額不足金額不足,請(qǐng)投幣請(qǐng)投幣!本章要點(diǎn) 變量變量 表達(dá)式表達(dá)式 語句語句認(rèn)知目標(biāo): 了解標(biāo)識(shí)符的命名規(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)識(shí)符 標(biāo)識(shí)符的含義 是指用戶定義的變量名、函數(shù)名、存儲(chǔ)過程名、庫名、表名、索引名、視圖名等各種名稱。 命名規(guī)則(P169) 標(biāo)識(shí)符的長度可以為1-128個(gè)字符 標(biāo)識(shí)符的第一個(gè)字符必須為字母
4、、下劃線、#以為首的標(biāo)識(shí)符表示1個(gè)局部變量。對(duì)于表或存儲(chǔ)過程,名稱前包含一個(gè)#時(shí)表示局部臨時(shí)對(duì)象,而兩個(gè)#(“#”)則表示為全局臨時(shí)對(duì)象。 標(biāo)識(shí)符內(nèi)不允許有空格,也不允許為SQL中的關(guān)鍵字 一、標(biāo)識(shí)符課堂練習(xí)1:判斷下列哪些標(biāo)識(shí)符是合法的?哪些是不合法的?_AbC X yza1 where#proc #xs7table as 1、常量常量的含義 在運(yùn)行過程中保持不變的量,是表示特定數(shù)據(jù)值的符號(hào)課堂練習(xí)2:判斷下列常量是什么類型常量?1894 2.5E2 1.52$12 -$23.5123 w34 2006-04-24二、二、T-SQL表達(dá)式表達(dá)式2、變量 局部變量: 用戶自己定義的變量,用于在
5、語句之間傳遞數(shù)據(jù) 局部變量名以符號(hào)開頭 使用時(shí),必須先聲明 全局變量(了解): 是系統(tǒng)定義的變量,用于存儲(chǔ)系統(tǒng)的特定信息 用戶不能建立全局變量,也不能修改其值 全局變量名以符號(hào)開頭2、變量 局部變量的聲明語法格式declare 變量名 數(shù)據(jù)類型,n 實(shí)例1:分別定義一個(gè)整型變量和兩個(gè)字符型變量。declare name varchar(10) declare age smallint , msg varchar(50)注意:局部變量未被賦值之前,其值為null。2、變量 局部變量的賦值語法格式:SET 變量=表達(dá)式SELECT 變量=表達(dá)式 ,n說明: select語句不能同時(shí)完成賦值和查詢兩
6、種操作實(shí)例2:給age、name、msg賦值。SELECT name=劉偉,age=21SET msg=歡迎使用SQL Server 20052、變量 局部變量的顯示語法格式為:PRINT 表達(dá)式SELECT 表達(dá)式 ,n 實(shí)例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í)間函數(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)用實(shí)例4:已知msg的值為“歡迎使用SQL Server 2005”,顯示該字串的長度。課堂練習(xí)3:顯示kc表中課程號(hào)為“107”的課程名稱的長度。udeclaresmallintuselectlenfromwhere107uselectasudeclarevarchar(50) - -聲明變量聲明變量uselect - -給變量賦值給變量賦值uselectas- -顯
8、示變量的值顯示變量的值實(shí)例實(shí)例5:統(tǒng)計(jì):統(tǒng)計(jì)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個(gè)空行個(gè)空行 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)先級(jí) 三、T-SQL語句 批處理的含義 批處理是一條或多條T-SQL語句的集合,從應(yīng)用程序一次性發(fā)送到SQL Serv
10、er服務(wù)器,并由服務(wù)器編譯成一個(gè)可執(zhí)行單元(執(zhí)行計(jì)劃) 。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)成一個(gè)獨(dú)立的語句塊。 BEGIN和END必須成對(duì)出現(xiàn)。語句塊的開始語句塊的結(jié)束(2) IFELSE語句 語法格式:
11、IF 邏輯表達(dá)式 語句 | 語句塊 ELSE 語句 | 語句塊 作用: 按條件控制程序的執(zhí)行。 當(dāng)條件滿足時(shí),則在執(zhí)行條件之后的T-SQL 語句。否則,就執(zhí)行else后的T-SQL語句(若ELSE部分存在)。例1:求兩個(gè)整數(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)。實(shí)例實(shí)例2:計(jì)算:計(jì)算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 金額低于元金額低于元,請(qǐng)?jiān)手嫡?qǐng)?jiān)手? ENDSELECT je AS 余額余額,i AS 消費(fèi)次數(shù)消費(fèi)次數(shù),i*0.9 AS 消費(fèi)額消費(fèi)額PRINT 金額不足金額不足,請(qǐng)投幣請(qǐng)投幣!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:計(jì)算:計(jì)算500以內(nèi)能被以內(nèi)能被3或或7整除的數(shù)。整除的數(shù)。367912141518212427495497498(4)waitfor語句 語法格式: WAITFOR DELAY 時(shí)間 | TIME 時(shí)間 作用: 指定其后的語句在某一時(shí)刻或在一段時(shí)間間隔后繼續(xù)執(zhí)行。 說明: DELAY:等待一個(gè)指定的時(shí)間間隔時(shí)間間隔,最長24小時(shí) TIME: 等待一個(gè)指定的時(shí)間點(diǎn)時(shí)間點(diǎn)(即從某個(gè)時(shí)刻開始執(zhí)行一個(gè)操作)。 時(shí)間:指定等待
14、的時(shí)間。時(shí)間必須為datetime類型,不能包括日期。實(shí)例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:延時(shí)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之后的其他語句不會(huì)被執(zhí)行。 說明: Return可以在過程、批和語句塊中的任何位置使用。 Return與break很相似,不同的是return可以返回一個(gè)整數(shù)。實(shí)例4:分析下列語句的功能。 use xscj if not exists(select * from xsqk where 姓名=田力) begin print 沒有找到! return end print 已找到! return本課小結(jié)u 標(biāo)識(shí)符: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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年調(diào)查分析師考試試題及答案
- 人工智能技術(shù)研發(fā)經(jīng)驗(yàn)工作證明(5篇)
- 授權(quán)代表證明書及授權(quán)事項(xiàng)清單(8篇)
- 某中學(xué)圖書借閱統(tǒng)計(jì)分析制度
- 2025年電式混動(dòng)車項(xiàng)目申請(qǐng)報(bào)告
- 網(wǎng)絡(luò)維護(hù)外包服務(wù)協(xié)議合同書
- 經(jīng)濟(jì)學(xué)原理與經(jīng)濟(jì)形勢分析題目
- 物聯(lián)網(wǎng)技術(shù)在智慧城市規(guī)劃中的應(yīng)用協(xié)議
- 2025年注冊(cè)會(huì)計(jì)師考試《會(huì)計(jì)》財(cái)務(wù)報(bào)表分析解題思路與技巧試題
- 介紹我的日常用品作文9篇范文
- LNG接收站定量風(fēng)險(xiǎn)評(píng)價(jià)的開題報(bào)告
- 檢測行業(yè)業(yè)務(wù)開展方案
- 2024年1月電大國家開放大學(xué)期末試題及答案:企業(yè)法務(wù)
- 礦產(chǎn)資源儲(chǔ)量報(bào)告評(píng)審常見問題及意見
- 飼料學(xué)全套課件
- 工程部內(nèi)部培訓(xùn)(一)項(xiàng)目經(jīng)理培訓(xùn)
- 奇瑞入職在線測評(píng)題庫
- 智能制造中的安全與隱私問題
- DB3307-T 119 -2021 金華地方傳統(tǒng)小吃 永康肉麥餅
- 過程校驗(yàn)儀市場需求分析報(bào)告
- 2017風(fēng)電功率預(yù)測系統(tǒng)測風(fēng)塔數(shù)據(jù)測量技術(shù)要求
評(píng)論
0/150
提交評(píng)論