SQLServer基礎(chǔ)教程(20)專題培訓(xùn)課件_第1頁
SQLServer基礎(chǔ)教程(20)專題培訓(xùn)課件_第2頁
SQLServer基礎(chǔ)教程(20)專題培訓(xùn)課件_第3頁
SQLServer基礎(chǔ)教程(20)專題培訓(xùn)課件_第4頁
SQLServer基礎(chǔ)教程(20)專題培訓(xùn)課件_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

本章概述在支持WWW的技術(shù)中,可擴(kuò)展標(biāo)記語言(eXtensibleMarkupLanguage,簡稱為XML)被認(rèn)為是最重要的技術(shù)之一。XML已經(jīng)對數(shù)據(jù)的存儲和處理產(chǎn)生了深遠(yuǎn)的影響,并且今后其優(yōu)勢會更好地展現(xiàn)出來。實際上,XML是一系列相關(guān)技術(shù)的集合,這些技術(shù)包括DTD、XMLSchema、CSS和XSLT等。本章將介紹MicrosoftSQLServer2008系統(tǒng)中獲支持的XML技術(shù)。2023年8月30日1本章要點為什么要使用XML語言類型化數(shù)據(jù)和非類型化數(shù)據(jù)的特點XML數(shù)據(jù)類型的特點XML架構(gòu)的作用和使用方式XQuery/exist/modify技術(shù)的特點FORXML子句的類型和使用方式XML索引的類型和特點OPENXML函數(shù)的作用和使用方式2023年8月30日2本章內(nèi)容20.1概述20.2XML數(shù)據(jù)類型20.3查詢XML數(shù)據(jù)20.4使用FORXML子句20.5使用XML索引20.6使用OPENXML函數(shù)20.7本章小結(jié)2023年8月30日320.1概述MicrosoftSQLServer2008系統(tǒng)通過引入更多的功能增強(qiáng)了對XML數(shù)據(jù)的支持。MicrosoftSQLServer系統(tǒng)提供了XML數(shù)據(jù)類型用來存儲XML數(shù)據(jù)。XQuery和XSD(eXtensibleschemadefinition,即:可擴(kuò)展的架構(gòu)定義)支持這種XML數(shù)據(jù)。并且這種XML數(shù)據(jù)與MicrosoftSQLServer2008關(guān)系型數(shù)據(jù)庫引擎緊密集成。MicrosoftSQLServer2008提供了XML觸發(fā)器、XML數(shù)據(jù)復(fù)制、大容量的XML數(shù)據(jù)插入等操作的支持。2023年8月30日420.2XML數(shù)據(jù)類型XML數(shù)據(jù)類型是MicrosoftSQLServer2008系統(tǒng)為了增強(qiáng)XML技術(shù)支持而引入的新功能。就像INT、CHAR等數(shù)據(jù)類型一樣,XML數(shù)據(jù)類型可以用在表中列的定義中、變量的定義中和存儲過程的參數(shù)定義中。XML數(shù)據(jù)類型既可以存儲類型化數(shù)據(jù),也可以存儲非類型化數(shù)據(jù)。如果存儲在XML列中的數(shù)據(jù)沒有與XSD架構(gòu)關(guān)聯(lián),那么這種數(shù)據(jù)是非類型化數(shù)據(jù)。如果存儲在XML列中的數(shù)據(jù)與XSD架構(gòu)關(guān)聯(lián),那么這種數(shù)據(jù)就是類型化數(shù)據(jù)。2023年8月30日5創(chuàng)建ProductInfo表2023年8月30日6使用INSERT語句插入XML數(shù)據(jù)2023年8月30日7使用INSERT語句插入一個不正確的XML數(shù)據(jù)2023年8月30日8使用INSERT語句插入一個不一致但是正確的XML數(shù)據(jù)2023年8月30日9定義ProductDescXMLSchema架構(gòu)2023年8月30日10定義一個與ProductDescXMLSchema架構(gòu)關(guān)聯(lián)的表2023年8月30日11插入符合XSD架構(gòu)的XML文檔2023年8月30日12插入不符合XSD架構(gòu)的XML文檔2023年8月30日13查看定義的XSD架構(gòu)文本信息2023年8月30日1420.3查詢XML數(shù)據(jù)對于XML列中的數(shù)據(jù),可以使用相應(yīng)的技術(shù)對其進(jìn)行操縱,這些技術(shù)包括XQuery技術(shù)、Exist技術(shù)和Modify技術(shù)。下面介紹這些技術(shù)。2023年8月30日15使用XQuery技術(shù)XQuery是一種可以查詢結(jié)構(gòu)化或半結(jié)構(gòu)化XML數(shù)據(jù)的語言。由于MicrosoftSQLServer2008系統(tǒng)提供了對XML數(shù)據(jù)類型的支持,因此可以將XML文檔存儲在數(shù)據(jù)庫中,然后使用XQuery語句進(jìn)行查詢。XQuery基于現(xiàn)有的XPath查詢語言,并且支持迭代、排序結(jié)果以及構(gòu)造必須的XML的功能。Transact-SQL支持XQuery語言的子集。2023年8月30日16查詢多個元素2023年8月30日17查詢單個元素2023年8月30日18查詢類型化數(shù)據(jù)2023年8月30日19使用XML數(shù)據(jù)類型方法MicrosoftSQLServer2008系統(tǒng)提供了一些內(nèi)置的可以用于XML數(shù)據(jù)類型的方法。與普通關(guān)系型數(shù)據(jù)不同的是,XML數(shù)據(jù)是分層次的,具有完整的結(jié)構(gòu)和元數(shù)據(jù)。XML數(shù)據(jù)類型方法可以用于提取存儲在XML數(shù)據(jù)類型中的XML文檔的內(nèi)容。這些方法包括Exist方法、Modify方法、Query方法、Value方法等。Query方法在20.3節(jié)中已經(jīng)涉及了,下面主要講述Exist方法和Modify方法。2023年8月30日20使用XMLExist方法2023年8月30日21使用XMLModify方法2023年8月30日2220.4使用FORXML子句使用FORXML子句可以把MicrosoftSQLServer2008系統(tǒng)的表中數(shù)據(jù)檢索出來并且自動表示成XML的格式。在MicrosoftSQLServer2000版本中,F(xiàn)ORXML有3種模式,即RAW、AUTO和EXPLICIT。在MicrosoftSQLServer2008系統(tǒng)中,由于增加了XML數(shù)據(jù)類型,因此也增強(qiáng)了FORXML的功能,這些增強(qiáng)功能包括TYPE模式、PATH模式、嵌套FORXML查詢和內(nèi)聯(lián)XSD架構(gòu)等。下面將詳細(xì)地研究這些內(nèi)容。2023年8月30日23FORXMLRAWFORXMLRAW是最簡單的FORXML模式,該模式將查詢結(jié)果集中的每一行轉(zhuǎn)換為帶有通用標(biāo)識符<row>或可能提供元素名稱的XML元素。在默認(rèn)情況下,行集中非NULL的每列值都將映射為<row>元素的一個屬性。也就是說,RAW模式表示元素名稱是row,屬性名稱是列名稱或列的別名。2023年8月30日24使用FORXMLRAW模式2023年8月30日25按照XML結(jié)構(gòu)查看檢索結(jié)果2023年8月30日26FORXMLAUTO使用FORXMLAUTO也可以返回XML文檔。但是,使用AUTO關(guān)鍵字和使用RAW關(guān)鍵字得到的XML文檔形式是不同的。使用AUTO關(guān)鍵字,MicrosoftSQLServer使用表名稱作為元素名稱,使用列名稱作為屬性名。SELECT關(guān)鍵字后面的列的順序用于確定XML文檔的層次。2023年8月30日27使用FORXMLAUTO2023年8月30日28使用FORXMLEXPLICIT2023年8月30日29使用TYPE指令由于SQLServer2008系統(tǒng)支持XML數(shù)據(jù)類型,因此可以通過指定TYPE指令,將FORXML查詢結(jié)果返回為XML數(shù)據(jù)類型,方便在服務(wù)器上處理FORXML的查詢結(jié)果。2023年8月30日30使用FORXMLPATH作為一種新增功能,F(xiàn)ORXMLPATH子句比FORXMLRAW和FORXMLAUTO子句的功能強(qiáng)大,并且比FORXMLEXPLICIT子句更加簡單。FORXMLPATH子句允許用戶指定XML樹狀數(shù)據(jù)中的路徑。FORXMLPATH子句可以更加簡單地完成FORXMLEXPLICIT子句具備的功能。2023年8月30日31嵌套的FORXML查詢MicrosoftSQLServer2000系統(tǒng)限定FORXML子句只能用在查詢語句的頂層,不能在子查詢中使用FORXML子句。但是,MicrosoftSQLServer2008系統(tǒng)增強(qiáng)了這方面的功能,用戶可以在子查詢中使用FORXML子句,從而實現(xiàn)嵌套的FORXML查詢。例如,在如圖20-24所示的示例中,使用了一個嵌套的FORXML查詢。2023年8月30日32內(nèi)聯(lián)XSD架構(gòu)生成在FORXML子句中,可以請求在查詢返回結(jié)果的同時返回一個內(nèi)聯(lián)架構(gòu)。如果需要XSD架構(gòu),可以使用XMLSCHEMA關(guān)鍵字。需要注意的是,只能在RAW和AUTO模式中指定XMLSCHEMA,不能在EXPLICIT模式和PATH模式中指定內(nèi)聯(lián)XSD架構(gòu)2023年8月30日3320.5使用XML索引XML數(shù)據(jù)類型支持最大達(dá)2GB的數(shù)據(jù)。當(dāng)查詢XML數(shù)據(jù)時,XML數(shù)據(jù)將會對系統(tǒng)的性能帶來巨大的影響。為了提高XML查詢的性能,可以在具有XML數(shù)據(jù)類型的列上創(chuàng)建索引。XML索引可以分為兩個類別,即主XML索引和輔助XML索引。2023年8月30日34創(chuàng)建XML索引2023年8月30日3520.6使用OPENXML函數(shù)20.4節(jié)已經(jīng)講過,使用FORXML可以把MicrosoftSQLServer系統(tǒng)中的數(shù)據(jù)生成XML文檔,使用OPENXML則是使用FORXML的逆過程。也就是說,使用OPENXML可以從XML文檔中返回數(shù)據(jù)的行集。2023年8月30日36使用OPENXML函數(shù)示例2023年8月30日3720.7本章小結(jié)本章介紹了XML技術(shù)。首先,介紹了XML技術(shù)的演變和發(fā)展歷程。其次,詳細(xì)介紹了XML數(shù)據(jù)類型的特點和使用方式,分析了類型化數(shù)據(jù)和非類型化數(shù)據(jù)的特點。接下來,對查詢XML數(shù)據(jù)技術(shù)進(jìn)行了分析。之后,介紹了XML索引的類型和特點。最后,討論了OPENXML函數(shù)的作用和使用方式。2023年8月30日38【思考和練習(xí)】1.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論