




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1SQL SERVER應(yīng)用開(kāi)發(fā)2補(bǔ)充章節(jié) SQL編程及高級(jí)應(yīng)用基礎(chǔ)知識(shí)常量與變量運(yùn)算符與表達(dá)式函數(shù)控制流語(yǔ)句游標(biāo)3基礎(chǔ)知識(shí)Transact-SQL語(yǔ)言基本對(duì)象標(biāo)識(shí)符引用SQL Server對(duì)象注釋4標(biāo)識(shí)符用來(lái)定義服務(wù)器、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)對(duì)象和變量等的名稱根據(jù)其是否符合標(biāo)識(shí)符的格式規(guī)則,可分為常規(guī)標(biāo)識(shí)符分隔標(biāo)識(shí)符5問(wèn)題引入下面給出的標(biāo)識(shí)符合法嗎?學(xué)生信息表DB_SchoolnumberStudent TableSUM6常規(guī)標(biāo)識(shí)符一般規(guī)則第一個(gè)字符必須是字母、下劃線(_)、at符號(hào)()和數(shù)字標(biāo)記(#)第一個(gè)字符后,標(biāo)識(shí)符可以是字母、來(lái)自基本拉丁字母或其他國(guó)家/地區(qū)腳本的十進(jìn)制數(shù)字、美元符號(hào)($)、下
2、劃線(_)、at符號(hào)()和數(shù)字標(biāo)記(#)標(biāo)識(shí)符不能是Transact-SQL的保留字不允許嵌入空格或其他特殊字符常規(guī)標(biāo)識(shí)符和分隔標(biāo)識(shí)符包含的字符數(shù)必須在1128之間7常規(guī)標(biāo)識(shí)符(續(xù))具有特殊用途的標(biāo)識(shí)符以 符號(hào)開(kāi)始的標(biāo)識(shí)符表示局部變量或參數(shù)以 雙符號(hào)開(kāi)始的標(biāo)識(shí)符表示全局變量以數(shù)字標(biāo)記#符號(hào)開(kāi)始的標(biāo)識(shí)符表示臨時(shí)表或過(guò)程以數(shù)字標(biāo)記#雙符號(hào)開(kāi)始的標(biāo)識(shí)符表示全局臨時(shí)對(duì)象8分隔標(biāo)識(shí)符不符合標(biāo)識(shí)符格式規(guī)則的可選擇使用分隔符類型被引用的標(biāo)識(shí)符用雙引號(hào)(“”)分隔開(kāi)。SELECT * FROM Blanks in Table Name括在括號(hào)中的標(biāo)識(shí)符用方括號(hào)( )分隔。SELECT * FROM Blank
3、s In Table Name 9標(biāo)識(shí)符命名原則標(biāo)識(shí)符的命名原則使用短的名字盡量使用有意義的名字使用簡(jiǎn)單明了的命名約定使用能夠區(qū)分出對(duì)象類型的標(biāo)識(shí)符10批批處理是包括一個(gè)多個(gè)T-SQL語(yǔ)句的組,從應(yīng)用程序一次性發(fā)送到SQL Server進(jìn)行執(zhí)行。SQL Server將批處理的語(yǔ)句編譯為一個(gè)可執(zhí)行單元,成為執(zhí)行計(jì)劃。執(zhí)行計(jì)劃中的語(yǔ)句每次執(zhí)行一條11腳本腳本是存儲(chǔ)在文件中的一系列T-SQL語(yǔ)句腳本可在Management Studio的查詢窗口中執(zhí)行12注釋注釋,也為稱注解,是程序代碼中不執(zhí)行的文本字符串。使用注釋對(duì)代碼進(jìn)行說(shuō)明,可使程序代碼更易于維護(hù)。注釋通常用于記錄程序名稱、作者姓名和主要代碼
4、更改的日期。注釋可用于描述復(fù)雜計(jì)算或解釋編程方法。USE StudentGOSELECT Sno, Sname, (Sage + 1 ) - 計(jì)算年齡FROM StudentGO示例SQL Server 支持兩種類型的注釋字符: -(雙連字符)。這些注釋字符可與要執(zhí)行的代碼處在同一行,也可另起一行。從雙連字符開(kāi)始到行尾均為注釋。例:嵌于行內(nèi)的注釋語(yǔ)句:13注釋(續(xù))/* . */(正斜杠-星號(hào)對(duì))。這些注釋字符可與要執(zhí)行的代碼處在同一行,也可另起一行,甚至在可執(zhí)行代碼內(nèi)。例:塊注釋語(yǔ)句/* 這部分代碼檢索Student表的所有行,并且顯示加一歲后的年齡。 */USE StudentGOSELE
5、CT Sname, (Sage + 1)FROM productsGO示例14常量與變量常量也稱為字面值或標(biāo)量值,是表示一個(gè)特定數(shù)據(jù)值的符號(hào)。常量的值在程序運(yùn)行過(guò)程中不會(huì)改變的。類型說(shuō)明例如整型常量沒(méi)有小數(shù)點(diǎn)和指數(shù)E60,25,-365實(shí)型常量decimal或numeric帶小數(shù)點(diǎn)的常數(shù),float或real帶指數(shù)E的常數(shù)15.63,-200.25+123E-3,-12E5字符串常量單引號(hào)引起來(lái)學(xué)生雙字節(jié)字符串前綴N必須是大寫單引號(hào)引起來(lái)N學(xué)生日期型常量單引號(hào)()引起來(lái)6/5/03,19491001貨幣型常量精確數(shù)值型數(shù)據(jù),前綴$380.215常量與變量(續(xù))變量可分為局部變量和全局變量。局部
6、變量是用來(lái)存儲(chǔ)單個(gè)指定數(shù)據(jù)類型數(shù)據(jù)值的對(duì)象全局變量是由系統(tǒng)提供且預(yù)先聲明的用來(lái)保存SQL Server系統(tǒng)運(yùn)行狀態(tài)數(shù)據(jù)值的變量16SELECE無(wú)源查詢無(wú)源SELECT語(yǔ)句是用來(lái)查詢常量、變量、函數(shù)、表達(dá)式值的語(yǔ)句。語(yǔ)法格式SELECT 常量|變量|函數(shù)|表達(dá)式 as 別名,n所謂無(wú)源查詢就是使用SELECT語(yǔ)句來(lái)查詢不在表中的數(shù)據(jù)。無(wú)源查詢實(shí)質(zhì)上就是在客戶機(jī)屏幕上顯示出常量、變量或表達(dá)式的值。使用SELECT語(yǔ)句查看常量。例如:SELECT 我們正在上SQL Server應(yīng)用開(kāi)發(fā)課程示例17局部變量變量是由用戶定義并可賦值的實(shí)體,有全局變量和局部變量?jī)煞N。局部變量用DECLARE語(yǔ)句聲明,聲明
7、時(shí)它被初始化為NULL,并由SET語(yǔ)句或SELECT語(yǔ)句賦值,只能用在聲明該變量的過(guò)程實(shí)體中,即使用范圍是定義它的批處理、存儲(chǔ)過(guò)程和觸發(fā)器等。其名字由一個(gè)符號(hào)開(kāi)始,變量名最大長(zhǎng)度30。 定義: DECLARE 局部變量名 數(shù)據(jù)類型,n賦值: SET 局部變量名=表達(dá)式,n SELECT 變量名=值使用SELECT語(yǔ)句查詢局部變量。declare 整型變量 int, s nvarchar(20)set 整型變量=40set s = 2008年歡迎您到北京 select 整型變量, sGO 示例18全局變量全局變量由SQL Server系統(tǒng)提供并賦值的變量,名字由符號(hào)開(kāi)始。用戶不能建立全局變量,也
8、不可能使用SET語(yǔ)句去修改全局變量的值。通常將全局變量的值賦給在局部變量,以便保存和處理。select version as 版本select language as 語(yǔ)言GO 示例19全局變量(續(xù))名稱說(shuō)明connections返回當(dāng)前到本服務(wù)器的連接的數(shù)目rowcount返回上一條T-SQL語(yǔ)句影響的數(shù)據(jù)行數(shù)error返回上一條T-SQL語(yǔ)句執(zhí)行后的錯(cuò)誤號(hào)procid返回當(dāng)前存儲(chǔ)過(guò)程的ID號(hào)remserver返回登錄記錄中遠(yuǎn)程服務(wù)器的名字spid返回當(dāng)前服務(wù)器進(jìn)程的ID標(biāo)識(shí)version返回當(dāng)前SQL Server服務(wù)器的版本和處理器類型language返回當(dāng)前SQL Server服務(wù)器的
9、語(yǔ)言 SQL常用的全局變量表20運(yùn)算符運(yùn)算符是一種符號(hào),用來(lái)指定要在一個(gè)或多個(gè)表達(dá)式中執(zhí)行的操作。運(yùn)算符的種類算術(shù)運(yùn)算符賦值運(yùn)算符按位運(yùn)算符比較運(yùn)算符字符串連接運(yùn)算符邏輯運(yùn)算符一元運(yùn)算符21算術(shù)運(yùn)算符用于數(shù)值型或變量間的算術(shù)運(yùn)算包括:加()、減()、乘(*)、除(/)和取模() 日期整數(shù)字符串+字符串將兩個(gè)或多個(gè)字符串合并或連接成一個(gè)字符串SELECT CAST(2006-1-1 AS smalldatetime)+100 ,我們 + 正在演示 AS 字符串連接示例22賦值運(yùn)算符等號(hào)(=),它將表達(dá)式的值賦予變量 DECLARE MyCounter INTSET MyCounter=27%4P
10、RINT CONVERT(varchar(255),MyCounter)示例23按位運(yùn)算符 對(duì)兩個(gè)表達(dá)式進(jìn)行位操作,這兩個(gè)表達(dá)式可以是整型數(shù)據(jù)或者二進(jìn)制數(shù)據(jù) 包括:按位與(&)按位或(|)按位異或()運(yùn)算規(guī)則:轉(zhuǎn)化成二進(jìn)制數(shù)后進(jìn)行按位運(yùn)算DECLARE a INT,b INTSET a=5SET b=10SELECT a&b ASab,a|b AS a|b,ab AS ab示例24比較運(yùn)算符 用來(lái)比較兩個(gè)表達(dá)式,表達(dá)式可以是字符、數(shù)字或日期數(shù)據(jù),并可用在查詢的WHERE或HAVING子句中。包括:大于()、大于等于(=)、等于(=)、不等于()、小于()、小于等于(、=、=、!=、!和!比較運(yùn)
11、算符按位運(yùn)算符: (位異或)、& (位與)、| (位或)邏輯運(yùn)算符:NOTANDALL、ANY、BETWEEN、IN、LIKE、OR、SOME賦值運(yùn)算符:=29函數(shù)在Transact-SQL 編程語(yǔ)言中函數(shù)可分系統(tǒng)定義函數(shù)和用戶定義函數(shù)。數(shù)學(xué)函數(shù)日期/時(shí)間函數(shù)聚合函數(shù)字符串函數(shù)系統(tǒng)函數(shù)自定義函數(shù)30日期/時(shí)間函數(shù)對(duì)日期和時(shí)間輸入值執(zhí)行操作,返回一個(gè)字符串、數(shù)字或日期和時(shí)間值。名稱函數(shù)現(xiàn)在日期時(shí)間GETDATE()年YEAR(日期型表達(dá)式)月MONTH(日期型表達(dá)式)日DAY(日期型表達(dá)式)日期 部分DATEPART(格式串, 日期型表達(dá)式)日期 加DATEADD(格式串,數(shù)值,日期)日期 差D
12、ATEDIFF(格式串,日期1,日期2)日期部分縮寫日期部分縮寫yearyy, yyyyweekdaydwquarterqq, qHourhhmonthmm, mminutemi, n dayofyeardy, ysecondss, sdaydd, dmillisecondmsweekwk, ww31聚合函數(shù)聚合函數(shù)對(duì)一組值執(zhí)行計(jì)算并返回單一的值。除COUNT函數(shù)之外,聚合函數(shù)忽略空值,聚合函數(shù)主要用于SELECT語(yǔ)句中GROUP BY子句。名稱最大最小求和平均計(jì)數(shù)函數(shù)MAXMINSUMAVGCOUNT32字符串函數(shù)字符串函數(shù)對(duì)字符串輸入值執(zhí)行操作,返回一個(gè)字符串或數(shù)字值。名稱函數(shù)ASCII碼
13、ASCII(字符表達(dá)式)字符CHAR(數(shù)字表達(dá)式)字符NCHAR(數(shù)字表達(dá)式)小寫LOWER(字符表達(dá)式)大寫UPPER(字符表達(dá)式)長(zhǎng)度LEN(字符表達(dá)式)空格SPACE(數(shù)字表達(dá)式)33字符串函數(shù)(續(xù)) 名稱函數(shù)截取左字串LEFT(字符表達(dá)式,整數(shù))截取右字串RIGHT(字符表達(dá)式,整數(shù))截取中間字串SUBSTRING(字符表達(dá)式,起始點(diǎn),n)求子串位置CHARINDEX(字符表達(dá)式1, 字符表達(dá)式2,開(kāi)始位置)剪去左空格LTRIM(字符表達(dá)式)剪去右空格RTRIM(字符表達(dá)式)重復(fù)字串REPLICATE(字符表達(dá)式,n)倒置字串REVERSE(字符表達(dá)式)數(shù)值轉(zhuǎn)字串STR(數(shù)字表達(dá)式)3
14、4系統(tǒng)函數(shù)轉(zhuǎn)換函數(shù)一般情況下,SQL Server 會(huì)自動(dòng)完成數(shù)據(jù)類型的轉(zhuǎn)換,稱為隱式轉(zhuǎn)換。SQL Server 可將INTEGER 數(shù)據(jù)類型或表達(dá)式轉(zhuǎn)換為SMALLINT數(shù)據(jù)類型或表達(dá)式如果不能確定SQL Server 是否能完成隱式轉(zhuǎn)換或者使用了不能隱式轉(zhuǎn)換的其它數(shù)據(jù)類型,使用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)做顯式轉(zhuǎn)換了35轉(zhuǎn)換函數(shù)顯示轉(zhuǎn)換函數(shù)有兩個(gè) CAST() 語(yǔ)法 CAST ( AS length ) CONVERT() 語(yǔ)法 CONVERT ( length , , style)length用于指定數(shù)據(jù)的長(zhǎng)度,缺省值為30data type必須是系統(tǒng)數(shù)據(jù)類型 練習(xí)假設(shè)創(chuàng)建一張表users,表中有用
15、戶名userName、密碼pwd和注冊(cè)時(shí)間regDate三個(gè)列,其中userName和pwd均為字符型,regDate為日期時(shí)間型;要求pwd列的數(shù)據(jù)長(zhǎng)度必須在六位以上,regDate有默認(rèn)值為用戶注冊(cè)時(shí)的系統(tǒng)時(shí)間,考慮約束如何定義。3637控制流語(yǔ)句用于控制Transact-SQL語(yǔ)句、語(yǔ)句塊和存儲(chǔ)過(guò)程的執(zhí)行流。BEGINENDIFELSECASEWHILEPRINT38BEGINEND用于將多個(gè)Transact-SQL語(yǔ)句組合成一個(gè)程序塊,執(zhí)行時(shí)作為一個(gè)整體被執(zhí)行。語(yǔ)法:BEGIN 執(zhí)行的SQL語(yǔ)句END常用情況:WHILE循環(huán)需要包含語(yǔ)句塊。CASE函數(shù)的元素需要包含語(yǔ)句塊。IF或ELS
16、E子句需要包含語(yǔ)句塊。BEGIN DECLARE MyVar float SET MyVar = 123.456 BEGIN PRINT 變量MyVar的值為: PRINT CAST(MyVar AS varchar(12 ) ENDEND示例39IFELSE有條件地執(zhí)行語(yǔ)句語(yǔ)法IF 條件表達(dá)式 SQL語(yǔ)句1ELSE SQL語(yǔ)句2USE StudentGOIF EXISTS(SELECT * FROM SC WHERE Sno=0811101) SELECT * FROM Student WHERE Sno=0811101ELSE BEGIN print 無(wú)此人 END示例40CASE簡(jiǎn)單CA
17、SE格式將某個(gè)表達(dá)式與一組簡(jiǎn)單表達(dá)式進(jìn)行比較,以確定結(jié)果。語(yǔ)法:CASE 測(cè)試表達(dá)式WHEN 簡(jiǎn)單表達(dá)式0 THEN 結(jié)果表達(dá)式0, WHEN 簡(jiǎn)單表達(dá)式1 THEN 結(jié)果表達(dá)式1, .nELSE 結(jié)果表達(dá)式nENDDECLARE lb intSET lb=2SELECT 圖書類別= CASE lb WHEN 1 THEN 程序設(shè)計(jì) WHEN 2 THEN 數(shù)據(jù)庫(kù)開(kāi)發(fā) WHEN 3 THEN 圖形圖像處理 WHEN 4 THEN 辦公自動(dòng)化 WHEN 5 THEN 網(wǎng)絡(luò)管理 WHEN 6 THEN 計(jì)算機(jī)硬件 WHEN 7 THEN 計(jì)算機(jī)輔助設(shè)計(jì) WHEN 8 THEN 其他 END示例41
18、CASE(續(xù))搜索CASE格式計(jì)算一組布爾表達(dá)式,以確定結(jié)果。語(yǔ)法:CASE WHEN 條件表達(dá)式0 THEN 結(jié)果表達(dá)式0,.nELSE 結(jié)果表達(dá)式nENDSELECT Sno , Sname , CASE WHEN Sage=18 THEN 不大于18歲 WHEN Sage=25 THEN 大于18歲不大于25 ELSE 大于25 ENDFROM Student ORDER BY SnoGO示例42思考查詢所有學(xué)生的考試情況,要求返回學(xué)號(hào),姓名,課程名稱及成績(jī)。其中,如有某些學(xué)生沒(méi)有考試的情況,則顯示成績(jī)信息為“缺考”。43WHILEWHILE語(yǔ)句的作用是為重復(fù)執(zhí)行某一語(yǔ)句或語(yǔ)句塊設(shè)置條件。語(yǔ)法WHILE 條件表達(dá)式 SQL語(yǔ)句 |復(fù)合語(yǔ)句說(shuō)明BREAK、CONTINUE位于復(fù)合語(yǔ)句內(nèi),可選項(xiàng)BREAK跳出循環(huán)之后執(zhí)行、CONTINUE轉(zhuǎn)到循環(huán)開(kāi)始之處執(zhí)行DECLARE Result int ,n int SET n=0SET Result =0WHILE n=100BEGIN SET Result=R
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- KOL營(yíng)銷網(wǎng)紅營(yíng)銷策略與實(shí)踐
- 倉(cāng)儲(chǔ)人力資源管理與培訓(xùn)
- 企業(yè)金融貸款合同標(biāo)準(zhǔn)文本
- 個(gè)人英文傭金合同標(biāo)準(zhǔn)文本
- 買房過(guò)戶合同標(biāo)準(zhǔn)文本
- 個(gè)人品牌打造與職業(yè)素養(yǎng)培育
- 智慧旅游運(yùn)營(yíng)實(shí)務(wù)知到課后答案智慧樹(shù)章節(jié)測(cè)試答案2025年春青島酒店管理職業(yè)技術(shù)學(xué)院
- 絲綢加工合同標(biāo)準(zhǔn)文本
- 個(gè)人店鋪招人合同標(biāo)準(zhǔn)文本
- 代理木門合同范例
- 零星維修工程 投標(biāo)方案(技術(shù)方案)
- 項(xiàng)目管理培訓(xùn)之進(jìn)度管理課件
- 《行業(yè)會(huì)計(jì)比較》教案
- 110kV@@變電站工程高大模板工程專項(xiàng)施工方案
- 先兆流產(chǎn)課件-課件
- 2022年北京市公務(wù)員錄用考試《行測(cè)》真題及答案解析
- DB11T 1028-2021 民用建筑節(jié)能門窗工程技術(shù)標(biāo)準(zhǔn)
- 院前急救課件教學(xué)課件
- 刑事案件會(huì)見(jiàn)筆錄(偵查階段)
- 2023年四川綿陽(yáng)中考滿分作文《照亮》
- 慢性肺源性心臟病的護(hù)理(內(nèi)科護(hù)理學(xué)第七版)
評(píng)論
0/150
提交評(píng)論