




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第二章第二章 使用使用T-SQL編程編程課程回顧課程回顧u數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)步驟數(shù)據(jù)庫(kù)設(shè)計(jì)的四個(gè)步驟n收集信息收集信息n標(biāo)識(shí)實(shí)體標(biāo)識(shí)實(shí)體n標(biāo)識(shí)實(shí)體的屬性標(biāo)識(shí)實(shí)體的屬性n標(biāo)識(shí)實(shí)體之間的關(guān)系標(biāo)識(shí)實(shí)體之間的關(guān)系uE-RE-R圖中矩形表示實(shí)體,橢圓表示屬性,菱形表示實(shí)體之間的關(guān)系。圖中矩形表示實(shí)體,橢圓表示屬性,菱形表示實(shí)體之間的關(guān)系。u實(shí)體之間的映射基數(shù)有四種:實(shí)體之間的映射基數(shù)有四種:1 1:1 1、1 1:N N、N N:1 1、M M:N Nu數(shù)據(jù)庫(kù)規(guī)范化設(shè)計(jì)使用三大范式理論數(shù)據(jù)庫(kù)規(guī)范化設(shè)計(jì)使用三大范式理論n1NF1NF:要求保證列的原子性,列不可再分:要求保證列的原子性,列不可再分n2NF2N
2、F:要求保證所有的列都必須依賴于主鍵:要求保證所有的列都必須依賴于主鍵n3NF3NF:要求保證所有的列都必須直接依賴于主鍵,不能傳遞函數(shù)依賴:要求保證所有的列都必須直接依賴于主鍵,不能傳遞函數(shù)依賴本章內(nèi)容本章內(nèi)容uT-SQLT-SQL中的變量中的變量uT-SQLT-SQL中的運(yùn)算符中的運(yùn)算符uT-SQLT-SQL中的批處理語(yǔ)句中的批處理語(yǔ)句uT-SQLT-SQL中的流程控制語(yǔ)句中的流程控制語(yǔ)句本章目標(biāo)本章目標(biāo)u掌握變量的作用域和使用掌握變量的作用域和使用u掌握常用的運(yùn)算符掌握常用的運(yùn)算符u掌握掌握T-SQLT-SQL流程控制語(yǔ)句流程控制語(yǔ)句1. T-SQL1. T-SQL中的變量中的變量 uT
3、-SQLT-SQL中的變量分為:中的變量分為:n局部變量局部變量局部變量必須以標(biāo)記局部變量必須以標(biāo)記 作為前綴,如作為前綴,如numnum局部變量的使用是先聲明,再賦值局部變量的使用是先聲明,再賦值 n全局變量全局變量全局變量必須以標(biāo)記全局變量必須以標(biāo)記作為前綴,如作為前綴,如versionversion全局變量由系統(tǒng)定義和維護(hù),只能讀取,不能修改全局變量的值全局變量由系統(tǒng)定義和維護(hù),只能讀取,不能修改全局變量的值1.1 1.1 T-SQL變量概述變量概述1.1 T-SQL1.1 T-SQL變量概述變量概述u全局變量全局變量變量名變量名作用作用ERROR返回執(zhí)行的上一個(gè)語(yǔ)句的錯(cuò)誤號(hào)返回執(zhí)行的上
4、一個(gè)語(yǔ)句的錯(cuò)誤號(hào)IDENTITY返回最后插入的標(biāo)識(shí)值返回最后插入的標(biāo)識(shí)值MAX_CONNECTIONS返回允許同時(shí)進(jìn)行的最大用戶連接數(shù)返回允許同時(shí)進(jìn)行的最大用戶連接數(shù)ROWCOUNT返回受上一語(yǔ)句影響的行數(shù)返回受上一語(yǔ)句影響的行數(shù)SERVERNAME返回運(yùn)行返回運(yùn)行 SQL Server 的本地服務(wù)器的名稱的本地服務(wù)器的名稱SERVICENAME返回返回 SQL Server 正在其下運(yùn)行的注冊(cè)表項(xiàng)的名稱正在其下運(yùn)行的注冊(cè)表項(xiàng)的名稱TRANCOUNT返回當(dāng)前連接的活動(dòng)事務(wù)數(shù)返回當(dāng)前連接的活動(dòng)事務(wù)數(shù)LOCK_TIMEOUT返回當(dāng)前會(huì)話的當(dāng)前鎖定超時(shí)設(shè)置(毫秒)返回當(dāng)前會(huì)話的當(dāng)前鎖定超時(shí)設(shè)置(毫秒
5、)1.2 1.2 定義局部變量并賦值定義局部變量并賦值 u聲明局部變量聲明局部變量DECLARE varname DataType DECLARE DeptNo NVARCHAR(10) u為局部變量賦值為局部變量賦值SET varname=VALUE 或或 SELECT varname=VALUESET DeptNo=D02 PRINT 錯(cuò)誤號(hào)碼錯(cuò)誤號(hào)碼+CONVERT(NVARCHAR(225),ERROR)1.2 1.2 定義局部變量并賦值定義局部變量并賦值u局部變量的使用局部變量的使用要求查詢要求查詢“陸遜陸遜”的賬戶余額信息的賬戶余額信息 USE BankGOdeclare acco
6、untId varchar(20)-聲明變量聲明變量select accountId = ACCOUNT_ID from dbo.ACCOUNTwhere ACCOUNT_NAME = 陸遜陸遜select BALANCE from ALL_PURPOSE_CARD whereACCOUNT_ID = accountId GO使用變量和為使用變量和為變量賦值變量賦值1.3 GO1.3 GO語(yǔ)句語(yǔ)句全局變量的作用域全局變量的作用域GO局部變量的作用域局部變量的作用域GO整個(gè)整個(gè)DBMSGO語(yǔ)句分開(kāi)的批語(yǔ)句分開(kāi)的批處理語(yǔ)句塊內(nèi)處理語(yǔ)句塊內(nèi)uGOGO語(yǔ)句的作用語(yǔ)句的作用n等待等待GOGO語(yǔ)句前的代碼
7、執(zhí)行完畢后,再執(zhí)行語(yǔ)句前的代碼執(zhí)行完畢后,再執(zhí)行GOGO后面的語(yǔ)句后面的語(yǔ)句n作為批處理語(yǔ)句的結(jié)束標(biāo)記作為批處理語(yǔ)句的結(jié)束標(biāo)記1.4 1.4 輸出語(yǔ)句輸出語(yǔ)句 u輸出語(yǔ)句包括輸出語(yǔ)句包括PRINTPRINT和和SELECTSELECTPRINT 局部變量或字符串局部變量或字符串PRINT 錯(cuò)誤號(hào)碼錯(cuò)誤號(hào)碼+CONVERT(NVARCHAR(225),ERROR)SELECT 局部變量或全局變量局部變量或全局變量 AS 別名別名SELECT VERSION AS 版本號(hào)為:版本號(hào)為:小結(jié)小結(jié)1 1u局部變量的聲明使用什么關(guān)鍵字?局部變量的聲明使用什么關(guān)鍵字?u局部變量和全局變量有什么區(qū)別?局部變
8、量和全局變量有什么區(qū)別?uT-SQL局部變量的方式有哪兩種?它們的區(qū)別是什么?局部變量的方式有哪兩種?它們的區(qū)別是什么?2.T-SQL2.T-SQL中中的的運(yùn)算符運(yùn)算符 uT-SQLT-SQL中使用的運(yùn)算符分為中使用的運(yùn)算符分為7 7種種n算數(shù)運(yùn)算符:加(算數(shù)運(yùn)算符:加(+ +)、減()、減(- -)、乘()、乘(* *)、除()、除(/ /)、模()、模(% %) n邏輯運(yùn)算符:邏輯運(yùn)算符:ALLALL、ANYANY、EXISTSEXISTS、ININ、LIKELIKE、ANDAND、NOTNOT、OROR、BETWEEN BETWEEN n賦值運(yùn)算符:賦值運(yùn)算符:= = n字符串運(yùn)算符:字
9、符串運(yùn)算符:+ + n比較運(yùn)算符:比較運(yùn)算符:= =、 、 =、=、 n位運(yùn)算符:位運(yùn)算符:| |、& &、 n復(fù)合運(yùn)算符:復(fù)合運(yùn)算符:+=+=、-=-=、/=/=、%=%=、* *= = 2.1 T-SQL運(yùn)算符概述運(yùn)算符概述 2.1 T-SQL 2.1 T-SQL運(yùn)算符概述運(yùn)算符概述 u算數(shù)運(yùn)算符示例算數(shù)運(yùn)算符示例DECLARE OptNumber int=124PRINT 轉(zhuǎn)換前:轉(zhuǎn)換前:+CONVERT(VARCHAR(3),OptNumber)DECLARE Reverse VARCHAR(3)DECLARE Unit int=OptNumber % 10SET Re
10、verse=CONVERT(VARCHAR(1),Unit)SET OptNumber=OptNumber/10SET Unit=OptNumber % 10SET Reverse=Reverse+CONVERT(VARCHAR(1),Unit)SET OptNumber=OptNumber/10PRINT 轉(zhuǎn)換后:轉(zhuǎn)換后:+Reverse+CONVERT(VARCHAR(1),OptNumber)2.2 2.2 邏輯運(yùn)算符邏輯運(yùn)算符uALLALLn用于比較特定值與結(jié)果集的所有值之間的邏輯關(guān)系,結(jié)果為布爾值。一般情用于比較特定值與結(jié)果集的所有值之間的邏輯關(guān)系,結(jié)果為布爾值。一般情況下與比較運(yùn)算
11、符一起使用。況下與比較運(yùn)算符一起使用。特定值特定值 =|!=|=|=|! ALL(SELECT語(yǔ)句語(yǔ)句) IF 5000 = ALL(SELECT BALANCE FROM ALL_PURPOSE_CARD)PRINT 所有賬戶余額都超過(guò)所有賬戶余額都超過(guò)5000ELSEPRINT 還有余額未超過(guò)還有余額未超過(guò)5000的用戶的用戶 2.2 2.2 邏輯運(yùn)算符邏輯運(yùn)算符uANYANYn用于比較特定值與結(jié)果集的所有值之間的邏輯關(guān)系,結(jié)果為布爾值。用于比較特定值與結(jié)果集的所有值之間的邏輯關(guān)系,結(jié)果為布爾值。 一般一般情況下與比較運(yùn)算符一起使用。情況下與比較運(yùn)算符一起使用。特定值特定值 =|!=|=|
12、=|! ANY(SELECT語(yǔ)句語(yǔ)句) IF 5000 300BEGININSERT INTOALL_CARD_EXCHANGE(CARD_ID,EXGET,BALANCE,EXTIME,EXADDRESS) VALUES(3,300,BALANCE-300,2011-12-18,ATM取款取款)UPDATE ALL_PURPOSE_CARD SET BALANCE = BALANCE-300 , LAST_USED_DATE = 2011-12-18 WHERE CARD_NO = 6225643823656648END 3.2 IF ELSE3.2 IF ELSE條件語(yǔ)句條件語(yǔ)句 IF (
13、條件條件)語(yǔ)句語(yǔ)句ELSE語(yǔ)句語(yǔ)句實(shí)現(xiàn)實(shí)現(xiàn)“陸遜陸遜”取款金額為取款金額為1500015000,判斷余額是否大于取款金額,如果小于,判斷余額是否大于取款金額,如果小于1500015000則顯示余額不足。則顯示余額不足。 DECLARE BALANCEDECLARE BALANCEFLOATFLOATSELECT BALANCE = BALANCE FROM ALL_PURPOSE_CARD WHERE CARD_NO = SELECT BALANCE = BALANCE FROM ALL_PURPOSE_CARD WHERE CARD_NO = 622588770654901162258877
14、06549011IF BALANCE 15000IF BALANCE 15000BEGINBEGININSERT INTO ALL_CARD_EXCHANGE(CARD_ID,EXGET,BALANCE,EXTIME,EXADDRESS)INSERT INTO ALL_CARD_EXCHANGE(CARD_ID,EXGET,BALANCE,EXTIME,EXADDRESS) VALUES(1, 15000,BALANCE-15000,2011-12-25,ATM VALUES(1, 15000,BALANCE-15000,2011-12-25,ATM取款取款)UPDATE ALL_PURPOS
15、E_CARD SET BALANCE = BALANCE-15000 WHERE CARD_NO = UPDATE ALL_PURPOSE_CARD SET BALANCE = BALANCE-15000 WHERE CARD_NO = 62258877065490116225887706549011ENDENDELSEELSEPRINT PRINT 余額不足余額不足!3.3 WHILE3.3 WHILE循環(huán)語(yǔ)句循環(huán)語(yǔ)句 uWHILEWHILE語(yǔ)句可以根據(jù)條件重復(fù)執(zhí)行一條語(yǔ)句可以根據(jù)條件重復(fù)執(zhí)行一條SQLSQL語(yǔ)句或一個(gè)語(yǔ)句塊。語(yǔ)句或一個(gè)語(yǔ)句塊。WHILEWHILE的條件的條件是布爾表達(dá)式,只
16、要條件為是布爾表達(dá)式,只要條件為T(mén)RUETRUE,就會(huì)重復(fù)執(zhí)行,就會(huì)重復(fù)執(zhí)行WHILEWHILE塊內(nèi)的語(yǔ)句。在循環(huán)塊內(nèi)的語(yǔ)句。在循環(huán)過(guò)程中,可以與過(guò)程中,可以與CONTINUECONTINUE、BREAKBREAK關(guān)鍵字一起使用,控制語(yǔ)句的執(zhí)行。關(guān)鍵字一起使用,控制語(yǔ)句的執(zhí)行。 循環(huán)打印循環(huán)打印1-10declare nI intset nI = 1while nI 10breakprint nIset nI += 1ENDGO3.4 CASE3.4 CASE多分支語(yǔ)句多分支語(yǔ)句 CASEWHEN 條件1 THEN 結(jié)果1WHEN 條件2 THEN 結(jié)果2ELSE 其他結(jié)果ENDu當(dāng)滿足條件當(dāng)
17、滿足條件1 1時(shí),返回結(jié)果時(shí),返回結(jié)果1 1;滿足條件;滿足條件2 2時(shí),返回結(jié)果時(shí),返回結(jié)果2 2;如果兩個(gè)條;如果兩個(gè)條件都不滿足,則返回其他結(jié)果。件都不滿足,則返回其他結(jié)果。ELSEELSE是可選的。是可選的。3.4 CASE3.4 CASE多分支語(yǔ)句多分支語(yǔ)句 u根據(jù)卡上的金額,評(píng)定用戶類型,依次判定是否屬于“VIP客戶”、“重點(diǎn)客戶”或“普通用戶”。 SELECT CARD_NO,BALANCE,等級(jí)等級(jí)=CASE WHEN BALANCE 500000 THEN VIP客戶客戶WHEN BALANCE BETWEEN 100000 AND 500000 THEN 重點(diǎn)客戶重點(diǎn)客戶E
18、lSE 普通用戶普通用戶ENDFROM ALL_PURPOSE_CARD 小結(jié)小結(jié)3 3u如何使用如何使用CASE語(yǔ)句語(yǔ)句?本章總結(jié)本章總結(jié)u變量的使用是先聲明、后賦值。其作用域有全局和局部?jī)煞N。全局變量變量的使用是先聲明、后賦值。其作用域有全局和局部?jī)煞N。全局變量由系統(tǒng)提供,以由系統(tǒng)提供,以為前綴,局部變量以為前綴,局部變量以 為前綴,并且只在批處理塊內(nèi)有為前綴,并且只在批處理塊內(nèi)有效。效。u變量的賦值有兩種方式:變量的賦值有兩種方式:SETSET和和SELECTSELECT。SETSET賦值一般用于將已經(jīng)給定的賦值一般用于將已經(jīng)給定的值賦給變量;值賦給變量;SELECTSELECT賦值的數(shù)據(jù)來(lái)源于查詢。賦值的數(shù)據(jù)來(lái)源于查詢。uT-SQLT-S
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 經(jīng)濟(jì)利益與社會(huì)責(zé)任的協(xié)調(diào)試題及答案
- Java開(kāi)發(fā)中的常見(jiàn)問(wèn)題試題及答案
- 人工智能技術(shù)對(duì)傳統(tǒng)行業(yè)的變革試題及答案
- 行政法學(xué)的學(xué)術(shù)研究與實(shí)踐相結(jié)合的策略試題及答案
- 2025標(biāo)準(zhǔn)的產(chǎn)品買(mǎi)賣(mài)合同模板
- 組建公司合作協(xié)議書(shū)模板
- 企業(yè)戰(zhàn)略與最佳實(shí)踐試題及答案
- 行政管理科研方法論試題及答案
- 【舟山】2025年浙江舟山市定海區(qū)部分事業(yè)單位公開(kāi)招聘工作人員20人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 2025購(gòu)買(mǎi)商品房定金合同范本
- 高級(jí)審計(jì)師考試關(guān)注熱點(diǎn)試題及答案
- 2025-2030年中國(guó)城市燃?xì)庑袠I(yè)發(fā)展分析及發(fā)展戰(zhàn)略研究報(bào)告
- 人民醫(yī)院關(guān)于印發(fā)對(duì)口支援工作管理辦法(暫行)
- 2024-2025學(xué)年高二下學(xué)期《無(wú)煙青春健康同行》主題班會(huì)課件
- 收費(fèi)站防汛應(yīng)急預(yù)案
- 《糖尿病的護(hù)理查房》課件
- 擊劍考試題目及答案
- 貴州貴州鐵路投資集團(tuán)有限責(zé)任公司招聘筆試真題2024
- 2025年浙江湖州市城市投資發(fā)展集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2023江蘇南京紫金山科技產(chǎn)業(yè)發(fā)展集團(tuán)有限公司工作人員招聘7人筆試參考題庫(kù)附帶答案詳解
- 航空航天技術(shù)原理與實(shí)際應(yīng)用測(cè)試卷
評(píng)論
0/150
提交評(píng)論