《SQLServer2005數(shù)據(jù)庫(kù)案例教程》第3章Transact-SQL程序設(shè)計(jì)_第1頁(yè)
《SQLServer2005數(shù)據(jù)庫(kù)案例教程》第3章Transact-SQL程序設(shè)計(jì)_第2頁(yè)
《SQLServer2005數(shù)據(jù)庫(kù)案例教程》第3章Transact-SQL程序設(shè)計(jì)_第3頁(yè)
《SQLServer2005數(shù)據(jù)庫(kù)案例教程》第3章Transact-SQL程序設(shè)計(jì)_第4頁(yè)
《SQLServer2005數(shù)據(jù)庫(kù)案例教程》第3章Transact-SQL程序設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章

Transact-SQL程序設(shè)計(jì)SQLServer2005中唯一指定的編程語(yǔ)言是Transact-SQL語(yǔ)言,這是一種非過(guò)程化的編程語(yǔ)言。不論是基于C/S(客戶/服務(wù)器)的應(yīng)用程序,還是基于B/S(瀏覽器/服務(wù)器)的Web應(yīng)用程序,都必須通過(guò)向服務(wù)器發(fā)送Transact-SQL語(yǔ)言才能實(shí)現(xiàn)與SQLServer的數(shù)據(jù)庫(kù)進(jìn)行通信。使用Transact-SQL語(yǔ)言操作時(shí),與SQLServer通信的所有應(yīng)用程序都是必須通過(guò)向服務(wù)器發(fā)送Transact-SQL語(yǔ)句來(lái)進(jìn)行,而與應(yīng)用程序的界面無(wú)關(guān)。Transact-SQL語(yǔ)言的特點(diǎn):1.一體化的特點(diǎn)。Transact-SQL語(yǔ)言及數(shù)據(jù)定義語(yǔ)言、數(shù)據(jù)操縱語(yǔ)言、數(shù)據(jù)控制語(yǔ)言和附加語(yǔ)言元素(包括變量、運(yùn)算符、函數(shù)、流程控制語(yǔ)句和注釋等)為一體。2.兩種使用方式,統(tǒng)一的語(yǔ)法結(jié)構(gòu)。兩種使用方式即聯(lián)機(jī)交互式和嵌入式高級(jí)語(yǔ)言的使用方式。3.高度非過(guò)程化。Transact-SQL語(yǔ)言一次能處理一個(gè)或多個(gè)記錄,所有的SQL語(yǔ)句接受集合作為輸入,返回集合作為輸出,并允許一條SQL語(yǔ)句的結(jié)果作為另一條SQL語(yǔ)句的輸入。另外,Transact-SQL語(yǔ)言不要求用戶指定對(duì)數(shù)據(jù)的存放方法,所有的Transact-SQL語(yǔ)句使用查詢優(yōu)化器,用以指定數(shù)據(jù)以最快速度存取的手段。4.類(lèi)似于人的思維習(xí)慣,容易理解和掌握。在Transact-SQL語(yǔ)言中對(duì)標(biāo)準(zhǔn)的SQL語(yǔ)句暢通無(wú)阻。Transact-SQL對(duì)SQL語(yǔ)言做了許多擴(kuò)充,具體分類(lèi)如下:變量說(shuō)明:用來(lái)說(shuō)明變量的命令。數(shù)據(jù)定義語(yǔ)言(DDL,DataDefinitionLanguage):用來(lái)建立數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)對(duì)象和定義其列,大部分是以CREATE開(kāi)頭的命令,如:CREATETABLE、CREATEVIEW、DROPTABLE等。數(shù)據(jù)操控語(yǔ)言(DML,DataManipulationLanguage):用來(lái)操縱數(shù)據(jù)庫(kù)中的數(shù)據(jù)的命令,如:SELECT、INSERT、UPDATE、DELETE、CURSOR等。數(shù)據(jù)控制語(yǔ)言(DCL,DataControlLanguage):用來(lái)控制數(shù)據(jù)庫(kù)組件的存取許可、存取權(quán)限等的命令。如GRANT、REVOKE等。流程控制語(yǔ)言(FlowControlLanguage):用于設(shè)計(jì)應(yīng)用程序的語(yǔ)句如IF、WHILE、CASE等。函數(shù):執(zhí)行特殊運(yùn)算的命令。其他命令:嵌于命令中使用的標(biāo)準(zhǔn)函數(shù)。

3.1常量和變量

SQLServer2005中的Transact-SQL與其它程序設(shè)計(jì)語(yǔ)言一樣,在進(jìn)行程序設(shè)計(jì)時(shí)會(huì)用到一些數(shù)據(jù),數(shù)據(jù)有兩個(gè)屬性:型和值,型是指數(shù)據(jù)的分類(lèi),即數(shù)據(jù)類(lèi)型;值是指數(shù)據(jù)的具體表示,即數(shù)值。這些數(shù)據(jù)的值可能會(huì)是確定的,也可能是不確定的,甚至數(shù)據(jù)的值在程序的運(yùn)行過(guò)程中也會(huì)不斷的發(fā)生變化,這就是所謂的常量和變量,本節(jié)主要講解Transact-SQL語(yǔ)言中的常量和變量的使用及其語(yǔ)法規(guī)則,并通過(guò)一些簡(jiǎn)單易懂的實(shí)例,來(lái)幫助讀者加快理解常量和變量的實(shí)質(zhì)。3.1.1案例實(shí)現(xiàn)過(guò)程【技術(shù)要點(diǎn)】通過(guò)“開(kāi)始—程序”菜單找到MicrosoftSQLServer2005的子菜單,點(diǎn)擊SQLServerManagementStudio并打開(kāi)其主窗口,此時(shí)會(huì)彈出一個(gè)連接服務(wù)器的對(duì)話框,點(diǎn)擊對(duì)話框上的“連接”按鈕,從而實(shí)現(xiàn)數(shù)據(jù)庫(kù)的連接。在本案例中將采用如下步驟來(lái)逐步闡述常量和變量的使用。(1)Transact-SQL語(yǔ)言程序設(shè)計(jì),需要在查詢編輯器主窗口中進(jìn)行,查詢編輯器是SQLServer2005專(zhuān)為T(mén)ransact-SQL語(yǔ)言提供的集編輯、調(diào)試、結(jié)果打印輸出等功能的窗口部件。點(diǎn)擊SQLServerManagementStudio主窗口中的“文件”菜單下面的“新建查詢”按鈕,如圖3.2所示,打開(kāi)查詢編輯器主窗口。

圖3.2“新建查詢”對(duì)話框2.執(zhí)行步驟(1)后會(huì)打開(kāi)一個(gè)新的查詢編輯器窗口,即可進(jìn)行Transact-SQL編程;當(dāng)然也可通過(guò)快捷鍵“Alt+N”打開(kāi)一個(gè)新的查詢編輯器窗口。如圖3.3所示。

圖3.3查詢編輯器主窗口

(3)查詢編輯器主窗口中由一個(gè)光標(biāo)在閃爍,此時(shí)就可以在打開(kāi)的查詢編輯器主窗口中就進(jìn)行編寫(xiě)代碼。

【例3.1】使用Transact-SQL語(yǔ)句,查詢課程表中前三條記錄,并把它們的學(xué)分減1,要求打印輸出結(jié)果。 Transact-SQL代碼清單如下。 USE教學(xué)管理系統(tǒng) --打開(kāi)數(shù)據(jù)庫(kù) GO --批處理結(jié)束命令 SELECTTOP(3)*FROM課程表 --查詢課程表中前三條記錄 SELECTTOP(3)課程編號(hào),課程名,學(xué)分-1AS學(xué)分FROM課程表 --查詢學(xué)分減1后課程表中前三條記錄

在【例3.1】中第1個(gè)SELECT作用是查詢課程表中的前三條記錄,第2個(gè)SELECT查詢的是課程表中的前三條記錄,并在原來(lái)的基礎(chǔ)上,把學(xué)分減1,這里的“1”即為整型常量。【例3.1】代碼執(zhí)行后的結(jié)果如圖3.4所示。圖3.4常量的使用

【例3.2】使用Transact-SQL語(yǔ)句,實(shí)現(xiàn)查詢教師表中計(jì)算機(jī)系教師的全部信息,要求打印輸出結(jié)果。 Transact-SQL代碼清單如下。 USE教學(xué)管理系統(tǒng)

--打開(kāi)數(shù)據(jù)庫(kù) GO

--批處理結(jié)束命令 DECLARE@AAchar(8)

--聲明局部變量 SET@AA='計(jì)算機(jī)系'

--初始化變量 SELECT*FROM教師表WHERE

所在部門(mén)=@AA

--SQL語(yǔ)句

在【例3.2】中定義了一個(gè)局部變量@AA,在SELECT查詢中引用了此

局部變量。從此例中可以看出局部變量在使用時(shí)必須在其前面冠以“@”符號(hào)?!纠?.2】代碼執(zhí)行后,運(yùn)行的結(jié)果如圖3.5所示。

圖3.5局部變量的使用

而全局變量的使用與局部變量有所不同,其最大的特點(diǎn)是必須在全局變量前面冠以“@@”。

例如,@@VERSION全局變量表示返回當(dāng)前安裝的SQLServer的日期、版本、處理器,而@@COMMECTIONS全局變量表示自SQLServer最近一次啟動(dòng)以來(lái),連接或企圖連接到SQLServer的連接數(shù)目。使用SELECT執(zhí)行全局變量@@COMMECTIONS和@@CONNECTIONS即可返回其值。如圖3.6所示

圖3.6全局變量的使用3.1.2相關(guān)知識(shí)及注意事項(xiàng)1.常量

常量是在程序運(yùn)行中值不發(fā)生變化的量,常量的格式取決于它所表示的數(shù)據(jù)類(lèi)型。根據(jù)常見(jiàn)的數(shù)據(jù)類(lèi)型,分為字符串常量、整型常量、實(shí)型常量、貨幣常量和日期時(shí)間常量。下面舉例說(shuō)明一些常見(jiàn)的常量的使用方法。

1)字符串常量

(1)ASCII字符串常量

(2)Unicode字符串常量

2)整型常量

整型常量由數(shù)字0~9以及+/-號(hào)組成的有意義的串。如123、-9811、+89。

3)實(shí)型常量

實(shí)型常量有定點(diǎn)和浮點(diǎn)兩種表示形式。

(1)定點(diǎn)實(shí)型常量 由數(shù)字0~9、小數(shù)點(diǎn)和正負(fù)號(hào)組成有意義的串。如1.0、3467.584。

(2)浮點(diǎn)實(shí)型常量 由數(shù)字0~9、小數(shù)點(diǎn)、正負(fù)號(hào)和字母E組成有意義的串。如0.68E+3、1E10、-23E2。

4)貨幣常量

貨幣常量是以$符號(hào)為前綴的整型或?qū)嵭统A?,用?lái)表示貨幣值,精度為4位小數(shù)。如$100、-$52、$16.37。

5)日期時(shí)間常量

日期常量是用單引號(hào)括起來(lái)的有效的日期和時(shí)間組成的字符串。

(1)常見(jiàn)的日期格式

'September1、2007'、'2007年9月1號(hào)'、'2007-09-01'、'09/01/2007'、'20070901'

(2)常見(jiàn)的時(shí)間格式

'14:12:00'、'02:12PM'2.變量

變量是程序設(shè)計(jì)語(yǔ)言中必不可少的組成部分,在Transact-SQL語(yǔ)言中,變量被分為兩種形式:局部變量(LocalVariable)和全局變量(Globlevariable),局部變量是由用戶定義和維護(hù),而全局變量則是由系統(tǒng)提供的。

1)局部變量

局部變量是一個(gè)能夠擁有特定數(shù)據(jù)類(lèi)型的對(duì)象,它的作用范圍僅限制在一定的范圍之內(nèi),通常用來(lái)存儲(chǔ)從表中查詢到的數(shù)據(jù),或當(dāng)作程序執(zhí)行過(guò)程中的暫存變量。2)全局變量

全局變量是SQLServer系統(tǒng)內(nèi)部使用的變量,其作用范圍并不僅僅局限于某一程序或處理,而是任何程序均可隨時(shí)調(diào)用,全局變量的值不能使用SET或者SELECT語(yǔ)句來(lái)改變。全局變量通常存儲(chǔ)一些SQLServer的配置設(shè)定值和效能統(tǒng)計(jì)數(shù)據(jù),可以將全局變量的值賦給局部變量,以便保存和處理。用戶可在程序中用全局變量來(lái)測(cè)試系統(tǒng)的設(shè)定值或Transact-SQL命令執(zhí)行后的狀態(tài)值。

在SQLServer2005中,全局變量可以看成是一組特殊的函數(shù),它們的名稱(chēng)以@@開(kāi)頭,而且不需要任何參數(shù),在調(diào)用時(shí)無(wú)需在函數(shù)名后面加上一對(duì)圓括號(hào),這些函數(shù)也稱(chēng)為無(wú)參函數(shù)。

全局變量是SQLServer管理的變量,用戶雖然可以查看全局變量的值,但不能建立全局變量,更不能改變?nèi)肿兞康闹怠?/p>

全局變量分為兩類(lèi):一類(lèi)反映SQLServer系統(tǒng)的全局變量,另一類(lèi)反映與一個(gè)連接有關(guān)的全局變量。

3.2數(shù)據(jù)類(lèi)型和運(yùn)算符

數(shù)據(jù)類(lèi)型是數(shù)據(jù)的一個(gè)屬性,決定著數(shù)據(jù)的存儲(chǔ)方式和使用的方法,即限制了數(shù)據(jù)庫(kù)表中一個(gè)字段所能保存的數(shù)值,以及參數(shù)或變量中所能存儲(chǔ)的信息的類(lèi)型。例如,兩個(gè)實(shí)數(shù)可以進(jìn)行乘法運(yùn)算,但兩個(gè)字符型數(shù)據(jù)卻不能做乘法運(yùn)算。

運(yùn)算符是一些符號(hào),用于在常量、變量和函數(shù)之間進(jìn)行某種操作。他們能夠用來(lái)執(zhí)行算術(shù)運(yùn)算、字符串連接、賦值以及在字段、常量和變量之間進(jìn)行比較。將數(shù)據(jù)類(lèi)型指定的數(shù)值與相應(yīng)的運(yùn)算符結(jié)合起來(lái)構(gòu)成表達(dá)。大多數(shù)Transact-SQL語(yǔ)句并不明確指定數(shù)據(jù)類(lèi)型,但SQL語(yǔ)句中各對(duì)象數(shù)據(jù)類(lèi)型的作用結(jié)果,將直接影響各個(gè)語(yǔ)句的運(yùn)行結(jié)果,從而可能導(dǎo)致與程序設(shè)計(jì)時(shí)的預(yù)期有偏差。【案例說(shuō)明】

在SQLServer2005中,每個(gè)字段(即列值)、局部變量、表達(dá)式和參數(shù)都具有一個(gè)相關(guān)的數(shù)據(jù)類(lèi)型,并且通過(guò)與運(yùn)算符的連接,執(zhí)行相應(yīng)的運(yùn)算之后,得到一個(gè)表達(dá)式的結(jié)果。

【例3.5】使用Transact-SQL語(yǔ)句,實(shí)現(xiàn)查詢學(xué)生信息表中的學(xué)生的學(xué)號(hào)、姓名、年齡、專(zhuān)業(yè)等信息,并打印輸出相關(guān)信息。Transact-SQL代碼清單如下。

/*文件名:Demo1-1.sql

作者:陳潔

日期:2010-04-18*/

USE教學(xué)管理系統(tǒng)--打開(kāi)數(shù)據(jù)庫(kù)

GO

SELECT學(xué)號(hào),姓名,性別,年齡=DATEDIFF(year,出生日期,GETDATE()),專(zhuān)業(yè)

from學(xué)生表

--DATEDIFF()函數(shù)用來(lái)計(jì)算年齡 在【例3.5】中放在“/*”和“*/”內(nèi)的文本為塊注釋?zhuān)浴?-”開(kāi)始的文本為行內(nèi)注釋。DATEDIFF()函數(shù)帶有三個(gè)參數(shù),其中第三個(gè)參數(shù)獲得當(dāng)前的時(shí)間,并與第二個(gè)參數(shù)相減,第一個(gè)參數(shù)year表示截取第二個(gè)參數(shù)與第三個(gè)參數(shù)運(yùn)算結(jié)果中的年部分的數(shù)據(jù),從而實(shí)現(xiàn)了年齡的計(jì)算,運(yùn)行結(jié)果如圖3.9所示。

在【例3.5】中使用到了DATEDIFF()函數(shù),對(duì)于函數(shù)的具體使用方法,可參閱本書(shū)的有關(guān)附錄。

圖3.9注釋符的使用

將【例3.5】中代碼進(jìn)行修改為【例3.7】代碼中代碼,執(zhí)行后的結(jié)果如【例3.7】中的代碼所示。

【例3.7】使用Transact-SQL語(yǔ)句,實(shí)現(xiàn)把學(xué)生信息表中的學(xué)生的年齡全部加1,并打印輸出相關(guān)信息。

Transact-SQL代碼清單如下。

/*文件名:Demo1-1.sql

作者:陳潔

日期:2010-04-18*/

USE教學(xué)管理系統(tǒng)--打開(kāi)數(shù)據(jù)庫(kù)

GO

--批處理結(jié)束語(yǔ)句

DECLARE@numint

--定義局部變量

SELECT學(xué)號(hào),姓名,性別,年齡=(DATEDIFF(year,出生日期,GETDATE()))

+1,專(zhuān)業(yè)from學(xué)生表

--查詢學(xué)生表,并把學(xué)生年齡都加1

SET@num=(SELECTcount(學(xué)號(hào))from學(xué)生表)

--查詢學(xué)生表中的學(xué)生個(gè)數(shù),并把它賦局部給變量@num

/*用字符串連接運(yùn)算符’+‘,把中文字符串常量和CAST函數(shù)轉(zhuǎn)換過(guò)來(lái)的數(shù)字字符串連接起來(lái),并用PRINT語(yǔ)句輸出運(yùn)算后的字符串*/

PRINT'共有'+CAST(@numASchar(2))+'個(gè)學(xué)生年齡加1!'

【例3.7】代碼運(yùn)行后效果如圖3.10所示,圖左邊的是SELECT查詢語(yǔ)句運(yùn)行的結(jié)果,圖右邊的是消息標(biāo)簽下的內(nèi)容,即PRINT語(yǔ)句輸出的結(jié)果。圖3.10運(yùn)算符的使用3.2.2相關(guān)知識(shí)及注意事項(xiàng)1.?dāng)?shù)據(jù)類(lèi)型1)精確數(shù)字類(lèi)型

a.整數(shù)類(lèi)型

int數(shù)據(jù)類(lèi)型是SQLServer2005中的主要整形數(shù)據(jù)類(lèi)型,bigint數(shù)據(jù)類(lèi)型用于整數(shù)數(shù)值可能超過(guò)int數(shù)據(jù)類(lèi)型支持范圍的情況。實(shí)際使用中,要根據(jù)所存儲(chǔ)數(shù)據(jù)的最大范圍來(lái)選擇。使用整型的精確數(shù)字類(lèi)型如表3-3所示。

表3-3使用整型的精確數(shù)字類(lèi)型數(shù)據(jù)類(lèi)型范圍存儲(chǔ)bigint-2^63(-9223372036854775808)~2^63-1(9223372036854775807)8ByteInt-2^31(-2147483648)~2^31-1(2147483647)4Bytesmallint-2^15(-32768)~2^15-1(32767)2Byte續(xù)表數(shù)據(jù)類(lèi)型范圍存儲(chǔ)tinyint0~2551Byte數(shù)據(jù)類(lèi)型范圍存儲(chǔ)Money-922337203685477.5808~922337203685477.58078ByteSmallmoney-214748.3648~214748.36474Byte

b.邏輯數(shù)據(jù)類(lèi)型

bit是可以取值為1、0或NULL的整型數(shù)據(jù)類(lèi)型。SQLServer2005優(yōu)化了bit列的存儲(chǔ)。如果表中的列為8bit或更少,則這些列作為1Byte存儲(chǔ)。如果列為9到16bit,則這列作為2Byte存儲(chǔ),依此類(lèi)推??蓪⒅挥袃蓚€(gè)值的數(shù)據(jù)定義為bit類(lèi)型,即只存儲(chǔ)1或0的整數(shù)數(shù)據(jù)。c.decimal和numeric

decimal和numeric為帶固定精度和小數(shù)位數(shù)的數(shù)值數(shù)據(jù)類(lèi)型。使用最大精度時(shí),有效值從-10^38+1~10^38-1,decimal在SQL-92中的同義詞為dec和dec(p,s)。numeric在功能上等價(jià)于decimal。d.money和smallmoney

貨幣數(shù)據(jù)類(lèi)型用于存儲(chǔ)貨幣值,在使用貨幣類(lèi)型時(shí),應(yīng)在數(shù)據(jù)前加上貨幣符號(hào)系統(tǒng)才能辨識(shí)其為哪國(guó)的貨幣,如果不加上貨幣符號(hào),則默認(rèn)為“¥”。

Money和smallmoney代表貨幣或貨幣值的數(shù)據(jù)類(lèi)型,數(shù)據(jù)類(lèi)型精確到它們所代表的貨幣單位的萬(wàn)分之一,即貨幣類(lèi)型數(shù)據(jù)實(shí)際上是帶有4位小數(shù)的Decimal類(lèi)型數(shù)據(jù)。在Money和smallmoney類(lèi)型的字段中輸入貨幣數(shù)據(jù)時(shí)必須在數(shù)值前加一個(gè)貨幣符號(hào)(如:美圓$)。輸入負(fù)值時(shí)應(yīng)當(dāng)在貨幣符號(hào)后面加“-”,輸入過(guò)程中不需要每3位添加一個(gè)逗號(hào)來(lái)分隔,但是打印的時(shí)候會(huì)自動(dòng)添加。表3-5為貨幣數(shù)據(jù)類(lèi)型表示的范圍以及存儲(chǔ)的字節(jié)數(shù)。表3-5貨幣數(shù)據(jù)類(lèi)型

2)近似數(shù)字類(lèi)型

用于表示浮點(diǎn)數(shù)值數(shù)據(jù)的類(lèi)型為大數(shù)值數(shù)據(jù)類(lèi)型。浮點(diǎn)數(shù)據(jù)為近似值,因此,并非數(shù)據(jù)類(lèi)型范圍內(nèi)的所有值都能精確的表示。3)日期和時(shí)間類(lèi)型日期和時(shí)間的數(shù)據(jù)類(lèi)型分為datetime和smalldatetime兩種,分別用于表示某天的日期和時(shí)間4)字符數(shù)據(jù)類(lèi)型字符數(shù)據(jù)類(lèi)型是使用最多的數(shù)據(jù)類(lèi)型,它可以用來(lái)存儲(chǔ)各種字母、數(shù)字符號(hào)、特殊符號(hào)。5)二進(jìn)制數(shù)據(jù)類(lèi)型二進(jìn)制數(shù)據(jù)類(lèi)型是用來(lái)存儲(chǔ)固定長(zhǎng)度的binary數(shù)據(jù)類(lèi)型。6)其他類(lèi)型

(1)游標(biāo)cursor

(2)timestamp

(3)sql_variant

(4)table

(5)xml

7)用戶自定義類(lèi)型

可以從基本數(shù)據(jù)類(lèi)型創(chuàng)建別名類(lèi)型數(shù)據(jù)。這使程序員能更容易地理解該數(shù)據(jù)類(lèi)型的用途。例如CREATETYPEbirthdayFROMdatetimeNULL,接下來(lái)就可以使用brithday來(lái)定義數(shù)據(jù)對(duì)象了。2.運(yùn)算符

在SQLServer2005中,運(yùn)算符主要有六大類(lèi):算術(shù)運(yùn)算符、賦值運(yùn)算符、位運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、字符串串聯(lián)運(yùn)算符、

3.

注釋符1)行內(nèi)注釋

行內(nèi)注釋符用“--”表示。2)塊注釋符

塊注釋符用“/*”開(kāi)始,以“*/”結(jié)尾,而且必須是成對(duì)出現(xiàn)。4.通配符

通配符指“%”、“_”、“[]”和“[^]”5.表達(dá)式

表達(dá)式是標(biāo)識(shí)符、值和運(yùn)算符的組合,可以對(duì)其求值以獲取結(jié)果。

表達(dá)式可以是下列任何一種:常量、函數(shù)、列名、變量、子查詢、CASE、NULLIF或COALESCE,還可以用運(yùn)算符對(duì)這些實(shí)體進(jìn)行組合以生成表達(dá)式。

3.3流程控制語(yǔ)句

Transact-SQL提供了控制語(yǔ)句,用于控制Transact-SQL語(yǔ)句、語(yǔ)句塊和存儲(chǔ)過(guò)程等程序的執(zhí)行和流程分支的命令。Transact-SQL控制流語(yǔ)言的使用與其他高級(jí)程序設(shè)計(jì)語(yǔ)言基本相似,如條件控制語(yǔ)句和循環(huán)語(yǔ)句。使用這些語(yǔ)句命令,可以使程序更具有結(jié)構(gòu)性和邏輯性,并可完成較復(fù)雜的操作。Transact-SQL的控制流語(yǔ)句不能跨越多個(gè)批處理或存儲(chǔ)過(guò)程。2.2.2相關(guān)知識(shí)及注意事項(xiàng)

在Transact-SQL語(yǔ)言中,流程控制語(yǔ)句主要有語(yǔ)句塊、條件選擇語(yǔ)句、分支處理語(yǔ)句、循環(huán)語(yǔ)句、返回語(yǔ)句、轉(zhuǎn)移語(yǔ)句、打印輸出語(yǔ)句等,表3-12列出了常用流程控制語(yǔ)句及其功能能。語(yǔ)句功能BEGIN…END定義語(yǔ)句塊IF…ELSE條件選擇語(yǔ)句,條件成立執(zhí)行IF后面語(yǔ)句,否則執(zhí)行ELSE后面的語(yǔ)句CASE語(yǔ)句分支處理語(yǔ)句,表達(dá)式可根據(jù)條件返回不同的值WHILE語(yǔ)句循環(huán)語(yǔ)句,重復(fù)執(zhí)行命令行或程序塊WAITFOR設(shè)置語(yǔ)句執(zhí)行的時(shí)間或者延遲執(zhí)行的時(shí)間BREAK跳出循環(huán),即終止循環(huán)C

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論