課件補充t-sql基礎(chǔ)_第1頁
課件補充t-sql基礎(chǔ)_第2頁
課件補充t-sql基礎(chǔ)_第3頁
課件補充t-sql基礎(chǔ)_第4頁
課件補充t-sql基礎(chǔ)_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、1SQL SERVER應(yīng)用開發(fā)2補充章節(jié) SQL編程及高級應(yīng)用基礎(chǔ)知識常量與變量運算符與表達式函數(shù)控制流語句游標3基礎(chǔ)知識Transact-SQL語言基本對象標識符引用SQL Server對象注釋4標識符用來定義服務(wù)器、數(shù)據(jù)庫、數(shù)據(jù)庫對象和變量等的名稱根據(jù)其是否符合標識符的格式規(guī)則,可分為常規(guī)標識符分隔標識符5問題引入下面給出的標識符合法嗎?學(xué)生信息表DB_SchoolnumberStudent TableSUM6常規(guī)標識符一般規(guī)則第一個字符必須是字母、下劃線(_)、at符號()和數(shù)字標記(#)第一個字符后,標識符可以是字母、來自基本拉丁字母或其他國家/地區(qū)腳本的十進制數(shù)字、美元符號($)、下

2、劃線(_)、at符號()和數(shù)字標記(#)標識符不能是Transact-SQL的保留字不允許嵌入空格或其他特殊字符常規(guī)標識符和分隔標識符包含的字符數(shù)必須在1128之間7常規(guī)標識符(續(xù))具有特殊用途的標識符以 符號開始的標識符表示局部變量或參數(shù)以 雙符號開始的標識符表示全局變量以數(shù)字標記#符號開始的標識符表示臨時表或過程以數(shù)字標記#雙符號開始的標識符表示全局臨時對象8分隔標識符不符合標識符格式規(guī)則的可選擇使用分隔符類型被引用的標識符用雙引號(“”)分隔開。SELECT * FROM Blanks in Table Name括在括號中的標識符用方括號( )分隔。SELECT * FROM Blank

3、s In Table Name 9標識符命名原則標識符的命名原則使用短的名字盡量使用有意義的名字使用簡單明了的命名約定使用能夠區(qū)分出對象類型的標識符10批批處理是包括一個多個T-SQL語句的組,從應(yīng)用程序一次性發(fā)送到SQL Server進行執(zhí)行。SQL Server將批處理的語句編譯為一個可執(zhí)行單元,成為執(zhí)行計劃。執(zhí)行計劃中的語句每次執(zhí)行一條11腳本腳本是存儲在文件中的一系列T-SQL語句腳本可在Management Studio的查詢窗口中執(zhí)行12注釋注釋,也為稱注解,是程序代碼中不執(zhí)行的文本字符串。使用注釋對代碼進行說明,可使程序代碼更易于維護。注釋通常用于記錄程序名稱、作者姓名和主要代碼

4、更改的日期。注釋可用于描述復(fù)雜計算或解釋編程方法。USE StudentGOSELECT Sno, Sname, (Sage + 1 ) - 計算年齡FROM StudentGO示例SQL Server 支持兩種類型的注釋字符: -(雙連字符)。這些注釋字符可與要執(zhí)行的代碼處在同一行,也可另起一行。從雙連字符開始到行尾均為注釋。例:嵌于行內(nèi)的注釋語句:13注釋(續(xù))/* . */(正斜杠-星號對)。這些注釋字符可與要執(zhí)行的代碼處在同一行,也可另起一行,甚至在可執(zhí)行代碼內(nèi)。例:塊注釋語句/* 這部分代碼檢索Student表的所有行,并且顯示加一歲后的年齡。 */USE StudentGOSELE

5、CT Sname, (Sage + 1)FROM productsGO示例14常量與變量常量也稱為字面值或標量值,是表示一個特定數(shù)據(jù)值的符號。常量的值在程序運行過程中不會改變的。類型說明例如整型常量沒有小數(shù)點和指數(shù)E60,25,-365實型常量decimal或numeric帶小數(shù)點的常數(shù),float或real帶指數(shù)E的常數(shù)15.63,-200.25+123E-3,-12E5字符串常量單引號引起來學(xué)生雙字節(jié)字符串前綴N必須是大寫單引號引起來N學(xué)生日期型常量單引號()引起來6/5/03,19491001貨幣型常量精確數(shù)值型數(shù)據(jù),前綴$380.215常量與變量(續(xù))變量可分為局部變量和全局變量。局部

6、變量是用來存儲單個指定數(shù)據(jù)類型數(shù)據(jù)值的對象全局變量是由系統(tǒng)提供且預(yù)先聲明的用來保存SQL Server系統(tǒng)運行狀態(tài)數(shù)據(jù)值的變量16SELECE無源查詢無源SELECT語句是用來查詢常量、變量、函數(shù)、表達式值的語句。語法格式SELECT 常量|變量|函數(shù)|表達式 as 別名,n所謂無源查詢就是使用SELECT語句來查詢不在表中的數(shù)據(jù)。無源查詢實質(zhì)上就是在客戶機屏幕上顯示出常量、變量或表達式的值。使用SELECT語句查看常量。例如:SELECT 我們正在上SQL Server應(yīng)用開發(fā)課程示例17局部變量變量是由用戶定義并可賦值的實體,有全局變量和局部變量兩種。局部變量用DECLARE語句聲明,聲明

7、時它被初始化為NULL,并由SET語句或SELECT語句賦值,只能用在聲明該變量的過程實體中,即使用范圍是定義它的批處理、存儲過程和觸發(fā)器等。其名字由一個符號開始,變量名最大長度30。 定義: DECLARE 局部變量名 數(shù)據(jù)類型,n賦值: SET 局部變量名=表達式,n SELECT 變量名=值使用SELECT語句查詢局部變量。declare 整型變量 int, s nvarchar(20)set 整型變量=40set s = 2008年歡迎您到北京 select 整型變量, sGO 示例18全局變量全局變量由SQL Server系統(tǒng)提供并賦值的變量,名字由符號開始。用戶不能建立全局變量,也

8、不可能使用SET語句去修改全局變量的值。通常將全局變量的值賦給在局部變量,以便保存和處理。select version as 版本select language as 語言GO 示例19全局變量(續(xù))名稱說明connections返回當前到本服務(wù)器的連接的數(shù)目rowcount返回上一條T-SQL語句影響的數(shù)據(jù)行數(shù)error返回上一條T-SQL語句執(zhí)行后的錯誤號procid返回當前存儲過程的ID號remserver返回登錄記錄中遠程服務(wù)器的名字spid返回當前服務(wù)器進程的ID標識version返回當前SQL Server服務(wù)器的版本和處理器類型language返回當前SQL Server服務(wù)器的

9、語言 SQL常用的全局變量表20運算符運算符是一種符號,用來指定要在一個或多個表達式中執(zhí)行的操作。運算符的種類算術(shù)運算符賦值運算符按位運算符比較運算符字符串連接運算符邏輯運算符一元運算符21算術(shù)運算符用于數(shù)值型或變量間的算術(shù)運算包括:加()、減()、乘(*)、除(/)和取模() 日期整數(shù)字符串+字符串將兩個或多個字符串合并或連接成一個字符串SELECT CAST(2006-1-1 AS smalldatetime)+100 ,我們 + 正在演示 AS 字符串連接示例22賦值運算符等號(=),它將表達式的值賦予變量 DECLARE MyCounter INTSET MyCounter=27%4P

10、RINT CONVERT(varchar(255),MyCounter)示例23按位運算符 對兩個表達式進行位操作,這兩個表達式可以是整型數(shù)據(jù)或者二進制數(shù)據(jù) 包括:按位與(&)按位或(|)按位異或()運算規(guī)則:轉(zhuǎn)化成二進制數(shù)后進行按位運算DECLARE a INT,b INTSET a=5SET b=10SELECT a&b ASab,a|b AS a|b,ab AS ab示例24比較運算符 用來比較兩個表達式,表達式可以是字符、數(shù)字或日期數(shù)據(jù),并可用在查詢的WHERE或HAVING子句中。包括:大于()、大于等于(=)、等于(=)、不等于()、小于()、小于等于(、=、=、!=、!和!比較運

11、算符按位運算符: (位異或)、& (位與)、| (位或)邏輯運算符:NOTANDALL、ANY、BETWEEN、IN、LIKE、OR、SOME賦值運算符:=29函數(shù)在Transact-SQL 編程語言中函數(shù)可分系統(tǒng)定義函數(shù)和用戶定義函數(shù)。數(shù)學(xué)函數(shù)日期/時間函數(shù)聚合函數(shù)字符串函數(shù)系統(tǒng)函數(shù)自定義函數(shù)30日期/時間函數(shù)對日期和時間輸入值執(zhí)行操作,返回一個字符串、數(shù)字或日期和時間值。名稱函數(shù)現(xiàn)在日期時間GETDATE()年YEAR(日期型表達式)月MONTH(日期型表達式)日DAY(日期型表達式)日期 部分DATEPART(格式串, 日期型表達式)日期 加DATEADD(格式串,數(shù)值,日期)日期 差D

12、ATEDIFF(格式串,日期1,日期2)日期部分縮寫日期部分縮寫yearyy, yyyyweekdaydwquarterqq, qHourhhmonthmm, mminutemi, n dayofyeardy, ysecondss, sdaydd, dmillisecondmsweekwk, ww31聚合函數(shù)聚合函數(shù)對一組值執(zhí)行計算并返回單一的值。除COUNT函數(shù)之外,聚合函數(shù)忽略空值,聚合函數(shù)主要用于SELECT語句中GROUP BY子句。名稱最大最小求和平均計數(shù)函數(shù)MAXMINSUMAVGCOUNT32字符串函數(shù)字符串函數(shù)對字符串輸入值執(zhí)行操作,返回一個字符串或數(shù)字值。名稱函數(shù)ASCII碼

13、ASCII(字符表達式)字符CHAR(數(shù)字表達式)字符NCHAR(數(shù)字表達式)小寫LOWER(字符表達式)大寫UPPER(字符表達式)長度LEN(字符表達式)空格SPACE(數(shù)字表達式)33字符串函數(shù)(續(xù)) 名稱函數(shù)截取左字串LEFT(字符表達式,整數(shù))截取右字串RIGHT(字符表達式,整數(shù))截取中間字串SUBSTRING(字符表達式,起始點,n)求子串位置CHARINDEX(字符表達式1, 字符表達式2,開始位置)剪去左空格LTRIM(字符表達式)剪去右空格RTRIM(字符表達式)重復(fù)字串REPLICATE(字符表達式,n)倒置字串REVERSE(字符表達式)數(shù)值轉(zhuǎn)字串STR(數(shù)字表達式)3

14、4系統(tǒng)函數(shù)轉(zhuǎn)換函數(shù)一般情況下,SQL Server 會自動完成數(shù)據(jù)類型的轉(zhuǎn)換,稱為隱式轉(zhuǎn)換。SQL Server 可將INTEGER 數(shù)據(jù)類型或表達式轉(zhuǎn)換為SMALLINT數(shù)據(jù)類型或表達式如果不能確定SQL Server 是否能完成隱式轉(zhuǎn)換或者使用了不能隱式轉(zhuǎn)換的其它數(shù)據(jù)類型,使用數(shù)據(jù)類型轉(zhuǎn)換函數(shù)做顯式轉(zhuǎn)換了35轉(zhuǎn)換函數(shù)顯示轉(zhuǎn)換函數(shù)有兩個 CAST() 語法 CAST ( AS length ) CONVERT() 語法 CONVERT ( length , , style)length用于指定數(shù)據(jù)的長度,缺省值為30data type必須是系統(tǒng)數(shù)據(jù)類型 練習(xí)假設(shè)創(chuàng)建一張表users,表中有用

15、戶名userName、密碼pwd和注冊時間regDate三個列,其中userName和pwd均為字符型,regDate為日期時間型;要求pwd列的數(shù)據(jù)長度必須在六位以上,regDate有默認值為用戶注冊時的系統(tǒng)時間,考慮約束如何定義。3637控制流語句用于控制Transact-SQL語句、語句塊和存儲過程的執(zhí)行流。BEGINENDIFELSECASEWHILEPRINT38BEGINEND用于將多個Transact-SQL語句組合成一個程序塊,執(zhí)行時作為一個整體被執(zhí)行。語法:BEGIN 執(zhí)行的SQL語句END常用情況:WHILE循環(huán)需要包含語句塊。CASE函數(shù)的元素需要包含語句塊。IF或ELS

16、E子句需要包含語句塊。BEGIN DECLARE MyVar float SET MyVar = 123.456 BEGIN PRINT 變量MyVar的值為: PRINT CAST(MyVar AS varchar(12 ) ENDEND示例39IFELSE有條件地執(zhí)行語句語法IF 條件表達式 SQL語句1ELSE SQL語句2USE StudentGOIF EXISTS(SELECT * FROM SC WHERE Sno=0811101) SELECT * FROM Student WHERE Sno=0811101ELSE BEGIN print 無此人 END示例40CASE簡單CA

17、SE格式將某個表達式與一組簡單表達式進行比較,以確定結(jié)果。語法:CASE 測試表達式WHEN 簡單表達式0 THEN 結(jié)果表達式0, WHEN 簡單表達式1 THEN 結(jié)果表達式1, .nELSE 結(jié)果表達式nENDDECLARE lb intSET lb=2SELECT 圖書類別= CASE lb WHEN 1 THEN 程序設(shè)計 WHEN 2 THEN 數(shù)據(jù)庫開發(fā) WHEN 3 THEN 圖形圖像處理 WHEN 4 THEN 辦公自動化 WHEN 5 THEN 網(wǎng)絡(luò)管理 WHEN 6 THEN 計算機硬件 WHEN 7 THEN 計算機輔助設(shè)計 WHEN 8 THEN 其他 END示例41

18、CASE(續(xù))搜索CASE格式計算一組布爾表達式,以確定結(jié)果。語法:CASE WHEN 條件表達式0 THEN 結(jié)果表達式0,.nELSE 結(jié)果表達式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é)號,姓名,課程名稱及成績。其中,如有某些學(xué)生沒有考試的情況,則顯示成績信息為“缺考”。43WHILEWHILE語句的作用是為重復(fù)執(zhí)行某一語句或語句塊設(shè)置條件。語法WHILE 條件表達式 SQL語句 |復(fù)合語句說明BREAK、CONTINUE位于復(fù)合語句內(nèi),可選項BREAK跳出循環(huán)之后執(zhí)行、CONTINUE轉(zhuǎn)到循環(huán)開始之處執(zhí)行DECLARE Result int ,n int SET n=0SET Result =0WHILE n=100BEGIN SET Result=R

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論