Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo)_第1頁(yè)
Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo)_第2頁(yè)
Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo)_第3頁(yè)
Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo)_第4頁(yè)
Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 第第4章章 Transact-SQL語(yǔ)言編程語(yǔ)言編程 學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo): 掌握掌握transact-sql編程知識(shí)編程知識(shí) 綜合運(yùn)用變量、表達(dá)式、函數(shù)以及流控語(yǔ)句等編寫(xiě)程序代碼綜合運(yùn)用變量、表達(dá)式、函數(shù)以及流控語(yǔ)句等編寫(xiě)程序代碼 重點(diǎn):掌握常用函數(shù)及流控語(yǔ)句的使用重點(diǎn):掌握常用函數(shù)及流控語(yǔ)句的使用,并學(xué)會(huì)編寫(xiě)并學(xué)會(huì)編寫(xiě)sql server 2000程序代碼程序代碼 難點(diǎn):掌握常用函數(shù)及流控語(yǔ)句的使用難點(diǎn):掌握常用函數(shù)及流控語(yǔ)句的使用,并學(xué)會(huì)編寫(xiě)并學(xué)會(huì)編寫(xiě)sql server 2000程序代碼程序代碼 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) Trans

2、actSQL的語(yǔ)法規(guī)則的語(yǔ)法規(guī)則 大寫(xiě):關(guān)鍵字 斜體或小寫(xiě)字母:用戶(hù)提供的參數(shù) | :分隔括號(hào)或大括號(hào)內(nèi)的語(yǔ)法項(xiàng)目。只能選擇一個(gè)項(xiàng)目 :可選語(yǔ)法項(xiàng)目 :必選語(yǔ)法項(xiàng)目 ( ):語(yǔ)句的組成部分,必須輸入 ,n:表示前面的項(xiàng)可重復(fù)n次,每一項(xiàng)由逗號(hào)隔開(kāi) n:表示前面的項(xiàng)可重復(fù)n次,每一項(xiàng)由空格隔開(kāi) 加粗:數(shù)據(jù)庫(kù)名、表名、列名、索引名、存儲(chǔ)過(guò)程、 實(shí)用工 具、數(shù)據(jù)類(lèi)型名以及必須按所顯示的原樣鍵入的文本。 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 引用數(shù)據(jù)庫(kù)對(duì)象名的規(guī)則引用數(shù)據(jù)庫(kù)對(duì)象名的規(guī)則 Server_name.database_name.owner_name. object_name Databa

3、se_name. owner_name.object_name owner_name.object_name object_name 注:對(duì)象的名字可由1128個(gè)字符組成,不區(qū)分大小寫(xiě)。不 允許存在4部分名稱(chēng)完全相同的數(shù)據(jù)庫(kù)對(duì)象。在同一個(gè)數(shù)據(jù) 庫(kù)里可以存在兩個(gè)名為EXAMPLE的表格,但前提條件必須 是這兩個(gè)表的擁有者不同 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) Transact-SQL的語(yǔ)法元素的語(yǔ)法元素 1.標(biāo)識(shí)符:用來(lái)標(biāo)識(shí)服務(wù)器、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象標(biāo)識(shí)符:用來(lái)標(biāo)識(shí)服務(wù)器、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象 的名稱(chēng)的名稱(chēng) 常規(guī)標(biāo)識(shí)符:第一個(gè)字符必須是下列字符之一:常規(guī)標(biāo)識(shí)符:第一個(gè)字符必須是下列字符之一

4、: a-z和和A-Z,以及來(lái)自其他語(yǔ)言的字母字符或,以及來(lái)自其他語(yǔ)言的字母字符或 者下劃線者下劃線_、或或#。其他字符可以是字母、數(shù)字、。其他字符可以是字母、數(shù)字、 $、#或下劃線(內(nèi)部不允許有空格或特殊字符,不允許或下劃線(內(nèi)部不允許有空格或特殊字符,不允許 是保留字)是保留字) 以以開(kāi)始的標(biāo)識(shí)符:表示局部變量或參數(shù)開(kāi)始的標(biāo)識(shí)符:表示局部變量或參數(shù) 以以#開(kāi)始的標(biāo)識(shí)符:表示臨時(shí)表或過(guò)程開(kāi)始的標(biāo)識(shí)符:表示臨時(shí)表或過(guò)程 以以#開(kāi)始的標(biāo)識(shí)符:表示全局臨時(shí)變量開(kāi)始的標(biāo)識(shí)符:表示全局臨時(shí)變量 以以開(kāi)始的標(biāo)識(shí)符:表示全局變量開(kāi)始的標(biāo)識(shí)符:表示全局變量 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 分隔標(biāo)識(shí)符

5、:對(duì)不符合所有標(biāo)識(shí)符規(guī)則的標(biāo)識(shí)分隔標(biāo)識(shí)符:對(duì)不符合所有標(biāo)識(shí)符規(guī)則的標(biāo)識(shí) 符必須進(jìn)行分隔,將其包含在雙引號(hào)符必須進(jìn)行分隔,將其包含在雙引號(hào)“或方括或方括 號(hào)號(hào) 內(nèi),如內(nèi),如ORDER 注注: transact-sql 的保留字不能用來(lái)做標(biāo)識(shí)符的保留字不能用來(lái)做標(biāo)識(shí)符.標(biāo)識(shí)標(biāo)識(shí) 符中也不允許有空格符中也不允許有空格. 數(shù)據(jù)類(lèi)型:有系統(tǒng)數(shù)據(jù)類(lèi)型與用戶(hù)定義的數(shù)據(jù)數(shù)據(jù)類(lèi)型:有系統(tǒng)數(shù)據(jù)類(lèi)型與用戶(hù)定義的數(shù)據(jù) 類(lèi)型類(lèi)型 函數(shù):可以有函數(shù):可以有0個(gè),個(gè),1個(gè)或多個(gè)參數(shù),并返回一個(gè)或多個(gè)參數(shù),并返回一 個(gè)值或值的集合個(gè)值或值的集合 表達(dá)式表達(dá)式 運(yùn)算符運(yùn)算符 注釋?zhuān)鹤⑨專(zhuān)?:只能注釋一行代碼:只能注釋一行代碼

6、/* . .*/:可注釋大斷的代碼:可注釋大斷的代碼 7. 保留字:保留字: Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 3.2 函數(shù)函數(shù) SQL Server提供的函數(shù)有:聚合函數(shù)、提供的函數(shù)有:聚合函數(shù)、 配置函數(shù)、游標(biāo)函數(shù)、日期函數(shù)、數(shù)學(xué)配置函數(shù)、游標(biāo)函數(shù)、日期函數(shù)、數(shù)學(xué) 函數(shù)、元數(shù)據(jù)函數(shù)、函數(shù)、元數(shù)據(jù)函數(shù)、 行集函數(shù)、安全行集函數(shù)、安全 函數(shù)、字符串函數(shù)、系統(tǒng)函數(shù)、文本與函數(shù)、字符串函數(shù)、系統(tǒng)函數(shù)、文本與 圖像函數(shù)圖像函數(shù) Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 一、聚合函數(shù)(統(tǒng)計(jì)函數(shù)):對(duì)一組值進(jìn)行計(jì)算并返一、聚合函數(shù)(統(tǒng)計(jì)函數(shù)):對(duì)一組值進(jìn)行計(jì)算并返 回一個(gè)數(shù)值回一個(gè)數(shù)值 SUM(

7、ALL|DISTINCTexpression):求和):求和 MIN (ALL|DISTINCTexpression):求最小值):求最小值 MAX(ALL|DISTINCTexpression):求最大值):求最大值 COUNT (ALL|DISTINCTexpression|*):計(jì)算總行數(shù)):計(jì)算總行數(shù) Count(*) :包括含有空值的行,同時(shí)不能與包括含有空值的行,同時(shí)不能與distinct一起使用一起使用 例:例: select count( departname) as 系數(shù)系數(shù) from department ( 可先可先 刪除一個(gè)系,使該行為空)刪除一個(gè)系,使該行為空) se

8、lect count( distinct *) as 系數(shù)系數(shù) from department /出現(xiàn)錯(cuò)誤信出現(xiàn)錯(cuò)誤信 息息 AVG (ALL|DISTINCTexpression):求平均值求平均值 注意注意:select ,group by ,having 可以使用可以使用聚合函數(shù)聚合函數(shù),where不行不行 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 例例3.1 計(jì)算計(jì)算course表的總行數(shù)表的總行數(shù) SELECT COUNT(*) AS Course表的總行數(shù)表的總行數(shù) FROM Course 例例3.2 計(jì)算計(jì)算course表各門(mén)課程限選人數(shù)的總?cè)藬?shù)表各門(mén)課程限選人數(shù)的總?cè)藬?shù) SEL

9、ECT SUM(LimitNum) AS 限選人數(shù)總?cè)藬?shù)限選人數(shù)總?cè)藬?shù) FROM Course 例例3.3 統(tǒng)計(jì)統(tǒng)計(jì)course表中各門(mén)課程中最少報(bào)名人數(shù)、表中各門(mén)課程中最少報(bào)名人數(shù)、 最多報(bào)名人數(shù)和平均報(bào)名人數(shù)最多報(bào)名人數(shù)和平均報(bào)名人數(shù) SELECT MIN(WillNum) AS 最少報(bào)名人數(shù)最少報(bào)名人數(shù), MAX(WillNum) AS 最多報(bào)名人數(shù)最多報(bào)名人數(shù), AVG(WillNum) AS 平均報(bào)名人數(shù)平均報(bào)名人數(shù) FROM Course Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 二、字符串函數(shù):用于對(duì)字符串進(jìn)行連接、截取等操作二、字符串函數(shù):用于對(duì)字符串進(jìn)行連接、截取等操作 AS

10、CII (字符串表達(dá)式字符串表達(dá)式):返回字符表達(dá)式最左邊字符的:返回字符表達(dá)式最左邊字符的ASCII 碼碼 如:例如:例 3.5 CHAR (整型表達(dá)式):將一個(gè)整型表達(dá)式):將一個(gè)ASCII碼轉(zhuǎn)換為字符。碼轉(zhuǎn)換為字符。 Len(字符串表達(dá)式):返回給定字符串?dāng)?shù)據(jù)的長(zhǎng)度,不計(jì)算字符串表達(dá)式):返回給定字符串?dāng)?shù)據(jù)的長(zhǎng)度,不計(jì)算 尾部的空格。如:尾部的空格。如: select len(123) 例例3.6 Left(字符型表達(dá)式,整型表達(dá)式):字符型表達(dá)式,整型表達(dá)式): 返回該字符型表達(dá)式返回該字符型表達(dá)式 最左邊給定整數(shù)個(gè)字符最左邊給定整數(shù)個(gè)字符. 如:如: select left(123,

11、) Right(字符型表達(dá)式,整型表達(dá)式):字符型表達(dá)式,整型表達(dá)式): 返回該字符型表達(dá)式返回該字符型表達(dá)式 最右邊給定整數(shù)個(gè)字符最右邊給定整數(shù)個(gè)字符. Substring(字符串,起始點(diǎn),字符串,起始點(diǎn),n): 返回該字符串從起始點(diǎn)開(kāi)始返回該字符串從起始點(diǎn)開(kāi)始 的的n個(gè)字符。個(gè)字符。 如如: Select x=substring(abcdef,2,3) Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) STR(浮點(diǎn)表達(dá)式浮點(diǎn)表達(dá)式,長(zhǎng)度,長(zhǎng)度,小數(shù),小數(shù) ):將浮點(diǎn)表達(dá)式轉(zhuǎn)換為所:將浮點(diǎn)表達(dá)式轉(zhuǎn)換為所 給定長(zhǎng)度的字符串。給定長(zhǎng)度的字符串。 如:如: select str (123 , 2) ,st

12、r(123,3), str(123,4) , str(123.12, 5,1) Upper(字符型表達(dá)式):將字符型表達(dá)式全部轉(zhuǎn)化為大寫(xiě)形式字符型表達(dá)式):將字符型表達(dá)式全部轉(zhuǎn)化為大寫(xiě)形式 Lower(字符型表達(dá)式):將字符型表達(dá)式全部轉(zhuǎn)化為小寫(xiě)形字符型表達(dá)式):將字符型表達(dá)式全部轉(zhuǎn)化為小寫(xiě)形 式式 Space(整型表達(dá)式):返回由給定整數(shù)個(gè)空格組成的字符串整型表達(dá)式):返回由給定整數(shù)個(gè)空格組成的字符串 Replicate(字符型表達(dá)式,整型表達(dá)式):將給定的字符型表字符型表達(dá)式,整型表達(dá)式):將給定的字符型表 達(dá)式的值復(fù)制給定的整數(shù)次數(shù)。如:例達(dá)式的值復(fù)制給定的整數(shù)次數(shù)。如:例3.9 Stu

13、ff(字符型表達(dá)式字符型表達(dá)式1,開(kāi)始位置,長(zhǎng)度,字符型表達(dá)式,開(kāi)始位置,長(zhǎng)度,字符型表達(dá)式2):): 將字符型表達(dá)式將字符型表達(dá)式1從開(kāi)始位置截?cái)嘟o定長(zhǎng)度的子串,然后將字從開(kāi)始位置截?cái)嘟o定長(zhǎng)度的子串,然后將字 符型表達(dá)式符型表達(dá)式2從開(kāi)始位置補(bǔ)充進(jìn)去。從開(kāi)始位置補(bǔ)充進(jìn)去。 如:如:Stuff(abcdef,2,4,hijkl) ,例例3.10 Differences(字符型表達(dá)式字符型表達(dá)式1,字符型表達(dá)式,字符型表達(dá)式2):返回兩個(gè)字符表返回兩個(gè)字符表 達(dá)式發(fā)音的相似程度達(dá)式發(fā)音的相似程度(0-4)。4發(fā)音最相似發(fā)音最相似. 如:例如:例3.8 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) R

14、everse(字符型表達(dá)式字符型表達(dá)式):返回一個(gè)與給定字符型表達(dá)式?。悍祷匾粋€(gè)與給定字符型表達(dá)式恰 好順序顛倒的字符型表達(dá)式好順序顛倒的字符型表達(dá)式,即逆序即逆序 Ltrim(字符型表達(dá)式):返回刪除給定字符串左端空白后字符型表達(dá)式):返回刪除給定字符串左端空白后 的字符串值的字符串值 Rtrim(字符型表達(dá)式):返回刪除給定字符串右端空白后字符型表達(dá)式):返回刪除給定字符串右端空白后 的字符串值的字符串值 Charindex(字符型表示式字符型表示式1,字符型表達(dá)式,字符型表達(dá)式2開(kāi)始位置開(kāi)始位置):從:從 指定位置開(kāi)始,在字符型表達(dá)式指定位置開(kāi)始,在字符型表達(dá)式2中查找字符型表達(dá)式中查找

15、字符型表達(dá)式1, 如果找到則返回字符型表達(dá)式如果找到則返回字符型表達(dá)式1在字符型表達(dá)式在字符型表達(dá)式2中的開(kāi)始中的開(kāi)始 位置,默認(rèn)的開(kāi)始位置是位置,默認(rèn)的開(kāi)始位置是1),即定位),即定位. 如:例如:例3.4, 3.7 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) Patindex(%pattern%,字符型表達(dá)式):在字符型表達(dá)式中字符型表達(dá)式):在字符型表達(dá)式中 查找給定格式的字符串,如果找到則返回該給定字符串在字查找給定格式的字符串,如果找到則返回該給定字符串在字 符型表達(dá)式中的開(kāi)始位置,否則返回值為符型表達(dá)式中的開(kāi)始位置,否則返回值為0 例:例:use pubs /*pubs是示例數(shù)據(jù)庫(kù)是

16、示例數(shù)據(jù)庫(kù)*/ go select au_lname,au_id from authors where patindex(%-2%,au_id)0 go 將畫(huà)橫線部分改為將畫(huà)橫線部分改為charindex(-2,au_id)0, 試比較試比較 運(yùn)行結(jié)果運(yùn)行結(jié)果 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 例例3.4 給出給出“數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)”在在“大型數(shù)據(jù)庫(kù)技術(shù)大型數(shù)據(jù)庫(kù)技術(shù)”中的位置中的位置 SELECT CHARINDEX(數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù),大型數(shù)據(jù)庫(kù)技術(shù)大型數(shù)據(jù)庫(kù)技術(shù)) 例例3.5 返回返回“Alklk”最左邊字符最左邊字符“A”的的ASCII碼碼 SELECT ASCII(Alklk) 例例3

17、.6 計(jì)算字符串計(jì)算字符串“SQL Server數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)”的長(zhǎng)的長(zhǎng) 度度 SELECT LEN(SQL Server數(shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)) Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 例例3.7 查找字符串查找字符串“wo”在在“MY wonderful”中的開(kāi)始位置中的開(kāi)始位置 SELECT CHARINDEX(wo, MY wonderful) SELECT CHARINDEX(wo, MY wonderful,5) SELECT CHARINDEX(wo, MY wonderful,0) 例例3.8 觀察觀察“Hello worle”與與“hello wild”

18、的發(fā)音相似程度的發(fā)音相似程度 SELECT DIFFERENCE(Hello World, Hello Wild) 例例3.9 select replicate(Hello,2),space(10),replicate( world,2) 例例3.10 select stuff(He rld,3,1,llo Wo) Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 三、日期函數(shù):用于顯示日期和時(shí)間的信息三、日期函數(shù):用于顯示日期和時(shí)間的信息 Getdate():返回當(dāng)前的系統(tǒng)時(shí)間:返回當(dāng)前的系統(tǒng)時(shí)間 如:如: select getdate() /*顯示服務(wù)器當(dāng)前的系統(tǒng)日期和時(shí)間顯示服務(wù)器當(dāng)前的系統(tǒng)日期

19、和時(shí)間*/ Datepart(datepart,date):以整數(shù)形式返回給定以整數(shù)形式返回給定date型數(shù)據(jù)的型數(shù)據(jù)的 指定日期部分指定日期部分 如:如: select detepart(weekday,getdate() datename(datepart,date):以字符串形式返回給定以字符串形式返回給定date型數(shù)型數(shù) 據(jù)的指定日期部分據(jù)的指定日期部分 如:如: select detename(weekday,getdate() Dateadd(detepart,number,date):將日期元數(shù)加上日期將日期元數(shù)加上日期,得到得到 一個(gè)新的日期。一個(gè)新的日期。 如:如: sele

20、ct dateadd(day,7,getdate() select dateadd(month,7,getdate() Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) Datediff(datepart,start,enddate):返回開(kāi)始日期和結(jié)束返回開(kāi)始日期和結(jié)束 日期在給定日期元數(shù)上的差值日期在給定日期元數(shù)上的差值 如:如:select datediff(dd , 2006-3-8,getdate() 例例3.13 Mary的生日為的生日為1979/12/23日,使用日期函數(shù)計(jì)日,使用日期函數(shù)計(jì) 算算mary現(xiàn)在的年齡現(xiàn)在的年齡 select 年齡年齡=datediff(yy,1979/12

21、/23,getdate() Day(date):返回某月幾號(hào)的整數(shù)值返回某月幾號(hào)的整數(shù)值 month(date):返回月份返回月份 year(date):返回年份:返回年份 如:如: select day(getdate() Select year(2006-12-3) Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 四、系統(tǒng)函數(shù):用來(lái)獲取四、系統(tǒng)函數(shù):用來(lái)獲取SQL Server的有關(guān)信息的有關(guān)信息 Cast( 表達(dá)式 as data_type):將表達(dá)式顯示轉(zhuǎn)換為另一種 數(shù)據(jù)類(lèi)型。 Convert(data_type , expression): 與cast 相似的功能。 如:select ca

22、st(65 as char) select convert (char , 65) HOST_ID ( ):返回主機(jī)標(biāo)識(shí) HOST_NAME( ):返回主機(jī)名稱(chēng) 如:SELECT HOST_NAME() Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 五、數(shù)學(xué)函數(shù):用來(lái)對(duì)數(shù)值型數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算五、數(shù)學(xué)函數(shù):用來(lái)對(duì)數(shù)值型數(shù)據(jù)進(jìn)行數(shù)學(xué)運(yùn)算 ABS(數(shù)值表達(dá)式):返回表達(dá)式的絕對(duì)值。 ACOS(浮點(diǎn)表達(dá)式):返回浮點(diǎn)表達(dá)式的反余弦值 ASIN(浮點(diǎn)表達(dá)式):返回浮點(diǎn)表達(dá)式的反正弦值 CEILING(數(shù)值表達(dá)式):返回大于或等于數(shù)值表達(dá)式 的最小整數(shù)。 FLOOR(數(shù)值表達(dá)式):返回小于或等于數(shù)值表達(dá)式的

23、最大整數(shù)。 如:SELECT CEILING (134.393) /* 135 SELECT FLOOR (134.3393) /*134 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) l SQUARE(浮點(diǎn)表達(dá)式):返回浮點(diǎn)表達(dá)式的平方 l SQRT(浮點(diǎn)表達(dá)式):返回浮點(diǎn)表達(dá)式的平方根 l 如: select sqrt(16) /*4 l Power(數(shù)字表達(dá)式,冪):返回?cái)?shù)字表達(dá)式的指定次 冪的值。 如: select power(2,3) /* 8 l EXP(浮點(diǎn)表達(dá)式):返回?cái)?shù)值的指數(shù)形式 l LOG(浮點(diǎn)表達(dá)式):返回?cái)?shù)值的自然對(duì)數(shù)值 l PI():返回的值 l ROUNDROUND

24、(數(shù)值表達(dá)式,整型表達(dá)式):將數(shù)值表達(dá)式四(數(shù)值表達(dá)式,整型表達(dá)式):將數(shù)值表達(dá)式四 舍五入為整型表達(dá)式所給定的精度。舍五入為整型表達(dá)式所給定的精度。 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 六、元數(shù)據(jù)函數(shù):返回有關(guān)數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象的信息六、元數(shù)據(jù)函數(shù):返回有關(guān)數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)對(duì)象的信息 Col_length(table,column):返回列的長(zhǎng)度(以字節(jié)為單位) Col_name(table_id,column_id):返回?cái)?shù)據(jù)列的名稱(chēng) 如: select col_length(stucou,couno) /*用于顯示stucou表 中couno列的長(zhǎng)度 select col_name

25、(object_id(student),1) /* 用于顯示student 表中第1列的名稱(chēng) DB_ID(database_name):返回?cái)?shù)據(jù)庫(kù)標(biāo)識(shí) DB_NAME(database_id):返回?cái)?shù)據(jù)庫(kù)名 如: select db_id(xk) /* 7 或 select db_id(pubs) /* 5 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) Object_id(object):返回?cái)?shù)據(jù)庫(kù)對(duì)象標(biāo)識(shí) Object_name(object_id):返回?cái)?shù)據(jù)庫(kù)對(duì)象名 如: select object_id(student) select object_name(object_id(studen

26、t) /* student Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 七、安全函數(shù)七、安全函數(shù) User :返回當(dāng)前用戶(hù)的數(shù)據(jù)庫(kù)用戶(hù)名 User_id(user):返回用戶(hù)標(biāo)識(shí) Suser_sid(login):返回登陸賬戶(hù)的安全標(biāo)識(shí) Suser_sname(server_user_sid):根據(jù)用戶(hù)的安全標(biāo)識(shí)返回登陸賬戶(hù)名 如: select user /*返回當(dāng)前用戶(hù)的數(shù)據(jù)庫(kù)用戶(hù)名 select suser_sid(sa) /* 返回當(dāng)前登陸賬戶(hù)的用戶(hù)安全標(biāo)識(shí) select suser_sname(0 x01) 或select suser_sname() /* sa HAS_DBACCES

27、S(database_name):返回用戶(hù)是否可以訪問(wèn)所給定的 數(shù)據(jù) 庫(kù),1為可以,0為不可以. 如: select has_dbaccess(xk) /*檢查用戶(hù)是否可以訪問(wèn)檢查用戶(hù)是否可以訪問(wèn)xk數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 八、配置函數(shù) version:返回sql server 當(dāng)前安裝的日期、版本和處理 器類(lèi)型 SQL Server的版本和補(bǔ)丁號(hào)。對(duì)應(yīng)關(guān)系如下: language : 返回當(dāng)前使用語(yǔ)言 servername :返回運(yùn)行sql server 的本地服務(wù)器名稱(chēng) max_connections:返回允許用戶(hù)同時(shí)連接的最大數(shù) Transact-SQL語(yǔ)

28、言編程學(xué)習(xí)目標(biāo) 3.3 常量和變量常量和變量 1.字符串常量:包含在單引號(hào)內(nèi),由字母數(shù)字字符字符串常量:包含在單引號(hào)內(nèi),由字母數(shù)字字符(az,AZ和和0 9)以)以 及特殊字符(如!及特殊字符(如!,和和#) 組成組成 unicode字符串常量字符串常量:也用單引號(hào)分隔也用單引號(hào)分隔,但是還必須在前面加上但是還必須在前面加上N 如如: N Tom jones 區(qū)別區(qū)別: unicode數(shù)據(jù)中的每個(gè)字符都使用兩個(gè)字節(jié)存儲(chǔ)數(shù)據(jù)中的每個(gè)字符都使用兩個(gè)字節(jié)存儲(chǔ),而字符數(shù)據(jù)中的而字符數(shù)據(jù)中的 每個(gè)字符則使用一個(gè)字節(jié)進(jìn)行存儲(chǔ)每個(gè)字符則使用一個(gè)字節(jié)進(jìn)行存儲(chǔ).因此因此:unicode數(shù)據(jù)中所能存儲(chǔ)的最大數(shù)據(jù)中

29、所能存儲(chǔ)的最大 字符串長(zhǎng)度是相應(yīng)的字符數(shù)據(jù)類(lèi)型的一半字符串長(zhǎng)度是相應(yīng)的字符數(shù)據(jù)類(lèi)型的一半. 字符型有三種不同的數(shù)據(jù)類(lèi)型字符型有三種不同的數(shù)據(jù)類(lèi)型: char (用來(lái)存儲(chǔ)固定長(zhǎng)度的字符串用來(lái)存儲(chǔ)固定長(zhǎng)度的字符串) , varchar (用來(lái)存儲(chǔ)可變長(zhǎng)度的字符串用來(lái)存儲(chǔ)可變長(zhǎng)度的字符串), text (用來(lái)存儲(chǔ)極其大量的信息用來(lái)存儲(chǔ)極其大量的信息) Unicode 字符串也有相應(yīng)的三種數(shù)據(jù)類(lèi)型字符串也有相應(yīng)的三種數(shù)據(jù)類(lèi)型:nchar,nvarchar,ntext Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 2.數(shù)值常量:數(shù)值常量: 二進(jìn)制常量二進(jìn)制常量(二進(jìn)制類(lèi)型二進(jìn)制類(lèi)型:用來(lái)存儲(chǔ)位字符用來(lái)存儲(chǔ)位

30、字符 串串.binary,varbinary,image): 如如 0 x12ef bit常量常量:使用使用0或或1表表 datetime常量常量(日期時(shí)間數(shù)據(jù)類(lèi)型日期時(shí)間數(shù)據(jù)類(lèi)型: datetime , smalldatetime) integer常量常量(整型整型: bigint , int , smallint , tinyint , bit ) decimal常量常量( 精確數(shù)精確數(shù):decimal , numeric 在存儲(chǔ)時(shí)不丟失在存儲(chǔ)時(shí)不丟失 位數(shù),但要求比位數(shù),但要求比real 和和float大的空間,同時(shí),在定義時(shí)要指定大的空間,同時(shí),在定義時(shí)要指定 標(biāo)度和精度標(biāo)度為小數(shù)點(diǎn)之

31、后的位數(shù),精度為數(shù)的位數(shù),如標(biāo)度和精度標(biāo)度為小數(shù)點(diǎn)之后的位數(shù),精度為數(shù)的位數(shù),如 123456.789,精度為,精度為9,標(biāo)度為,標(biāo)度為3。 最大精度為最大精度為) Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) float常量、常量、 real常量常量(近似數(shù):近似數(shù):real 單精度單精度 , float雙精度雙精度. Real 精度達(dá)到精度達(dá)到7位,位,float精度達(dá)到精度達(dá)到15位它們不會(huì)占用太多位它們不會(huì)占用太多 的空間但可存儲(chǔ)很大范圍的數(shù),但它們不是很準(zhǔn)確):采的空間但可存儲(chǔ)很大范圍的數(shù),但它們不是很準(zhǔn)確):采 用科學(xué)記數(shù)法,如:用科學(xué)記數(shù)法,如:101.5E6 ( 101.56*10

32、6) money常量常量(貨幣數(shù)據(jù)類(lèi)型:貨幣數(shù)據(jù)類(lèi)型:money, smallnoney ,是在是在 decimal數(shù)的精度和數(shù)的精度和real型數(shù)的大小之間的一種折衷型數(shù)的大小之間的一種折衷):使用:使用$ 或或17種別的貨幣符號(hào)做前綴。如種別的貨幣符號(hào)做前綴。如$14.5 Uniqueredentifer常量常量:全局唯一標(biāo)識(shí)符,根據(jù)對(duì)網(wǎng)卡號(hào)的識(shí)全局唯一標(biāo)識(shí)符,根據(jù)對(duì)網(wǎng)卡號(hào)的識(shí) 別和從計(jì)算機(jī)時(shí)鐘得到的一個(gè)惟一數(shù)來(lái)產(chǎn)生的。別和從計(jì)算機(jī)時(shí)鐘得到的一個(gè)惟一數(shù)來(lái)產(chǎn)生的。 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 變變 量量 1.局部變量:是用戶(hù)在程序中定義的變量,一次局部變量:是用戶(hù)在程序中定義的

33、變量,一次 只能保存一個(gè)值,僅在定義的程序范圍內(nèi)有效只能保存一個(gè)值,僅在定義的程序范圍內(nèi)有效 定義:使用定義:使用declare語(yǔ)句聲明局部變量,定義其語(yǔ)句聲明局部變量,定義其 名字,數(shù)據(jù)類(lèi)型和長(zhǎng)度名字,數(shù)據(jù)類(lèi)型和長(zhǎng)度 declare s varchar(30), x smalldatetime 賦值:初值為賦值:初值為null,可使用,可使用set或或select語(yǔ)句賦值語(yǔ)句賦值 set 語(yǔ)句一次只能給一個(gè)局部變量賦值語(yǔ)句一次只能給一個(gè)局部變量賦值 select 語(yǔ)句可以同時(shí)給一個(gè)或多個(gè)變量賦值語(yǔ)句可以同時(shí)給一個(gè)或多個(gè)變量賦值 顯示變量的值:可以使用顯示變量的值:可以使用select 或或p

34、rint語(yǔ)句語(yǔ)句 select s 或或 print x Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 通常在以下幾種情況下使用局部變量:通常在以下幾種情況下使用局部變量: 作為計(jì)數(shù)器計(jì)算循環(huán)執(zhí)行的次數(shù)或控制循環(huán)執(zhí)行作為計(jì)數(shù)器計(jì)算循環(huán)執(zhí)行的次數(shù)或控制循環(huán)執(zhí)行 的次數(shù)的次數(shù) 保存由存儲(chǔ)過(guò)程返回代碼返回的數(shù)據(jù)值保存由存儲(chǔ)過(guò)程返回代碼返回的數(shù)據(jù)值 保存數(shù)據(jù)值以供流控語(yǔ)句測(cè)試保存數(shù)據(jù)值以供流控語(yǔ)句測(cè)試 2.全局變量:以全局變量:以開(kāi)頭,實(shí)際上是開(kāi)頭,實(shí)際上是SQL Server的配置函數(shù)的配置函數(shù) error :每條:每條t-sal語(yǔ)句執(zhí)行后,服務(wù)器賦給這個(gè)變量語(yǔ)句執(zhí)行后,服務(wù)器賦給這個(gè)變量 一個(gè)整型值,

35、一個(gè)整型值,0如果語(yǔ)句執(zhí)行成功,如果語(yǔ)句執(zhí)行成功, 錯(cuò)誤號(hào)如果執(zhí)錯(cuò)誤號(hào)如果執(zhí) 行失敗。行失敗。 例例3.32 :編寫(xiě)計(jì)算兩個(gè)整數(shù)之和的程序:編寫(xiě)計(jì)算兩個(gè)整數(shù)之和的程序 例例3.33 :打?。捍蛴ourse表中有多少種類(lèi)型的課程,要求表中有多少種類(lèi)型的課程,要求 聲明局部變量,進(jìn)行賦值,然后打印變量?jī)?nèi)容聲明局部變量,進(jìn)行賦值,然后打印變量?jī)?nèi)容 Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 3.4 運(yùn)算符運(yùn)算符 1.算術(shù)運(yùn)算符:算術(shù)運(yùn)算符:+,-,*,/,% 2.一元運(yùn)算符:一元運(yùn)算符:+,-, 3.比較運(yùn)算符:比較運(yùn)算符:=,=,=,!=,! 4.邏輯運(yùn)算符:邏輯運(yùn)算符:all,and,any,between,exists,in, like,not,or,some 5.字符串連接符:字符串連接符:+ 6.賦值運(yùn)算符:賦值運(yùn)算符:= 7.位運(yùn)算符:位運(yùn)算符:&,|, Transact-SQL語(yǔ)言編程學(xué)習(xí)目標(biāo) 3.5 常用的系統(tǒng)存儲(chǔ)過(guò)程常用的系統(tǒng)存儲(chǔ)過(guò)程 Sp_configure:顯示或改變當(dāng)前服務(wù)器的配置顯示或改變當(dāng)前服務(wù)器的配置 Sp_help:列出數(shù)據(jù)庫(kù)種對(duì)象信息或返回所給定的對(duì)象的信息列出數(shù)據(jù)庫(kù)種對(duì)象信

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論