資源描述:
《SQL Server 2005 數(shù)據(jù)庫(kù)應(yīng)用技術(shù) 教學(xué)課件 作者 劉宏第3章 使用Transact-SQL語(yǔ)言 .ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、3.1了解Transact-SQL3.1.1Transact-SQL語(yǔ)言SQL語(yǔ)言是關(guān)系型數(shù)據(jù)庫(kù)領(lǐng)域中的標(biāo)準(zhǔn)化查詢語(yǔ)言,能夠針對(duì)數(shù)據(jù)庫(kù)完成定義、查詢、操縱和控制等功能。微軟公司在SQL語(yǔ)言的基礎(chǔ)上對(duì)其進(jìn)行了大幅度的擴(kuò)充,形成Transact-SQL語(yǔ)言(簡(jiǎn)稱T-SQL),使其功能更加完善,性能更加優(yōu)良。3.1.2T-SQL語(yǔ)言的語(yǔ)法約定3.1.3標(biāo)識(shí)符標(biāo)識(shí)符用于標(biāo)識(shí)服務(wù)器、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)對(duì)象和變量等,創(chuàng)建時(shí)應(yīng)遵循下列規(guī)則:標(biāo)識(shí)符的長(zhǎng)度不超過(guò)128個(gè)字符。標(biāo)識(shí)符的第一個(gè)字符必須是字母、下劃線(_)、@符號(hào)或者符號(hào)#。后續(xù)字符可以是字母、數(shù)字、_、@、#或者$。不能包含空格或其他特殊字符。不能
2、使用SQLServer預(yù)留的單詞。3.1.4批處理批處理就是一個(gè)或多個(gè)T-SQL語(yǔ)句的集合,用戶或應(yīng)用程序一次將它發(fā)送給SQLServer2005,由SQLServer2005編譯成一個(gè)執(zhí)行單元,此單元稱為執(zhí)行計(jì)劃。建立批處理如同編寫SQL語(yǔ)句,區(qū)別在于它是多條語(yǔ)句同時(shí)執(zhí)行的,所有的批處理命令都使用GO作為結(jié)束標(biāo)志,當(dāng)T-SQL的編譯器掃描到某行的前兩個(gè)字符是GO的時(shí)候,它會(huì)把GO前面的所有語(yǔ)句作為一個(gè)批處理送往服務(wù)器。3.1.5腳本腳本是批處理的存在方式,將一個(gè)或多個(gè)批處理組織到一起就是一個(gè)腳本。腳本可以在查詢?cè)O(shè)計(jì)器中編輯、調(diào)試和執(zhí)行。如在查詢?cè)O(shè)計(jì)器中執(zhí)行的各個(gè)實(shí)例都可以稱為一個(gè)腳本。3
3、.1.6注釋T-SQL中的注釋語(yǔ)句,也稱為注解,注釋內(nèi)容通常是一些說(shuō)明性文字,對(duì)程序的結(jié)構(gòu)及功能給出簡(jiǎn)要的解釋。注釋語(yǔ)句不是可執(zhí)行語(yǔ)句,不被系統(tǒng)編譯,也不被程序執(zhí)行。SQLServer支持兩種形式的程序注釋語(yǔ)句:行內(nèi)注釋:使用注釋符“--”,注釋語(yǔ)句寫在“--”的后面,只能書寫單行。塊注釋:使用注釋符“/**/”,注釋語(yǔ)句寫在“/*”和“*/”之間,可以連續(xù)書寫多行。3.1.7數(shù)據(jù)類型SQLServer可以識(shí)別多種不同的系統(tǒng)定義數(shù)據(jù)類型,還可以創(chuàng)建用戶定義數(shù)據(jù)類型以滿足特定需求。常用的系統(tǒng)定義數(shù)據(jù)類型如下。(1)整數(shù)數(shù)據(jù)類型整數(shù)數(shù)據(jù)類型是最常用的數(shù)據(jù)類型之一,由正整數(shù)和負(fù)整數(shù)所組成。3.1
4、.7數(shù)據(jù)類型(2)精確數(shù)字?jǐn)?shù)據(jù)類型用于表示帶固定精度和小數(shù)位數(shù)的數(shù)值數(shù)據(jù)類型,包括Decimal和numeric兩種類型。1)decimal[(p[,s])]:提供小數(shù)所需要的實(shí)際存儲(chǔ)空間,可以存儲(chǔ)2到17個(gè)字節(jié)的從-1038+1到1038-1之間的數(shù)值。2)numeric[(p[,s])]:與Decimal數(shù)據(jù)類型幾乎完全相同,區(qū)別是在表格中只有numeric型的數(shù)據(jù)可以帶有IDENTITY關(guān)鍵字的列。其中:p(精度):最多可以存儲(chǔ)的十進(jìn)制數(shù)字的總位數(shù),包括小數(shù)點(diǎn)左邊和右邊的位數(shù)。該精度必須是從1到最大精度38之間的值。默認(rèn)精度為18。s(小數(shù)位數(shù)):小數(shù)點(diǎn)右邊可以存儲(chǔ)的十進(jìn)制數(shù)字的最大
5、位數(shù)。小數(shù)位數(shù)必須是從0到p之間的值(即0<=s<=p)。僅在指定精度后才可以指定小數(shù)位數(shù)。3.1.7數(shù)據(jù)類型(3)浮點(diǎn)數(shù)據(jù)類型用于表示浮點(diǎn)數(shù)值數(shù)據(jù)的數(shù)值數(shù)據(jù)類型。由于浮點(diǎn)數(shù)據(jù)為近似值,因此數(shù)據(jù)類型范圍內(nèi)的所有值不一定都能精確地表示。浮點(diǎn)數(shù)據(jù)類型主要包括Real和Float兩種類型,存儲(chǔ)范圍如表所示。3.1.7數(shù)據(jù)類型(4)字符數(shù)據(jù)類型SQLServer提供了三種字符數(shù)據(jù)類型,分別是char、varchar和text。char:最長(zhǎng)可以容納8000個(gè)字符,并且每個(gè)字符占用一個(gè)字節(jié)的存儲(chǔ)空間。使用Char數(shù)據(jù)類型定義變量時(shí),需要指定數(shù)據(jù)的最大長(zhǎng)度。varchar:該數(shù)據(jù)類型的使用方式與Cha
6、r數(shù)據(jù)類型類似。與Char數(shù)據(jù)類型不同的是,Varchar數(shù)據(jù)類型所占用的存儲(chǔ)空間由字符數(shù)據(jù)所占據(jù)的實(shí)際長(zhǎng)度來(lái)確定。text:該數(shù)據(jù)類型所能表示的最大長(zhǎng)度為231-1,當(dāng)需要表示的數(shù)據(jù)類型長(zhǎng)度超過(guò)8000時(shí),可以采用text來(lái)處理可變長(zhǎng)度的字符數(shù)據(jù)。3.1.7數(shù)據(jù)類型(5)日期/時(shí)間數(shù)據(jù)類型日期和時(shí)間數(shù)據(jù)由有效的日期或時(shí)間組成。分為datetime和smalldatetime兩類。Datetime:數(shù)據(jù)范圍從1753年1月1日到9999年12月31日,可以精確到千分之一秒,此類型的數(shù)據(jù)占用8個(gè)字節(jié)的存儲(chǔ)空間。Smalldatetime:數(shù)據(jù)范圍從1900年1月1日到2079年6月6日,可以
7、精確到分,此類型的數(shù)據(jù)占4個(gè)字節(jié)的存儲(chǔ)空間。3.1.7數(shù)據(jù)類型(6)貨幣數(shù)據(jù)類型貨幣數(shù)據(jù)表示正的或負(fù)的貨幣值。在SQLServer中使用Money和Smallmoney數(shù)據(jù)類型存儲(chǔ)貨幣數(shù)據(jù)。貨幣數(shù)據(jù)存儲(chǔ)的精確度為4位小數(shù)。Money:占據(jù)8字節(jié)存儲(chǔ)空間,取值范圍為-922,337,203,685,477.5808至+922,337,203,685,477.5807,并且可以精確到萬(wàn)分之一貨幣單位。Smallmoney:占