




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 第第04章章 transact-sql語(yǔ)言基礎(chǔ)語(yǔ)言基礎(chǔ)ntransact-sql語(yǔ)言是語(yǔ)言是sql server 2005在在sql語(yǔ)言語(yǔ)言的基礎(chǔ)上增加了一些語(yǔ)言要素后的擴(kuò)展語(yǔ)言,其的基礎(chǔ)上增加了一些語(yǔ)言要素后的擴(kuò)展語(yǔ)言,其語(yǔ)言要素包括注釋、變量、運(yùn)算符、函數(shù)和流程語(yǔ)言要素包括注釋、變量、運(yùn)算符、函數(shù)和流程控制語(yǔ)句等??刂普Z(yǔ)句等。n掌握掌握transact-sql語(yǔ)言是進(jìn)一步學(xué)習(xí)更多的管理語(yǔ)言是進(jìn)一步學(xué)
2、習(xí)更多的管理技術(shù)和數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)技術(shù)的關(guān)鍵。技術(shù)和數(shù)據(jù)庫(kù)應(yīng)用開(kāi)發(fā)技術(shù)的關(guān)鍵。n本章主要介紹本章主要介紹transact-sql語(yǔ)言中的常量、變量、語(yǔ)言中的常量、變量、函數(shù)、表達(dá)式等語(yǔ)言成份和控制流語(yǔ)句等。函數(shù)、表達(dá)式等語(yǔ)言成份和控制流語(yǔ)句等。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 第第04章章 transact-sql語(yǔ)言基礎(chǔ)語(yǔ)言基礎(chǔ)清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005
3、. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.1 transact-sql概述概述ntransact-sql語(yǔ)言用于處理語(yǔ)言用于處理sql server 2005數(shù)據(jù)庫(kù)引擎實(shí)例的相關(guān)操作,主要包數(shù)據(jù)庫(kù)引擎實(shí)例的相關(guān)操作,主要包括創(chuàng)建和管理數(shù)據(jù)庫(kù)對(duì)象、插入、檢索、括創(chuàng)建和管理數(shù)據(jù)庫(kù)對(duì)象、插入、檢索、修改和刪除數(shù)據(jù)。修改和刪除數(shù)據(jù)。ntransact-sql語(yǔ)言不是一種標(biāo)準(zhǔn)的編程語(yǔ)語(yǔ)言不是一種標(biāo)準(zhǔn)的編程語(yǔ)言,只能夠提供言,只能夠提供sql server 的數(shù)據(jù)引擎來(lái)的數(shù)據(jù)引擎來(lái)分析和運(yùn)行。分析和運(yùn)行。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql
4、 server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.1 transact-sql概述概述1transact-sql語(yǔ)言的語(yǔ)法約定語(yǔ)言的語(yǔ)法約定 表表4.1列出了列出了transact-sql 參考的語(yǔ)法格參考的語(yǔ)法格式中使用的約定,并進(jìn)行了說(shuō)明。式中使用的約定,并進(jìn)行了說(shuō)明。 語(yǔ)法約定語(yǔ)法約定大寫(xiě)字母大寫(xiě)字母斜體斜體粗體粗體下劃線下劃線|(豎線)(豎線) ,.n.n; := 用途說(shuō)明用途說(shuō)明transact-sql 關(guān)鍵字關(guān)鍵字用戶提供的用戶提供的 transact-sql 語(yǔ)法的參數(shù)。語(yǔ)法的參數(shù)
5、。 數(shù)據(jù)庫(kù)名、表名、列名、索引名、存儲(chǔ)過(guò)程、實(shí)用工具、數(shù)據(jù)數(shù)據(jù)庫(kù)名、表名、列名、索引名、存儲(chǔ)過(guò)程、實(shí)用工具、數(shù)據(jù) 類型名以及必須按所顯示的原樣鍵入的文本。類型名以及必須按所顯示的原樣鍵入的文本。指示當(dāng)語(yǔ)句中省略了包含帶下劃線的值的子句時(shí)應(yīng)用的默認(rèn)值。指示當(dāng)語(yǔ)句中省略了包含帶下劃線的值的子句時(shí)應(yīng)用的默認(rèn)值。分隔括號(hào)或大括號(hào)中的語(yǔ)法項(xiàng)。只能選擇其中一項(xiàng)。分隔括號(hào)或大括號(hào)中的語(yǔ)法項(xiàng)。只能選擇其中一項(xiàng)??蛇x語(yǔ)法項(xiàng)。不要鍵入方括號(hào)。可選語(yǔ)法項(xiàng)。不要鍵入方括號(hào)。必選語(yǔ)法項(xiàng)。不要鍵入大括號(hào)。必選語(yǔ)法項(xiàng)。不要鍵入大括號(hào)。指示前面的項(xiàng)可以重復(fù)指示前面的項(xiàng)可以重復(fù) n 次。每一項(xiàng)由逗號(hào)分隔。次。每一項(xiàng)由逗號(hào)分隔。
6、指示前面的項(xiàng)可以重復(fù)指示前面的項(xiàng)可以重復(fù) n 次。每一項(xiàng)由空格分隔。次。每一項(xiàng)由空格分隔??蛇x的可選的 transact-sql 語(yǔ)句終止符。不要鍵入方括號(hào)。語(yǔ)句終止符。不要鍵入方括號(hào)。 語(yǔ)法塊的名稱。用于對(duì)可在語(yǔ)句中的多個(gè)位置使用的過(guò)長(zhǎng)語(yǔ)法語(yǔ)法塊的名稱。用于對(duì)可在語(yǔ)句中的多個(gè)位置使用的過(guò)長(zhǎng)語(yǔ)法段或語(yǔ)法單元進(jìn)行分組和標(biāo)記??墒褂玫恼Z(yǔ)法塊的每個(gè)位置由括段或語(yǔ)法單元進(jìn)行分組和標(biāo)記??墒褂玫恼Z(yǔ)法塊的每個(gè)位置由括在尖括號(hào)內(nèi)的標(biāo)簽指示:在尖括號(hào)內(nèi)的標(biāo)簽指示:。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)
7、據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.1 transact-sql概述概述2transact-sql語(yǔ)言中對(duì)象的引用方法語(yǔ)言中對(duì)象的引用方法nsql server 2005的所有對(duì)數(shù)據(jù)庫(kù)對(duì)象名的的所有對(duì)數(shù)據(jù)庫(kù)對(duì)象名的 引用引用可以是由可以是由4部分組成的名稱,格式如下:部分組成的名稱,格式如下: server_name. database_name. schema_name. | database_name.schema_name. | schema_name. object_namen引用某個(gè)特定對(duì)象時(shí),不必總是指定服務(wù)器、引用某個(gè)特定對(duì)象時(shí),不必總是指定服務(wù)器、數(shù)據(jù)庫(kù)和架
8、構(gòu)供數(shù)據(jù)庫(kù)和架構(gòu)供 sql server 2005 database engine 標(biāo)識(shí)該對(duì)象。標(biāo)識(shí)該對(duì)象。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.1 transact-sql概述概述3架構(gòu)的使用和說(shuō)明架構(gòu)的使用和說(shuō)明 nsql server 2005 中的架構(gòu)是形成單個(gè)命名空間的數(shù)據(jù)中的架構(gòu)是形成單個(gè)命名空間的數(shù)據(jù)庫(kù)實(shí)體的集合。架構(gòu)是單個(gè)用戶所擁有的數(shù)據(jù)庫(kù)對(duì)象的庫(kù)實(shí)體的集合。架構(gòu)是單個(gè)用戶所擁有的數(shù)據(jù)庫(kù)對(duì)象的集合,這些對(duì)象形成單個(gè)命
9、名空間。集合,這些對(duì)象形成單個(gè)命名空間。n數(shù)據(jù)庫(kù)對(duì)象由架構(gòu)所擁有,而架構(gòu)由數(shù)據(jù)庫(kù)用戶或角色數(shù)據(jù)庫(kù)對(duì)象由架構(gòu)所擁有,而架構(gòu)由數(shù)據(jù)庫(kù)用戶或角色所擁有。當(dāng)架構(gòu)所有者離開(kāi)單位時(shí),會(huì)在刪除離開(kāi)的用所擁有。當(dāng)架構(gòu)所有者離開(kāi)單位時(shí),會(huì)在刪除離開(kāi)的用戶之前將該架構(gòu)的所有權(quán)移交給新的用戶或角色。戶之前將該架構(gòu)的所有權(quán)移交給新的用戶或角色。n在使用架構(gòu)的過(guò)程中,應(yīng)該了解以下內(nèi)容:在使用架構(gòu)的過(guò)程中,應(yīng)該了解以下內(nèi)容:(1)利用架構(gòu)可以簡(jiǎn)化)利用架構(gòu)可以簡(jiǎn)化dbo和開(kāi)發(fā)人員的工作。和開(kāi)發(fā)人員的工作。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sq
10、l server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.1 transact-sql概述概述3架構(gòu)的使用和說(shuō)明架構(gòu)的使用和說(shuō)明 (2)用戶架構(gòu)分離。架構(gòu)與數(shù)據(jù)庫(kù)用戶分離對(duì))用戶架構(gòu)分離。架構(gòu)與數(shù)據(jù)庫(kù)用戶分離對(duì)dbo和開(kāi)和開(kāi)發(fā)人員而言有下列好處:發(fā)人員而言有下列好處:n多個(gè)用戶可以通過(guò)角色成員身份或多個(gè)用戶可以通過(guò)角色成員身份或 windows 組成員組成員身份擁有一個(gè)架構(gòu)。簡(jiǎn)化了刪除數(shù)據(jù)庫(kù)用戶的操作。身份擁有一個(gè)架構(gòu)。簡(jiǎn)化了刪除數(shù)據(jù)庫(kù)用戶的操作。n刪除數(shù)據(jù)庫(kù)用戶不需要重命名該用戶架構(gòu)所包含的對(duì)刪除數(shù)據(jù)庫(kù)用戶不需要重命名該用戶架構(gòu)所包含的對(duì)象。象。n多個(gè)用戶可以共享一
11、個(gè)默認(rèn)架構(gòu)以進(jìn)行統(tǒng)一名稱解析。多個(gè)用戶可以共享一個(gè)默認(rèn)架構(gòu)以進(jìn)行統(tǒng)一名稱解析。n開(kāi)發(fā)人員通過(guò)共享默認(rèn)架構(gòu)可以將共享對(duì)象存儲(chǔ)在為開(kāi)發(fā)人員通過(guò)共享默認(rèn)架構(gòu)可以將共享對(duì)象存儲(chǔ)在為特定應(yīng)用程序?qū)iT(mén)創(chuàng)建的架構(gòu)中,而不是特定應(yīng)用程序?qū)iT(mén)創(chuàng)建的架構(gòu)中,而不是 dbo 架構(gòu)架構(gòu)中。中。 n可以用更大的粒度管理架構(gòu)和架構(gòu)包含的對(duì)象的權(quán)限??梢杂酶蟮牧6裙芾砑軜?gòu)和架構(gòu)包含的對(duì)象的權(quán)限。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.1 transact-sql
12、概述概述3架構(gòu)的使用和說(shuō)明架構(gòu)的使用和說(shuō)明 完全限定的對(duì)象名稱現(xiàn)在包含完全限定的對(duì)象名稱現(xiàn)在包含4部分:部分:server.database.schema.object -即服務(wù)器即服務(wù)器.數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù).架構(gòu)架構(gòu).數(shù)據(jù)庫(kù)對(duì)象數(shù)據(jù)庫(kù)對(duì)象(3)默認(rèn)架構(gòu)。默認(rèn)架構(gòu)。sql server 2005 利用默認(rèn)架構(gòu)利用默認(rèn)架構(gòu)的概念解析未使用其完全限定名稱引用的對(duì)象的概念解析未使用其完全限定名稱引用的對(duì)象的名稱。如果未定義的名稱。如果未定義 default_schema,則,則數(shù)據(jù)庫(kù)用戶將把數(shù)據(jù)庫(kù)用戶將把 dbo 作為其默認(rèn)架構(gòu)。作為其默認(rèn)架構(gòu)。 清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql se
13、rver 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.2 transact-sql語(yǔ)句分類語(yǔ)句分類transact-sql語(yǔ)言中的語(yǔ)句根據(jù)用途分為語(yǔ)言中的語(yǔ)句根據(jù)用途分為4種類型。種類型。(1)數(shù)據(jù)定義語(yǔ)言()數(shù)據(jù)定義語(yǔ)言(ddl)。數(shù)據(jù)定義語(yǔ)言)。數(shù)據(jù)定義語(yǔ)言(data definition language)通常是數(shù)據(jù)庫(kù)管理系統(tǒng)的一部分,在通常是數(shù)據(jù)庫(kù)管理系統(tǒng)的一部分,在sql server 2005中,數(shù)據(jù)庫(kù)對(duì)象包括表、視圖、觸發(fā)器、存儲(chǔ)中,數(shù)據(jù)庫(kù)對(duì)象包括表、視圖、觸發(fā)器、存儲(chǔ)過(guò)程、規(guī)則、默認(rèn)、用戶
14、自定義的數(shù)據(jù)類型等。定義語(yǔ)言過(guò)程、規(guī)則、默認(rèn)、用戶自定義的數(shù)據(jù)類型等。定義語(yǔ)言的語(yǔ)句有的語(yǔ)句有create,alter,drop等。等。(2)數(shù)據(jù)操縱語(yǔ)言()數(shù)據(jù)操縱語(yǔ)言(dml)。數(shù)據(jù)操作語(yǔ)言)。數(shù)據(jù)操作語(yǔ)言 (data manipulation language)用于檢索和操作數(shù)據(jù)的用于檢索和操作數(shù)據(jù)的 sql 語(yǔ)句語(yǔ)句的子集。數(shù)據(jù)操縱語(yǔ)言語(yǔ)句包括的子集。數(shù)據(jù)操縱語(yǔ)言語(yǔ)句包括select、insert、update、delete等命令。等命令。 清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)
15、據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.1.2 transact-sql語(yǔ)句分類語(yǔ)句分類(3)數(shù)據(jù)控制語(yǔ)言。數(shù)據(jù)控制語(yǔ)言()數(shù)據(jù)控制語(yǔ)言。數(shù)據(jù)控制語(yǔ)言(dcl)是用來(lái)設(shè)置)是用來(lái)設(shè)置或更改數(shù)據(jù)庫(kù)用戶或角色權(quán)限的語(yǔ)句,包括或更改數(shù)據(jù)庫(kù)用戶或角色權(quán)限的語(yǔ)句,包括grant,deny,revoke等命令。在默認(rèn)狀態(tài)下,只有等命令。在默認(rèn)狀態(tài)下,只有sysadmin,dbcreator,db_owner或或db_securityadmin等等人員才有權(quán)限執(zhí)行數(shù)據(jù)控制語(yǔ)言。人員才有權(quán)限執(zhí)行數(shù)據(jù)控制語(yǔ)言。(4)控制流語(yǔ)句。)控制流語(yǔ)句。transact-sql還為用戶提供了控制流還為用戶提供了
16、控制流語(yǔ)句,用于控制語(yǔ)句,用于控制sql語(yǔ)句、語(yǔ)句塊或者存儲(chǔ)過(guò)程的執(zhí)行語(yǔ)句、語(yǔ)句塊或者存儲(chǔ)過(guò)程的執(zhí)行流程。常用流程控制語(yǔ)句有流程。常用流程控制語(yǔ)句有beginend、ifelse、while、break、goto、waitfor、return等等主要語(yǔ)句。主要語(yǔ)句。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.1 unicode碼與碼與asc碼碼(1)asc碼。碼。ansi標(biāo)準(zhǔn)機(jī)構(gòu)制定了一種編碼標(biāo)準(zhǔn)標(biāo)準(zhǔn)機(jī)構(gòu)制定了一種編碼標(biāo)準(zhǔn)asc碼,要求用
17、碼,要求用8個(gè)二進(jìn)制位來(lái)表示字母的范圍。存?zhèn)€二進(jìn)制位來(lái)表示字母的范圍。存在的缺陷是只能表示在的缺陷是只能表示256個(gè)不同的字符,不能在一個(gè)單個(gè)不同的字符,不能在一個(gè)單獨(dú)的獨(dú)的8位編碼體系中指定所有的字符。位編碼體系中指定所有的字符。(2) unicode碼。碼。unicode標(biāo)準(zhǔn)使用標(biāo)準(zhǔn)使用2個(gè)字節(jié)來(lái)表示每個(gè)字個(gè)字節(jié)來(lái)表示每個(gè)字符。符。sql server 2005將將unicode定義的一組字母、數(shù)字定義的一組字母、數(shù)字和符號(hào)識(shí)別為和符號(hào)識(shí)別為nchar、nvarchar 和和 ntext 數(shù)據(jù)類型。數(shù)據(jù)類型。在在unicode標(biāo)準(zhǔn)編碼機(jī)制下,標(biāo)準(zhǔn)編碼機(jī)制下,unicode 具有具有65,0
18、00多個(gè)可選多個(gè)可選的值,的值,unicode 可以包含大多數(shù)語(yǔ)言的字符。每個(gè)不同可以包含大多數(shù)語(yǔ)言的字符。每個(gè)不同的字符都用一種唯一的編碼進(jìn)行表示,不同語(yǔ)言的系統(tǒng)的字符都用一種唯一的編碼進(jìn)行表示,不同語(yǔ)言的系統(tǒng)之間傳輸數(shù)據(jù)時(shí)不需要任何編碼轉(zhuǎn)換,這就使得字符數(shù)之間傳輸數(shù)據(jù)時(shí)不需要任何編碼轉(zhuǎn)換,這就使得字符數(shù)據(jù)可以完全可移植了。據(jù)可以完全可移植了。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.2標(biāo)識(shí)符標(biāo)識(shí)符根據(jù)命名對(duì)象的方式,對(duì)象標(biāo)識(shí)符可分為
19、常規(guī)標(biāo)識(shí)符和分根據(jù)命名對(duì)象的方式,對(duì)象標(biāo)識(shí)符可分為常規(guī)標(biāo)識(shí)符和分隔標(biāo)識(shí)符。其字符數(shù)都必須在隔標(biāo)識(shí)符。其字符數(shù)都必須在 1 到到 100 之間。之間。1常規(guī)標(biāo)識(shí)符常規(guī)標(biāo)識(shí)符常規(guī)標(biāo)識(shí)符是符合成為常規(guī)標(biāo)識(shí)符的下列格式規(guī)則的對(duì)象常規(guī)標(biāo)識(shí)符是符合成為常規(guī)標(biāo)識(shí)符的下列格式規(guī)則的對(duì)象名稱。常規(guī)標(biāo)識(shí)符的字母要符合名稱。常規(guī)標(biāo)識(shí)符的字母要符合unicode standard 2.0標(biāo)標(biāo)準(zhǔn)和如下格式規(guī)則:準(zhǔn)和如下格式規(guī)則:n標(biāo)識(shí)符可以以字母開(kāi)頭,也可以符號(hào)標(biāo)識(shí)符可以以字母開(kāi)頭,也可以符號(hào)(表示局部變表示局部變量量)、#(表示臨時(shí)變量表示臨時(shí)變量)或者下劃線或者下劃線_開(kāi)頭。字母要符合開(kāi)頭。字母要符合unicode
20、 standard 2.0標(biāo)準(zhǔn)。標(biāo)準(zhǔn)。n后續(xù)字符可以是字母、數(shù)字和下劃線(后續(xù)字符可以是字母、數(shù)字和下劃線(_)。)。n標(biāo)識(shí)符不能是標(biāo)識(shí)符不能是transact-sql的保留字。的保留字。n標(biāo)識(shí)符中不允許嵌入空格或特殊字符。標(biāo)識(shí)符中不允許嵌入空格或特殊字符。例如,下面給出的示例都是合法的常規(guī)標(biāo)識(shí)符。例如,下面給出的示例都是合法的常規(guī)標(biāo)識(shí)符。-聲明了一個(gè)名為聲明了一個(gè)名為ex_local的局部變量。的局部變量。declare ex_local nchar(10)-聲明了一個(gè)名為聲明了一個(gè)名為ex_table的表變量。的表變量。declare ex_table table(col1,char)-用
21、于創(chuàng)建一個(gè)名為用于創(chuàng)建一個(gè)名為temptable的臨時(shí)表變量。的臨時(shí)表變量。create table #temptable(itemid,int)-定義了一個(gè)名為定義了一個(gè)名為sp_user1的存儲(chǔ)過(guò)程標(biāo)識(shí)符。的存儲(chǔ)過(guò)程標(biāo)識(shí)符。create procedure sp_user1 asbegin end清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.2標(biāo)識(shí)符標(biāo)識(shí)符2分隔標(biāo)識(shí)符分隔標(biāo)識(shí)符對(duì)于使用分隔標(biāo)識(shí)符,不符合成為常規(guī)標(biāo)識(shí)符的格式規(guī)則對(duì)于使用分
22、隔標(biāo)識(shí)符,不符合成為常規(guī)標(biāo)識(shí)符的格式規(guī)則的標(biāo)識(shí)符必須始終使用方括號(hào)的標(biāo)識(shí)符必須始終使用方括號(hào) “ ”進(jìn)行分隔。分隔符進(jìn)行分隔。分隔符僅用于標(biāo)識(shí)符,不能用于關(guān)鍵字。僅用于標(biāo)識(shí)符,不能用于關(guān)鍵字。(1)下列情況下需要使用分隔標(biāo)識(shí)符:)下列情況下需要使用分隔標(biāo)識(shí)符:n當(dāng)對(duì)象的名稱或名稱中的一部分使用保留關(guān)鍵字時(shí)。當(dāng)對(duì)象的名稱或名稱中的一部分使用保留關(guān)鍵字時(shí)。必須先更改對(duì)象的標(biāo)識(shí)符,才能使用分隔標(biāo)識(shí)符引用必須先更改對(duì)象的標(biāo)識(shí)符,才能使用分隔標(biāo)識(shí)符引用對(duì)象。對(duì)象。n當(dāng)對(duì)象的名稱使用未被列為限定標(biāo)識(shí)符的字符時(shí),允當(dāng)對(duì)象的名稱使用未被列為限定標(biāo)識(shí)符的字符時(shí),允許分隔標(biāo)識(shí)符使用當(dāng)前代碼頁(yè)中的任意字符。許分隔標(biāo)
23、識(shí)符使用當(dāng)前代碼頁(yè)中的任意字符。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.2標(biāo)識(shí)符標(biāo)識(shí)符2分隔標(biāo)識(shí)符分隔標(biāo)識(shí)符(2)分隔標(biāo)識(shí)符的格式規(guī)則:)分隔標(biāo)識(shí)符的格式規(guī)則:n分隔標(biāo)識(shí)符的主體可以包含當(dāng)前代碼頁(yè)中的分隔標(biāo)識(shí)符的主體可以包含當(dāng)前代碼頁(yè)中的字符(包括分隔符本身)的任意組合。如果字符(包括分隔符本身)的任意組合。如果分隔標(biāo)識(shí)符的主體包含分隔符,則需進(jìn)行特分隔標(biāo)識(shí)符的主體包含分隔符,則需進(jìn)行特殊處理:殊處理:n如果標(biāo)識(shí)符的主體只包含左方括號(hào)
24、如果標(biāo)識(shí)符的主體只包含左方括號(hào)( ),則無(wú),則無(wú)需進(jìn)行額外處理。需進(jìn)行額外處理。n如果標(biāo)識(shí)符的主體包含一個(gè)右方括號(hào),則必如果標(biāo)識(shí)符的主體包含一個(gè)右方括號(hào),則必須指定兩個(gè)右方括號(hào)須指定兩個(gè)右方括號(hào) ( )。例如,下面給出的示例都是合法的分隔標(biāo)識(shí)符。例如,下面給出的示例都是合法的分隔標(biāo)識(shí)符。假設(shè)語(yǔ)句中,假設(shè)語(yǔ)句中,sales volume、sales cube 和和 select 都都是分隔標(biāo)識(shí)符。是分隔標(biāo)識(shí)符。- 在在 sales volume 和和 sales cube 標(biāo)識(shí)符中插入標(biāo)識(shí)符中插入空格,而空格,而select是一個(gè)保留關(guān)鍵字。是一個(gè)保留關(guān)鍵字。select measures.sa
25、les volumefrom sales cubewhere product.select-下面的示例中,對(duì)象的名稱是下面的示例中,對(duì)象的名稱是 total profit domestic。若要引用此對(duì)象,必須使用以下分隔標(biāo)。若要引用此對(duì)象,必須使用以下分隔標(biāo)識(shí)符:識(shí)符: total profit domestic請(qǐng)注意,不必更改請(qǐng)注意,不必更改 domestic前面的左方括號(hào)來(lái)創(chuàng)前面的左方括號(hào)來(lái)創(chuàng)建分隔標(biāo)識(shí)符。但是,必須將建分隔標(biāo)識(shí)符。但是,必須將domestic 后面的右方后面的右方括號(hào)替換為兩個(gè)右方括號(hào)。括號(hào)替換為兩個(gè)右方括號(hào)。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql ser
26、ver 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.3 常量常量常量表示一個(gè)特定數(shù)據(jù)值的符號(hào)。常量表示一個(gè)特定數(shù)據(jù)值的符號(hào)。(1)字符串常量。)字符串常量。n字符串常量括在單引號(hào)內(nèi)并包含字母數(shù)字字符(字符串常量括在單引號(hào)內(nèi)并包含字母數(shù)字字符(a-z、a-z 和和 0-9)以及特殊字符(如)以及特殊字符(如!、和和#等)的字符等)的字符序列。序列。n字符串常量遵循當(dāng)前數(shù)據(jù)庫(kù)的默認(rèn)排序規(guī)則,除非使字符串常量遵循當(dāng)前數(shù)據(jù)庫(kù)的默認(rèn)排序規(guī)則,除非使用用 collate 子句為其指定了排序規(guī)則。子句為其指定了排序規(guī)則
27、。n如果單引號(hào)中的字符串包含一個(gè)嵌入的引號(hào),則可以如果單引號(hào)中的字符串包含一個(gè)嵌入的引號(hào),則可以使用兩個(gè)單引號(hào)表示嵌入的單引號(hào)。也可以使用雙引使用兩個(gè)單引號(hào)表示嵌入的單引號(hào)。也可以使用雙引號(hào)定義字符串常量,則對(duì)于嵌入在雙引號(hào)中的單引號(hào)號(hào)定義字符串常量,則對(duì)于嵌入在雙引號(hào)中的單引號(hào)不必作特別處理。不必作特別處理。n空字符串用中間沒(méi)有任何字符的兩個(gè)單引號(hào)表示??兆址弥虚g沒(méi)有任何字符的兩個(gè)單引號(hào)表示。以下是字符串的示例:以下是字符串的示例: ca123obrienprocess x is 50%.the level for job_id: %d should be between %d and
28、%d.obrien對(duì)于對(duì)于unicode 字符串,其前面必須有一個(gè)大字符串,其前面必須有一個(gè)大寫(xiě)字母寫(xiě)字母n 前綴。例如,前綴。例如,abcd 是字符串常量是字符串常量而而 nabdc 則是則是 unicode 常量。常量。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 以下是在以下是在 transact-sql 中使用的分隔符中使用的分隔符類型:類型:n引用的標(biāo)識(shí)符用雙引號(hào)引用的標(biāo)識(shí)符用雙引號(hào) (“) 分隔開(kāi):分隔開(kāi):select * from “
29、blanks in table name”n括在括號(hào)中的標(biāo)識(shí)符用方括號(hào)括在括號(hào)中的標(biāo)識(shí)符用方括號(hào) ( ) 分隔開(kāi):分隔開(kāi): select * from blanks in table name n僅當(dāng)僅當(dāng) quoted_identifier 選項(xiàng)設(shè)為選項(xiàng)設(shè)為 on 時(shí),時(shí),引用的標(biāo)識(shí)符才有效。默認(rèn)情況下,當(dāng)用于引用的標(biāo)識(shí)符才有效。默認(rèn)情況下,當(dāng)用于 sql server 的的 microsoft ole db 提供程序和提供程序和 sql server odbc 驅(qū)動(dòng)程序連接時(shí),將驅(qū)動(dòng)程序連接時(shí),將 quoted_identifier 設(shè)為設(shè)為 on。 清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版
30、社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 當(dāng)當(dāng) quoted_identifier 設(shè)為設(shè)為 on 時(shí),對(duì)于時(shí),對(duì)于 sql 語(yǔ)句中的雙引號(hào)語(yǔ)句中的雙引號(hào) () 和單引號(hào)和單引號(hào) () 的用法,的用法,sql server 遵循遵循 sql-92 規(guī)則。例如:規(guī)則。例如: n雙引號(hào)只能用于分隔標(biāo)識(shí)符,不能用于雙引號(hào)只能用于分隔標(biāo)識(shí)符,不能用于分隔字符串。分隔字符串。 n單引號(hào)只用于包含字符串,不能用于分單引號(hào)只用于包含字符串,不能用于分隔標(biāo)識(shí)符。隔標(biāo)識(shí)符。 如果字符串包含嵌入的單引號(hào)
31、,則應(yīng)在如果字符串包含嵌入的單引號(hào),則應(yīng)在該嵌入的單引號(hào)前再添加一個(gè)單引號(hào)。該嵌入的單引號(hào)前再添加一個(gè)單引號(hào)。例如:例如: 清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) select * from my table where last name = obrien 如果如果 quoted_identifier 設(shè)為設(shè)為 off,對(duì)于單引號(hào)和雙引號(hào)的用法,對(duì)于單引號(hào)和雙引號(hào)的用法,sql server 遵循以下規(guī)則:遵循以下規(guī)則: n引號(hào)不能用于分隔
32、標(biāo)識(shí)符,而必須將括引號(hào)不能用于分隔標(biāo)識(shí)符,而必須將括號(hào)用作分隔符。號(hào)用作分隔符。n單引號(hào)或雙引號(hào)可用于包含字符串。單引號(hào)或雙引號(hào)可用于包含字符串。 如果使用雙引號(hào),嵌入的單引號(hào)將不必如果使用雙引號(hào),嵌入的單引號(hào)將不必用兩個(gè)單引號(hào)來(lái)表示。例如:用兩個(gè)單引號(hào)來(lái)表示。例如: 清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) select * from my table where last name = obrien 無(wú)論采用哪種無(wú)論采用哪種 quoted_
33、identifier 設(shè)設(shè)置,都可以使用括號(hào)分隔符。置,都可以使用括號(hào)分隔符。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.3 常量常量(2)二進(jìn)制常量)二進(jìn)制常量 。二進(jìn)制常量具有前輟二進(jìn)制常量具有前輟0 x并且是十并且是十六進(jìn)制數(shù)字字符串。這些常量不使用引號(hào)括起。六進(jìn)制數(shù)字字符串。這些常量不使用引號(hào)括起。下面是二進(jìn)制字符串的示例:下面是二進(jìn)制字符串的示例:0 xaa 0 x1ce0 x69048aefbb010e0 x ( 表示空二進(jìn)制
34、字符表示空二進(jìn)制字符)(3)bit 常量。常量。bit常量使用數(shù)字常量使用數(shù)字0或或1表示,并且不表示,并且不括在引號(hào)中。如果使用一個(gè)大于括在引號(hào)中。如果使用一個(gè)大于 1 的數(shù)字,則該數(shù)的數(shù)字,則該數(shù)字將轉(zhuǎn)換為字將轉(zhuǎn)換為1。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.3 常量常量(4)日期時(shí)間常量)日期時(shí)間常量。datetime 常量使用特定格式的字常量使用特定格式的字符日期值來(lái)表示,并被單引號(hào)括起來(lái)。符日期值來(lái)表示,并被單引號(hào)括起來(lái)。常
35、用的常用的datetime常量格式的示例如下:常量格式的示例如下: april 15, 201015 april, 201109041504/15/10下面是時(shí)間常量的示例:下面是時(shí)間常量的示例:16:30:2707:27 pm (5)整型常量。)整型常量。integer 常量以沒(méi)有用引號(hào)括起常量以沒(méi)有用引號(hào)括起來(lái)并且不包含小數(shù)點(diǎn)的來(lái)并且不包含小數(shù)點(diǎn)的數(shù)字字符序列來(lái)表示。數(shù)字字符序列來(lái)表示。integer 常量不能包含小常量不能包含小數(shù)且必須全部為數(shù)字。數(shù)且必須全部為數(shù)字。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql
36、server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.3 常量常量(6)數(shù)值型常量。)數(shù)值型常量。decimal 常量由沒(méi)有用引號(hào)括起來(lái)并常量由沒(méi)有用引號(hào)括起來(lái)并且包含小數(shù)點(diǎn)的數(shù)字字符串來(lái)表示。且包含小數(shù)點(diǎn)的數(shù)字字符串來(lái)表示。 下面是下面是 decimal 常量的示例:常量的示例: 3.14159269.807(7)浮點(diǎn)型常量。)浮點(diǎn)型常量。float 和和 real 常量一般使用科學(xué)記數(shù)常量一般使用科學(xué)記數(shù)法來(lái)表示。法來(lái)表示。 下面是下面是 float 或或 real 值的示例:值的示例:13.76e9 2.77e-3清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. s
37、ql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.3 常量常量(8)貨幣型常量。)貨幣型常量。money 常量以前綴為可選的小常量以前綴為可選的小數(shù)點(diǎn)和可選的貨幣符號(hào)的數(shù)字字符串來(lái)表示。數(shù)點(diǎn)和可選的貨幣符號(hào)的數(shù)字字符串來(lái)表示。下面是下面是 money 常量的示例:常量的示例: $20137$5420437數(shù)值型常量數(shù)值型常量(包括(包括integer 、decimal、 float 、money等類型)若要指示一個(gè)數(shù)是正數(shù)還是負(fù)等類型)若要指示一個(gè)數(shù)是正數(shù)還是負(fù)數(shù),可以對(duì)數(shù)值常量應(yīng)用數(shù),可以
38、對(duì)數(shù)值常量應(yīng)用 + 或或 - 一元運(yùn)算符,一元運(yùn)算符,成為一個(gè)表示有符號(hào)數(shù)字值的表達(dá)式。如果沒(méi)成為一個(gè)表示有符號(hào)數(shù)字值的表達(dá)式。如果沒(méi)有應(yīng)用有應(yīng)用+或或-一元運(yùn)算符,則數(shù)值常量為正數(shù)。一元運(yùn)算符,則數(shù)值常量為正數(shù)。例如,各數(shù)值類型的正負(fù)數(shù)示例如下:例如,各數(shù)值類型的正負(fù)數(shù)示例如下: +3356 918 -2277 +3.1426 7.3789 -2.71828 +123e-3 -12e5-$45.56 +$423456.99 $423455(9)guid常量。常量。全局唯一標(biāo)識(shí)符(全局唯一標(biāo)識(shí)符(uniqueidentifier)常量是表示常量是表示 guid 的字符串??梢允褂米址蚨M(jìn)制字
39、的字符串??梢允褂米址蚨M(jìn)制字符串格式指定。符串格式指定。以下是以下是 guid類型示例:類型示例:6f9619ff-8b86-d011-b42d-00c04fc964ff0 xff19966f868b11d0b42d00c04fc964ff清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.4 變量變量n兩種形式的變量:兩種形式的變量:用戶自己定義的局部變量和系統(tǒng)提供用戶自己定義的局部變量和系統(tǒng)提供的全局變量。的全局變量。n聲明變量聲明變量:
40、使用:使用declare命令,為變量賦值時(shí)則需要命令,為變量賦值時(shí)則需要使用使用set和和select命令。命令。set命令一次只能為一個(gè)變命令一次只能為一個(gè)變量賦值,而量賦值,而select命令可以同時(shí)為多個(gè)變量賦值。命令可以同時(shí)為多個(gè)變量賦值。 1局部變量局部變量局部變量是一個(gè)能夠擁有特定數(shù)據(jù)類型的對(duì)象,它的作用局部變量是一個(gè)能夠擁有特定數(shù)據(jù)類型的對(duì)象,它的作用范圍僅限制在程序內(nèi)部。局部變量被引用時(shí)要在其名稱范圍僅限制在程序內(nèi)部。局部變量被引用時(shí)要在其名稱前加上標(biāo)志,而且必須先用前加上標(biāo)志,而且必須先用declare命令定義后才命令定義后才可以使用??梢允褂谩?定義局部變量的語(yǔ)法形式如下:
41、定義局部變量的語(yǔ)法形式如下:declaer local_variable data_type,n如果想要設(shè)定局部變量的值,必須使用如果想要設(shè)定局部變量的值,必須使用select命令或者命令或者set命令。其語(yǔ)法形式為:命令。其語(yǔ)法形式為:set local_variable = expression 或者:或者: select local_variable = expression ,.n 例例4.1聲明一個(gè)聲明一個(gè)myvar 變量,然后將一變量,然后將一個(gè)字符串值放在變量中,再輸出個(gè)字符串值放在變量中,再輸出myvar 變量的值。變量的值。程序代碼如下:程序代碼如下:declare myva
42、r nchar(20)set myvar = this is a testselect myvar go清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.4 變量變量 2. 全局變量全局變量 n全局變量是全局變量是sql server系統(tǒng)內(nèi)部使用的變量,可以讓任系統(tǒng)內(nèi)部使用的變量,可以讓任何程序均可以隨時(shí)調(diào)用。何程序均可以隨時(shí)調(diào)用。n全局變量通常存儲(chǔ)一些全局變量通常存儲(chǔ)一些sql server的配置設(shè)定值和統(tǒng)計(jì)的配置設(shè)定值和統(tǒng)計(jì)數(shù)據(jù)。用戶可以在
43、程序中用全局變量來(lái)測(cè)試系統(tǒng)的設(shè)定數(shù)據(jù)。用戶可以在程序中用全局變量來(lái)測(cè)試系統(tǒng)的設(shè)定值或者是值或者是transact-sql命令執(zhí)行后的狀態(tài)值。命令執(zhí)行后的狀態(tài)值。n在使用全局變量時(shí)應(yīng)該注意以下幾點(diǎn):在使用全局變量時(shí)應(yīng)該注意以下幾點(diǎn):n全局變量是在服務(wù)器級(jí)定義的。全局變量是在服務(wù)器級(jí)定義的。n用戶只能使用預(yù)先定義的全局變量。用戶只能使用預(yù)先定義的全局變量。n引用全局變量時(shí),必須以標(biāo)記符引用全局變量時(shí),必須以標(biāo)記符“”開(kāi)頭。開(kāi)頭。n局部變量名稱不能與全局變量的名稱相同,否則會(huì)在局部變量名稱不能與全局變量的名稱相同,否則會(huì)在應(yīng)用程序中出現(xiàn)不可預(yù)測(cè)的結(jié)果。應(yīng)用程序中出現(xiàn)不可預(yù)測(cè)的結(jié)果。例例4.2顯示到當(dāng)
44、前日期和時(shí)間為止試圖顯示到當(dāng)前日期和時(shí)間為止試圖登錄登錄sql server 2005的次數(shù)。的次數(shù)。程序代碼如下:程序代碼如下:select getdate() as 當(dāng)前的時(shí)當(dāng)前的時(shí)期和時(shí)間期和時(shí)間, connections as 試圖登錄的試圖登錄的次數(shù)次數(shù)清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.2.5注釋注釋n注釋是程序代碼中非可執(zhí)行的文本字符串。使用注釋對(duì)注釋是程序代碼中非可執(zhí)行的文本字符串。使用注釋對(duì)代碼進(jìn)行說(shuō)明,不僅能使程序
45、易讀易懂,而且有助于日代碼進(jìn)行說(shuō)明,不僅能使程序易讀易懂,而且有助于日后的管理和維護(hù)。后的管理和維護(hù)。n注釋通常用于記錄程序名稱、作者姓名和主要代碼更改注釋通常用于記錄程序名稱、作者姓名和主要代碼更改的日期。注釋還可以用于描述復(fù)雜的計(jì)算或者解釋編程的日期。注釋還可以用于描述復(fù)雜的計(jì)算或者解釋編程的方法。的方法。n在在sql server 2005中,可以使用兩種類型的注釋方法:中,可以使用兩種類型的注釋方法:n-注釋。該方式用于單行注釋。注釋。該方式用于單行注釋。n/* */注釋。注釋。“/*”用于注釋文字的開(kāi)頭,用于注釋文字的開(kāi)頭,“*/”用于用于注釋文字的結(jié)尾,利用它們可以在程序中標(biāo)識(shí)多行
46、文注釋文字的結(jié)尾,利用它們可以在程序中標(biāo)識(shí)多行文字為注釋。當(dāng)然,單行注釋也可以使用。字為注釋。當(dāng)然,單行注釋也可以使用。 例例4.3 為前面的例子添加注釋。為前面的例子添加注釋。程序代碼如下:程序代碼如下:declare myvar nchar(20) -定義變量定義變量myvar/* 下面第一行給變量賦值下面第一行給變量賦值 第第2行輸出變量值行輸出變量值 */set myvar = this is a testselect myvar go 清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)
47、應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 運(yùn)算符是用來(lái)執(zhí)行算術(shù)運(yùn)算、字符串連接、賦值運(yùn)算符是用來(lái)執(zhí)行算術(shù)運(yùn)算、字符串連接、賦值以及在字段、常量和變量之間進(jìn)行比較的操作以及在字段、常量和變量之間進(jìn)行比較的操作符。運(yùn)算符主要有以下符。運(yùn)算符主要有以下6大類:大類:n算術(shù)運(yùn)算符算術(shù)運(yùn)算符n賦值運(yùn)算符賦值運(yùn)算符n位運(yùn)算符位運(yùn)算符n比較運(yùn)算符比較運(yùn)算符n邏輯運(yùn)算符邏輯運(yùn)算符n字符串串聯(lián)運(yùn)算符。字符串串聯(lián)運(yùn)算符。清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)
48、4.3.1算術(shù)運(yùn)算符算術(shù)運(yùn)算符算術(shù)運(yùn)算符主要用于實(shí)現(xiàn)數(shù)學(xué)計(jì)算功能,包算術(shù)運(yùn)算符主要用于實(shí)現(xiàn)數(shù)學(xué)計(jì)算功能,包含的運(yùn)算符及功能說(shuō)明如表含的運(yùn)算符及功能說(shuō)明如表4.2所示。主要所示。主要包括包括+、 - 、*、 /、 % 。4.3.2 比較運(yùn)算符比較運(yùn)算符比較運(yùn)算符用于比較兩個(gè)表達(dá)式的值是否相比較運(yùn)算符用于比較兩個(gè)表達(dá)式的值是否相等。等。transact-sql支持的比較運(yùn)算符有支持的比較運(yùn)算符有、=、= 、 、=、 、 != 、! 、!、=、=、!=、!、!=60print pass ,very good !elseprint no pass , try again!清華大學(xué)出版社清華大學(xué)出版社清
49、華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.6.2 beginend語(yǔ)句語(yǔ)句nbeginend語(yǔ)句能夠?qū)⒍鄠€(gè)語(yǔ)句能夠?qū)⒍鄠€(gè)transact-sql語(yǔ)語(yǔ)句組合成一個(gè)語(yǔ)句塊,并將它們視為一個(gè)單元句組合成一個(gè)語(yǔ)句塊,并將它們視為一個(gè)單元處理。在條件語(yǔ)句和循環(huán)等控制流程語(yǔ)句中,處理。在條件語(yǔ)句和循環(huán)等控制流程語(yǔ)句中,當(dāng)符合特定條件便要執(zhí)行兩個(gè)或者多個(gè)語(yǔ)句時(shí),當(dāng)符合特定條件便要執(zhí)行兩個(gè)或者多個(gè)語(yǔ)句時(shí),就需要使用就需要使用beginend語(yǔ)句。語(yǔ)句。nbeginend語(yǔ)句的語(yǔ)法形式為
50、:語(yǔ)句的語(yǔ)法形式為:begin sql_statement | statement_block end 例例4.12 用用begin end 語(yǔ)句可使語(yǔ)句可使if 語(yǔ)句語(yǔ)句在計(jì)算結(jié)果為在計(jì)算結(jié)果為false時(shí)跳過(guò)語(yǔ)句塊。時(shí)跳過(guò)語(yǔ)句塊。程序代碼如下:程序代碼如下:declare myvar floatset myvar=5.7if myvar10.8 begin set myvar = 123.456 print 變量變量myvar的值為:的值為: print cast(myvar as varchar(12 ) endelse print cast(myvar as varchar(12 )清
51、華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.6.3 while語(yǔ)句語(yǔ)句nwhilecontinuebreak語(yǔ)句用于設(shè)置重語(yǔ)句用于設(shè)置重復(fù)執(zhí)行復(fù)執(zhí)行 sql 語(yǔ)句或語(yǔ)句塊的條件。語(yǔ)句或語(yǔ)句塊的條件。continue語(yǔ)句可以使程序跳過(guò)語(yǔ)句可以使程序跳過(guò)continue語(yǔ)句后面的語(yǔ)句。語(yǔ)句后面的語(yǔ)句。nbreak語(yǔ)句則使程序完全跳出循環(huán)。語(yǔ)句則使程序完全跳出循環(huán)。nwhile語(yǔ)句的語(yǔ)法形式為:語(yǔ)句的語(yǔ)法形式為: while boolean_expr
52、ession sql_statement | statement_block break sql_statement | statement_block continue 例例4.13 循環(huán)控制語(yǔ)句循環(huán)控制語(yǔ)句while的使用方法。程序代碼如下:use teaching godeclare count as intset count =1while exists(select * from student where point800) beginset count = count+1 break endprint 入學(xué)成績(jī)?nèi)雽W(xué)成績(jī)800分的有:分的有:+cast(count as char(
53、2)+人人清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.6.4 case語(yǔ)句語(yǔ)句 ncase語(yǔ)句可以計(jì)算多個(gè)條件式,并將其中一個(gè)符合條語(yǔ)句可以計(jì)算多個(gè)條件式,并將其中一個(gè)符合條件的結(jié)果表達(dá)式返回。件的結(jié)果表達(dá)式返回。ncase語(yǔ)句按照使用形式的不同,可以分為簡(jiǎn)單語(yǔ)句按照使用形式的不同,可以分為簡(jiǎn)單case語(yǔ)語(yǔ)句和搜索句和搜索case語(yǔ)句。語(yǔ)句。n簡(jiǎn)單簡(jiǎn)單case語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格式為:case input_expression wh
54、en when_expression then result_expression .n else else_result_expression end 例例4.14 簡(jiǎn)單簡(jiǎn)單case語(yǔ)句舉例。程序代碼如下。程序代碼如下。use teachinggoselect tname as 姓名姓名 , department as 院系院系, case prof when 教授教授 then高級(jí)高級(jí) when 副教授副教授 then 高級(jí)高級(jí) when 講師講師 then 中級(jí)中級(jí) when 助教助教 then 初級(jí)初級(jí) end as 職稱類別職稱類別from teacherwhere departme
55、nt=計(jì)算機(jī)學(xué)院計(jì)算機(jī)學(xué)院go程序執(zhí)行結(jié)果如下:姓名 院系 職稱類別- - -韓晉升 計(jì)算機(jī)學(xué)院 高級(jí)劉元朝 計(jì)算機(jī)學(xué)院 高級(jí)海封 計(jì)算機(jī)學(xué)院 高級(jí)盧明欣 計(jì)算機(jī)學(xué)院 中級(jí)(4 行受影響)清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.6.4 case語(yǔ)句語(yǔ)句 搜索搜索case語(yǔ)句的語(yǔ)法格式為:語(yǔ)句的語(yǔ)法格式為:case when boolean_expression then result_expression .n else else_res
56、ult_expression end 例例4.15搜索搜索case語(yǔ)句舉例。程序代碼如下。use teachinggoselect studentno as 學(xué)號(hào)學(xué)號(hào),courseno as 課程課程, case when usually*0.2+ final*0.8=90 then 優(yōu)秀優(yōu)秀 when usually*0.2+ final*0.8=80 then 良好良好 when usually*0.2+ final*0.8=70 then 中等中等 when usually*0.2+ final*0.8=60 then 及格及格 when usually*0.2+ final*0.860
57、 then 不及格不及格 end as 總評(píng)成績(jī)總評(píng)成績(jī)from score where courseno in (c06108,c08106,c05109 ) go程序執(zhí)行結(jié)果如下:學(xué)號(hào) 課程 總評(píng)成績(jī)- - -0822111208 c05109 良好0822111208 c06108 優(yōu)秀0824113307 c05109 良好. .0935222201 c05109 優(yōu)秀0937221508 c05109 良好0937221508 c08106 優(yōu)秀(11 行受影響)清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql
58、server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.6.5 其他語(yǔ)句其他語(yǔ)句 1go 語(yǔ)句語(yǔ)句 go 語(yǔ)句是批處理的結(jié)束語(yǔ)句。批處理是一起提語(yǔ)句是批處理的結(jié)束語(yǔ)句。批處理是一起提交并作為一個(gè)組執(zhí)行的若干交并作為一個(gè)組執(zhí)行的若干sql語(yǔ)句。語(yǔ)句。 2. print語(yǔ)句語(yǔ)句nprint語(yǔ)句的功能是向客戶端返回用戶定義消語(yǔ)句的功能是向客戶端返回用戶定義消息。息。nprint語(yǔ)句的語(yǔ)法格式:語(yǔ)句的語(yǔ)法格式:print local_variable | string_expr清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 20
59、05. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.6.5 其他語(yǔ)句其他語(yǔ)句 3goto語(yǔ)句語(yǔ)句 ngoto語(yǔ)句可以使程序直接跳到指定的標(biāo)有標(biāo)語(yǔ)句可以使程序直接跳到指定的標(biāo)有標(biāo)識(shí)符的位置處繼續(xù)執(zhí)行,而位于識(shí)符的位置處繼續(xù)執(zhí)行,而位于goto語(yǔ)句和語(yǔ)句和標(biāo)識(shí)符之間的程序?qū)⒉粫?huì)被執(zhí)行。標(biāo)識(shí)符可以標(biāo)識(shí)符之間的程序?qū)⒉粫?huì)被執(zhí)行。標(biāo)識(shí)符可以為數(shù)字與字符的組合,但必須以為數(shù)字與字符的組合,但必須以“: ”結(jié)尾。結(jié)尾。ngoto語(yǔ)句的語(yǔ)法形式為:語(yǔ)句的語(yǔ)法形式為: label : statement | statement_block goto label例例4.16
60、 利用利用goto語(yǔ)句求出從語(yǔ)句求出從1加到加到7的總和。的總和。程序代碼如下:程序代碼如下:declare sum int,count int select sum=0,count=0label_1:select count=count+1select sum=sum+countif count=6goto label_1select count as 數(shù)值數(shù)值,sum as 17累加和累加和清華大學(xué)出版社清華大學(xué)出版社清華大學(xué)出版社. sql server 2005. sql server 2005. sql server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā) 4.6.
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 分子靶向治療臨床應(yīng)用與研究進(jìn)展
- 國(guó)際勞務(wù)合作仲裁條款合同
- 精益求精智能建筑光伏幕墻清潔機(jī)器人租賃服務(wù)規(guī)范文本
- 花卉綠植租賃擺放與室內(nèi)外裝飾設(shè)計(jì)服務(wù)合同
- 精細(xì)化管理影視特效場(chǎng)景施工與后期維護(hù)合同
- 智慧商業(yè)廣場(chǎng)餐飲區(qū)特許經(jīng)營(yíng)合同
- 跨平臺(tái)APP前端開(kāi)發(fā)專家勞務(wù)派遣服務(wù)合同
- 氫能源加注站安全責(zé)任追究與事故調(diào)查承包合同
- 網(wǎng)店過(guò)戶流程規(guī)范及全程服務(wù)協(xié)議
- 直播帶貨傭金分成與權(quán)益保護(hù)協(xié)議
- 深邃的世界:西方繪畫(huà)中的科學(xué)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024年大學(xué)本科課程教育心理學(xué)教案(全冊(cè)完整版)
- 四川省成都市2020年中考英語(yǔ)真題(含答案)
- 配音基礎(chǔ)知識(shí)課件
- 卡西歐手表EFA-120中文使用說(shuō)明書(shū)
- 《十萬(wàn)個(gè)為什么》整本書(shū)閱讀-課件-四年級(jí)下冊(cè)語(yǔ)文(統(tǒng)編版)
- 新質(zhì)生產(chǎn)力視角下高校產(chǎn)教融合人才培養(yǎng)模式研究
- 景觀魚(yú)池施工合同范本
- 孟萬(wàn)金編制的中國(guó)大學(xué)生積極心理品質(zhì)量表+評(píng)分方式
- 《應(yīng)用文寫(xiě)作》中職全套教學(xué)課件
- JGT 486-2015 混凝土用復(fù)合摻合料
評(píng)論
0/150
提交評(píng)論