版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
SQLServer2000實(shí)用教程歡迎學(xué)習(xí)Transact-SQL語(yǔ)言第9章第9章Transact-SQL語(yǔ)言9.1
SQL語(yǔ)言的概述9.2
命名規(guī)則和注釋第9章Transact-SQL語(yǔ)言9.3
變量9.4
運(yùn)算符第9章Transact-SQL語(yǔ)言9.5
函數(shù)9.6
批處理和流程控制語(yǔ)句能力要求:通過對(duì)本章的學(xué)習(xí),讀者應(yīng)掌握如下技能:使用T-SQL實(shí)現(xiàn)數(shù)據(jù)定義;使用T-SQL實(shí)現(xiàn)數(shù)據(jù)檢索使用T-SQL實(shí)現(xiàn)數(shù)據(jù)操縱第9章Transact-SQL語(yǔ)言第9章Transact-SQL語(yǔ)言9.1SQL語(yǔ)言的概述第9章Transact-SQL語(yǔ)言9.1
SQL語(yǔ)言的概述隨著關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)應(yīng)用的發(fā)展,1986年10月美國(guó)國(guó)家標(biāo)準(zhǔn)局(ANSI)通過的數(shù)據(jù)庫(kù)語(yǔ)言美國(guó)標(biāo)準(zhǔn)SQL,接著,國(guó)際標(biāo)準(zhǔn)化組織(ISO)頒布了SQL正式國(guó)際標(biāo)準(zhǔn)。1989年4月,ISO提出了具有完整性特征的SQL89標(biāo)準(zhǔn),1992年11月又公布了SQL92標(biāo)準(zhǔn)。各種不同的數(shù)據(jù)庫(kù)對(duì)SQL語(yǔ)言的支持與標(biāo)準(zhǔn)存在著細(xì)微的不同,這是因?yàn)?,有的產(chǎn)品的開發(fā)先于標(biāo)準(zhǔn)的公布,另外,各產(chǎn)品開發(fā)商為了達(dá)到特殊的性能或新的特性,需要對(duì)標(biāo)準(zhǔn)進(jìn)行擴(kuò)展。T-SQL就是Microsoft公司對(duì)此標(biāo)準(zhǔn)的一個(gè)實(shí)現(xiàn)。在Transact-SQL語(yǔ)言中標(biāo)準(zhǔn)的SQL語(yǔ)句可以暢通無阻。第9章Transact-SQL語(yǔ)言9.2命名規(guī)則和注釋9.2.1
SQL對(duì)象的命名規(guī)則9.2.2
注釋第9章Transact-SQL語(yǔ)言9.2
命名規(guī)則和注釋在SQLServer中所有的對(duì)象的名稱都必須符合SQL中規(guī)定的命名規(guī)則。對(duì)于非法的對(duì)象名,系統(tǒng)視為無效字符。在程序中,我們需要對(duì)某些命令行進(jìn)行解釋說明,系統(tǒng)雖然允許在程序中存在但不為系統(tǒng)執(zhí)行,這些就是注釋部分。第9章Transact-SQL語(yǔ)言9.2.1
SQL對(duì)象的命名規(guī)則標(biāo)識(shí)符是指一個(gè)由用戶定義的,SQLServer可識(shí)別的有意義的字符序列。SQL對(duì)象常規(guī)的標(biāo)示符規(guī)則取決于數(shù)據(jù)庫(kù)的兼容級(jí)別,兼容級(jí)別可以用sp_dbcmptlevel來設(shè)置。其規(guī)則是:(1)第一個(gè)字符必須是下列字符之一:字母a~z和A~Z,以及來自其他高級(jí)語(yǔ)言的字母字符、下劃線_、@或者數(shù)字符號(hào)#。在SQLServer中,某些處于標(biāo)識(shí)符開始位置的符號(hào)具有特殊意義。以@符號(hào)開始的標(biāo)識(shí)符表示局部變量或參數(shù)。以一個(gè)數(shù)字符號(hào)開始的標(biāo)識(shí)符表示臨時(shí)表或過程。以雙數(shù)字符號(hào)(##)開始的標(biāo)識(shí)符表示全局臨時(shí)對(duì)象。某些Transact_SQL函數(shù)的名稱以雙@符號(hào)(@@)開始。為避免混淆這些函數(shù),建議不要使用以@@開始的名稱。(2)后續(xù)字符可以是:所有的字母、十進(jìn)制數(shù)字、@符號(hào)、美元符號(hào)($)、數(shù)字符號(hào)或下劃線。
1.常規(guī)對(duì)象的標(biāo)示符規(guī)則第9章Transact-SQL語(yǔ)言9.2.1
SQL對(duì)象的命名規(guī)則數(shù)據(jù)庫(kù)對(duì)象命名的格式如下:[[[server_name..][database_name].][owner_name].]object_name其中:
Server_name:對(duì)象所在的服務(wù)器名稱。
Database_name:對(duì)象所在的數(shù)據(jù)庫(kù)名稱。
Owner_name:表示對(duì)象的所有者。若當(dāng)前用戶不是所有者,則當(dāng)前用戶使用過程時(shí)必須指定所有者名稱。
Object_name:表示對(duì)象的名稱。
2.?dāng)?shù)據(jù)庫(kù)對(duì)象的命名規(guī)則第9章Transact-SQL語(yǔ)言9.2.2
注釋注釋是對(duì)程序結(jié)構(gòu)及功能的文字說明,一般穿插在程序中并以特殊的標(biāo)記標(biāo)注出來。在SQLServer中,注釋可以包含在批處理中,實(shí)際上,在存儲(chǔ)過程中加上說明性的注釋也不失為一種很好的做法。對(duì)于這些注釋內(nèi)容,SQL系統(tǒng)將不能進(jìn)行編譯,而且也不執(zhí)行。在程序中對(duì)某些較難理解的命令行使用注釋,不僅使程序易懂,而且有助于日后的管理和維護(hù)。多數(shù)情況下,對(duì)程序的名稱、作者姓名和主要代碼更改的日期、復(fù)雜的計(jì)算和編程的方法需要用注釋進(jìn)行解釋。第9章Transact-SQL語(yǔ)言9.3.1
全局變量9.3.2
局部變量9.3變量第9章Transact-SQL語(yǔ)言9.3
變
量
變量是的SQLServer中由用戶定義并可對(duì)其賦值并參與運(yùn)算的一個(gè)實(shí)體。Transact-SQL系統(tǒng)利用變量可以保存批處理和腳本中的特定類型的數(shù)據(jù),同時(shí)還可以利用變量在語(yǔ)句間進(jìn)行數(shù)據(jù)傳遞。變量類型有兩種:全局變量和局部變量。其中,全局變量由系統(tǒng)定義并維護(hù),SQL用戶可以直接從系統(tǒng)中進(jìn)行調(diào)用;而局部變量是用戶根據(jù)自己的需要定義的。對(duì)于局部變量,需要注意的是,必須先創(chuàng)建后使用。第9章Transact-SQL語(yǔ)言9.3.1
全局變量全局變量是SQL系統(tǒng)本身創(chuàng)建和維護(hù)的,用來記錄系統(tǒng)的各種活動(dòng)狀態(tài)。可以幫助用戶測(cè)試系統(tǒng)的設(shè)定值或者Transact-SQL命令執(zhí)行后的狀態(tài)值。全局變量的作用范圍不僅僅局限于某一個(gè)程序,而且在系統(tǒng)中的任何程序都可以隨時(shí)調(diào)用。SQLServer的配置設(shè)定值和統(tǒng)計(jì)數(shù)據(jù)通常儲(chǔ)存在某些特定的全局變量中。第9章Transact-SQL語(yǔ)言9.3.1
全局變量@@CONNECTIONS:返回自上次啟動(dòng)SQLServer以來連接或試圖連接的次數(shù)。@@ERRORS:返回最后執(zhí)行的Transact-SQL語(yǔ)句的錯(cuò)誤代碼。@@IDENTITY:返回最后插入的標(biāo)識(shí)列的列值。@@PROCID:返回當(dāng)前過程的存儲(chǔ)過程標(biāo)識(shí)符。@@SERVERNAME:返回運(yùn)行SQLServer的本地服務(wù)器名稱。@@SERVICENAME:返回SQLServer當(dāng)前運(yùn)行的服務(wù)器名稱。@@SPID:返回當(dāng)前用戶進(jìn)程的服務(wù)器進(jìn)程標(biāo)識(shí)符。
1.
常見的全局變量及含義第9章Transact-SQL語(yǔ)言9.3.1
全局變量@@OPTIONS:返回當(dāng)前SET選項(xiàng)的信息。@@TOTA_ERRORS:返回SQLServer自上次啟動(dòng)后,所遇到的磁盤讀/寫錯(cuò)誤數(shù)。@@TOTA_READ:返回SQLServer自上次啟動(dòng)后讀取磁盤(不是讀取高速緩存)的次數(shù)。@@TOTA_WRITE:返回SQLServer自上次啟動(dòng)后寫入磁盤的次數(shù)。@@TRANCOUNT:返回當(dāng)連接的活動(dòng)事務(wù)數(shù)。@@VERSION:返回SQLServer當(dāng)前安裝的日期、版本和處理器類型。
1.
常見的全局變量及含義第9章Transact-SQL語(yǔ)言9.3.1
全局變量例9.2利用全變局量@@CONNECTIONS顯示到系統(tǒng)的當(dāng)前日期和時(shí)間為止,用戶登錄SQLServer的次數(shù)。SELECTGETDATE()AS‘現(xiàn)在的日期和時(shí)間是:’SELECT@@CONNECTIONSAS‘LoginAttempts用戶登錄SQLServer的次數(shù):
2.
全局變量在程序中的應(yīng)用第9章Transact-SQL語(yǔ)言9.3.2
局部變量局部變量是用戶根據(jù)程序的需要在該程序內(nèi)部創(chuàng)建的,而且它的作用范圍僅限制在程序內(nèi)部。局部變量的名稱不能與全局變量的名稱相同,否則會(huì)在應(yīng)用程序中出現(xiàn)不可預(yù)測(cè)的結(jié)果。局部變量可以作為計(jì)數(shù)器用在循環(huán)語(yǔ)句中來計(jì)算循環(huán)執(zhí)行的次數(shù),或者控制循環(huán)執(zhí)行的次數(shù)。而且,局部變量還可以作為臨時(shí)的存儲(chǔ)器來保存運(yùn)行的結(jié)果或者傳遞函數(shù)的參數(shù)值。一般倩況下,SQLServer使用SELECT語(yǔ)句或四PRINT語(yǔ)句來將變量的值提交給用戶。第9章Transact-SQL語(yǔ)言9.3.2
局部變量利用DECLARE語(yǔ)句創(chuàng)建局部變量,其語(yǔ)法格式如下:DECLARE{@local_variable
data_type}[…n]其中:@local_variable:用于指定新創(chuàng)建的局部變量的名稱,局部變量名稱前第一個(gè)字符必須為“@”,而且該名稱必須符合SQL對(duì)象的命名規(guī)則。data_type:表示新創(chuàng)建的局部變量的數(shù)據(jù)類型及其長(zhǎng)度。該類型可以是任何由系統(tǒng)內(nèi)部提供的或用戶自定義的數(shù)據(jù)類型,但局部變量的數(shù)據(jù)類型不能是text、ntext或image數(shù)據(jù)類型,這一點(diǎn)在用戶創(chuàng)建局部變量時(shí)應(yīng)該注意。n:表示在一個(gè)DECLARE語(yǔ)句中可以同時(shí)定義n個(gè)局部變量。
1.創(chuàng)建局部變量第9章Transact-SQL語(yǔ)言9.3.2
局部變量當(dāng)用戶在程序中創(chuàng)建了局部變量后,局部變量的初始值為NULL,如果想要為局部變量重新賦值,可以利用Transact-SQL語(yǔ)句中的SELECT命令或者SET命令。其語(yǔ)法格式如下:SET{@local_variable=expression}或者SELECT{@local_variable=expression}[,…n]其中:@local_variable:表示進(jìn)行賦值的局部變量的名稱。Expression:是為該變量所賦的值,可以是任何有效的SQLSERVER表達(dá)式。n:表示在SELECT賦值語(yǔ)句中,可以同時(shí)為n個(gè)局部變量賦值。
2.局部變量賦值第9章Transact-SQL語(yǔ)言9.3.2
局部變量例9.4聲明一個(gè)長(zhǎng)度為10個(gè)字符的變量“id”并賦值DECLARE@idchar(10)SELECT@id=‘10010001’
3.局部變量的應(yīng)用舉例第9章Transact-SQL語(yǔ)言9.4.1
算術(shù)運(yùn)算符9.4.2
賦值運(yùn)算符號(hào)9.4運(yùn)算符9.4.3
位運(yùn)算符第9章Transact-SQL語(yǔ)言9.4.4
字符串串聯(lián)運(yùn)算符9.4.5
比較運(yùn)算符9.4.6
邏輯運(yùn)算符9.4.7
運(yùn)算符的優(yōu)先級(jí)9.4
運(yùn)
算
符運(yùn)算符用來執(zhí)行數(shù)據(jù)列間的數(shù)學(xué)運(yùn)算或比較操作。SQLServer2000通常使用下列6類運(yùn)算符:算術(shù)運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、字符串串聯(lián)運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符。第9章Transact-SQL語(yǔ)言9.4.1
算術(shù)運(yùn)算符算數(shù)運(yùn)算符可以在任何以數(shù)字?jǐn)?shù)據(jù)類型分類的表達(dá)式間進(jìn)行各種算術(shù)運(yùn)算。算術(shù)運(yùn)算符包括:加(+)、減(-)、乘(*)、除(/)、取模(%)。其中加、減、乘、除這四中運(yùn)算符的表達(dá)式可以是數(shù)字?jǐn)?shù)據(jù)類型分類的任何數(shù)據(jù)類型:而對(duì)于取模運(yùn)算符,其計(jì)算表達(dá)式的數(shù)據(jù)類型只能是int、smallint和tinyint這三種。加(+)和減(-)運(yùn)算符也可用于對(duì)datetime及smalldatetime值執(zhí)行算術(shù)運(yùn)算。第9章Transact-SQL語(yǔ)言9.4.2
賦值運(yùn)算符號(hào)在Transact-SQL語(yǔ)句中,具有唯一一個(gè)賦值運(yùn)算符等號(hào)(=)。通過運(yùn)算符可以為變量、表達(dá)式、字段重新賦值,而且還可以利用賦值預(yù)算符為字段分配標(biāo)題。第9章Transact-SQL語(yǔ)言9.4.3
位運(yùn)算符用來在兩個(gè)操作數(shù)之間執(zhí)行位操作。位運(yùn)算符及其含義如下表9-1所示。第9章Transact-SQL語(yǔ)言表9-1
位運(yùn)算符運(yùn)算符含義
&按位AND
|按位OR
^按位異或9.4.4
字符串串聯(lián)運(yùn)算符字符串串聯(lián)運(yùn)算符為“+”,允許通過該加號(hào)在多個(gè)字符串間進(jìn)行字符串串聯(lián)操作。默認(rèn)情況下,對(duì)于varchar、char、text類型的數(shù)據(jù),INSERT或賦值語(yǔ)句中,將空的字符串解釋為空字符串。第9章Transact-SQL語(yǔ)言9.4.5
比較運(yùn)算符比較運(yùn)算符測(cè)試兩個(gè)表達(dá)式是否相同。除了text、ntext或image數(shù)據(jù)類型的表達(dá)式外,比較運(yùn)算符可以用于所有的表達(dá)式。比較運(yùn)算符的結(jié)果為布爾數(shù)據(jù)類型,它有三種值:TRUE、FALSE及UNKNOWN。比較運(yùn)算符及其含義如表9-2所示。第9章Transact-SQL語(yǔ)言表9-2
比較運(yùn)算符運(yùn)算符含義運(yùn)算符含義=等于<>不等于>大于!=不等于<小與!<不大于>=大于等于!>不小于>=小于等于9.4.6
邏輯運(yùn)算符邏輯運(yùn)算符用來把多個(gè)邏輯表達(dá)式連接起來進(jìn)行測(cè)試,以獲得其真實(shí)情況。邏輯運(yùn)算符和比較運(yùn)算符一樣,返回帶有TRUE或FALSE的值的布爾數(shù)據(jù)類型。邏輯運(yùn)算符及其含義如表9-3所示。第9章Transact-SQL語(yǔ)言表9-3邏輯運(yùn)算符邏輯運(yùn)算符含義ALL如果一系列的比較都為TRUE,那么就為TRUEAND如果兩個(gè)布爾表達(dá)式都為TRUE,那么就為TRUEANY如果一系列的比較中有一個(gè)為TRUE,那么就為TRUEBETWEEN如果操作數(shù)在某一范圍內(nèi),那么就為TRUEEXISTS如果查詢包含一行,那么就為TRUEIN如果操作數(shù)等于表達(dá)式列表中的一個(gè),那么就為TRUELINK如果操作數(shù)與某一模式相匹配,那么就為TRUENOT求反OR如果兩個(gè)布爾表達(dá)式的一個(gè)為TRUE,那么就為TRUESOME如果一系列比較中,有些為TRUE,那么就為TRUE9.4.7
運(yùn)算符的優(yōu)先級(jí)不同運(yùn)算符具有不同的運(yùn)算優(yōu)先級(jí),同一表達(dá)式中含有不同運(yùn)算符時(shí),運(yùn)算符的優(yōu)先級(jí)決定了運(yùn)算的順序,用戶在編程時(shí)一定要注意這一點(diǎn),否則可能得不到預(yù)期的運(yùn)算結(jié)果。
SQLServer中各種運(yùn)算符的優(yōu)先順序?yàn)椋?括號(hào)運(yùn)算符:()?求反運(yùn)算符:~?異或運(yùn)算符:^?與運(yùn)算符:&?或運(yùn)算符:|?乘、除、求模運(yùn)算符:*、/、%?加減運(yùn)算符:+、-第9章Transact-SQL語(yǔ)言9.5.1
數(shù)學(xué)函數(shù)9.5.2字符串函數(shù)9.5函數(shù)9.5.3轉(zhuǎn)換函數(shù)9.5.4
日期和時(shí)間函數(shù)9.5.5
系統(tǒng)函數(shù)第9章Transact-SQL語(yǔ)言9.5.6
用戶自定義函數(shù)9.5
函
數(shù)函數(shù)的主要作用是用來幫助用戶獲得系統(tǒng)的有關(guān)信息、執(zhí)行數(shù)學(xué)計(jì)算和統(tǒng)計(jì)功能、實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換等操作。SQLServer提供的函數(shù)可分為以下幾類:系統(tǒng)函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、數(shù)學(xué)函數(shù)、轉(zhuǎn)換函數(shù)。用戶還可以根據(jù)自己的需要利用CREATEFUNCTION命令創(chuàng)建函數(shù)。第9章Transact-SQL語(yǔ)言9.5.1
數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù)用來實(shí)現(xiàn)各種數(shù)學(xué)運(yùn)算.如指數(shù)運(yùn)算、對(duì)數(shù)運(yùn)算、三角運(yùn)算等。其操作數(shù)為數(shù)值型數(shù)據(jù)。按照通常的優(yōu)先級(jí)設(shè)置,SQLServer執(zhí)行各種標(biāo)準(zhǔn)的數(shù)學(xué)運(yùn)算的次序?yàn)椋?函數(shù)和括號(hào)。?乘、除和乘方。?加和減及邏輯運(yùn)算。?同級(jí)操作按照自左至右的順序執(zhí)行。第9章Transact-SQL語(yǔ)言9.5.2字符串函數(shù)
字符串函數(shù)用來實(shí)現(xiàn)對(duì)字符型數(shù)據(jù)的轉(zhuǎn)換、查找、分析等操作,通常用做字符串表達(dá)式的一部分。字符串函數(shù)可以對(duì)二進(jìn)制數(shù)據(jù)、字符串和表達(dá)式執(zhí)行不同的運(yùn)算。大多數(shù)字符串函數(shù)只能用于char、varchar數(shù)據(jù)類型,而少數(shù)幾個(gè)字符串函數(shù)也可以用于binary、varbinary
數(shù)據(jù)。第9章Transact-SQL語(yǔ)言9.5.3轉(zhuǎn)換函數(shù)
通常情況下,SQLSEVER能夠自動(dòng)處理不同數(shù)據(jù)類型之間的轉(zhuǎn)換。例如比較CHAR和DATETIME表達(dá)式,SMALLINT和INT表達(dá)式,或不同長(zhǎng)度和CHAR表達(dá)式之間的轉(zhuǎn)換。這種轉(zhuǎn)換被稱為系統(tǒng)自帶的隱性轉(zhuǎn)換。但是,當(dāng)SQL系統(tǒng)不能自動(dòng)轉(zhuǎn)換或自動(dòng)轉(zhuǎn)換的結(jié)果不符合要求時(shí),就需要借助轉(zhuǎn)換函數(shù)來實(shí)現(xiàn),這種轉(zhuǎn)換稱為顯式轉(zhuǎn)換。常用的轉(zhuǎn)換函數(shù)主要包括CONVERT和CAST。這兩個(gè)轉(zhuǎn)換函數(shù)都可用于選擇列表、WHERE子句和允許使用表達(dá)式的任何地方。它們的語(yǔ)法格式如下所示。第9章Transact-SQL語(yǔ)言9.5.4
日期和時(shí)間函數(shù)
日期和時(shí)間函數(shù)可對(duì)日期和時(shí)間型數(shù)據(jù)進(jìn)行各種不同的運(yùn)算處理,其結(jié)果可以是字符型數(shù)據(jù)、數(shù)值型數(shù)據(jù)和日期時(shí)間型數(shù)據(jù)。同其他函數(shù)一樣,可以在SELECT語(yǔ)句的SELECT和WHERE子句以及表達(dá)式中使用日期和時(shí)間型函數(shù)。在SQL系統(tǒng)中常用的日期和時(shí)間型函數(shù)。第9章Transact-SQL語(yǔ)言9.5.5
系統(tǒng)函數(shù)
系統(tǒng)函數(shù)用于返回與SQLServer數(shù)據(jù)庫(kù)或用戶有關(guān)的信息。這些函數(shù)通常由程序員和數(shù)據(jù)序管理員引用,一般用戶很少用到,但它還是為用戶提供了一種便捷的系統(tǒng)表檢索手段。系統(tǒng)函數(shù)可用于選擇列表、WHERE子句以及其他任何允許使用表達(dá)式的地方。用戶可以通過查看系統(tǒng)函數(shù)的值來得到某些對(duì)象的信息,從而可以決定進(jìn)行不同的操作。在SQLServer2000中。第9章Transact-SQL語(yǔ)言9.5.6
用戶自定義函數(shù)
用戶函數(shù)是由一個(gè)或多個(gè)Tansact-SQL語(yǔ)句組成的子程序,可用于封裝代碼以便重新使用。SQLServer系統(tǒng)并不將用戶限制在定義為Transact-SQL語(yǔ)言一部分的內(nèi)置函數(shù)上,而是允許用戶根據(jù)操作需創(chuàng)建自己的用戶自定義函數(shù)。第9章Transact-SQL語(yǔ)言9.6.1
批處理9.6.2流程控制語(yǔ)句9.6批處理和流程控制語(yǔ)句第9章Transact-SQL語(yǔ)言9.6
批處理和流程控制語(yǔ)句在SQLServer程序中可以使用批處理和流程控制語(yǔ)句來實(shí)現(xiàn)相應(yīng)的功能。批處理是包含一個(gè)或多個(gè)Transact-SQL語(yǔ)句的組,從應(yīng)用程序一次性地發(fā)送到SQLServer執(zhí)行。流程控制語(yǔ)句用來控制SQL語(yǔ)句、語(yǔ)句塊或者存儲(chǔ)過程的執(zhí)行流程。第9章Transact-SQL語(yǔ)言9.6.1
批處理當(dāng)用戶利用Transact-SQL語(yǔ)言編寫程序時(shí),可以利用批處理語(yǔ)句來提高程序的執(zhí)行效率。批處理是使用GO語(yǔ)句將多條SQL語(yǔ)句進(jìn)行分隔,其中每?jī)蓚€(gè)GO之間的SQL語(yǔ)句就是一個(gè)批處理單元。一個(gè)批處理中可以只包含一條語(yǔ)句,也可以包含多條語(yǔ)句。在SQLServer執(zhí)行批處理之前首先將批處理語(yǔ)句進(jìn)行編譯,使之成為一個(gè)可執(zhí)行單元,然后再對(duì)編譯成功的批處理的單元進(jìn)行處理。第9章Transact-SQL語(yǔ)言9.6.2流程控制語(yǔ)句該語(yǔ)句是由一系列的Transact-SQL語(yǔ)句組成的一個(gè)語(yǔ)句塊,使得SQLServer可以成組地執(zhí)行Transact-SQL語(yǔ)句。在條件語(yǔ)句和循環(huán)語(yǔ)句等控制流程語(yǔ)句中,當(dāng)符合特定條件需要執(zhí)行的兩個(gè)或多個(gè)語(yǔ)句時(shí),就應(yīng)該使用BEGIN…END語(yǔ)句將這些語(yǔ)句組合在一起。其中,BEGIN和END是控制流程語(yǔ)言的關(guān)鍵字。其語(yǔ)法格式如下所示:BEGIN{sql_statement|statement_block}END第9章Transact-SQL語(yǔ)言
1.BEGIN…END語(yǔ)句9.6.2流程控制語(yǔ)句在執(zhí)行Transact-SQL語(yǔ)句時(shí)強(qiáng)加條件。如果條件滿足(布爾表達(dá)式返回TRUE時(shí)),則在IF關(guān)鍵字及其條件之后執(zhí)行Transact-SQL語(yǔ)句??蛇x的ELSE關(guān)鍵字引入備用的Transact-SQL語(yǔ)句,當(dāng)不滿足IF條件時(shí)(布爾表達(dá)式返回FALSE),就執(zhí)行這個(gè)語(yǔ)句。語(yǔ)法如下:IFBoolean_expression{sql_statement|statement_block}[ELSE{sql_statement|statement_block}]第9章Transact-SQL語(yǔ)言
2.
IF...ELSE語(yǔ)句9.6.2流程控制語(yǔ)句
CASE語(yǔ)句是用于多重選擇的條件判斷語(yǔ)句,結(jié)果返回單個(gè)值。在CASE中可根據(jù)表達(dá)式的值選擇相應(yīng)的結(jié)果。CASE語(yǔ)句通常的用途是使用可讀性更強(qiáng)的值替換代碼或縮寫。如在查詢中使用CASE語(yǔ)句重命名書籍的分類,以使之更易理解。CASE語(yǔ)句根據(jù)使用格式的不同可分為簡(jiǎn)單CASE語(yǔ)句和搜索CASE語(yǔ)句。兩種格式都支持可選的CASE參數(shù)。第9章Transact-SQL語(yǔ)言
3.CASE語(yǔ)句9.6.2流程控制語(yǔ)句
WHILE…CONTINUE…BREAK語(yǔ)句是SQL語(yǔ)言中的循環(huán)語(yǔ)句,用來重復(fù)執(zhí)行SQL語(yǔ)句或語(yǔ)句塊。如果WHILE后面的邏輯表達(dá)式為真,則重復(fù)執(zhí)行循環(huán)內(nèi)部的語(yǔ)句。其中CONTINUE語(yǔ)句可以使程序跳過CONTINUE后面的語(yǔ)句,重新回到WHILE循環(huán)的第一行命令;BREAK語(yǔ)句可以使程序完全跳過WHI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年山西老區(qū)職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 基于機(jī)器視覺的滾珠絲杠滾道磨損監(jiān)測(cè)研究
- 2025年山東力明科技職業(yè)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025年安徽揚(yáng)子職業(yè)技術(shù)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點(diǎn)試題含答案解析
- 水塔維修施工方案
- 接樁施工方案
- 2025年安康職業(yè)技術(shù)學(xué)院高職單招高職單招英語(yǔ)2016-2024歷年頻考點(diǎn)試題含答案解析
- 2025至2030年中國(guó)無機(jī)雙簾卷門機(jī)數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年太原幼兒師范高等??茖W(xué)校高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 2025年天津城市職業(yè)學(xué)院高職單招語(yǔ)文2018-2024歷年參考題庫(kù)頻考點(diǎn)含答案解析
- 2024年高考八省聯(lián)考地理適應(yīng)性試卷附答案解析
- 足浴技師與店內(nèi)禁止黃賭毒協(xié)議書范文
- 中國(guó)高血壓防治指南(2024年修訂版)要點(diǎn)解讀
- 2024-2030年中國(guó)光電干擾一體設(shè)備行業(yè)發(fā)展現(xiàn)狀與前景預(yù)測(cè)分析研究報(bào)告
- 湖南省岳陽(yáng)市岳陽(yáng)樓區(qū)2023-2024學(xué)年七年級(jí)下學(xué)期期末數(shù)學(xué)試題(解析版)
- 農(nóng)村自建房安全合同協(xié)議書
- 杜仲葉藥理作用及臨床應(yīng)用研究進(jìn)展
- 4S店售后服務(wù)6S管理新規(guī)制度
- 高性能建筑鋼材的研發(fā)與應(yīng)用
- 無線廣播行業(yè)現(xiàn)狀分析
- 漢語(yǔ)言溝通發(fā)展量表(長(zhǎng)表)-詞匯及手勢(shì)(8-16月齡)
評(píng)論
0/150
提交評(píng)論