版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2020年9月23日,第1頁(yè),第20章 XML技術(shù),本章概述 本章要點(diǎn) 本章內(nèi)容,2020年9月23日,第2頁(yè),本章概述,在支持WWW的技術(shù)中,可擴(kuò)展標(biāo)記語言(eXtensible Markup Language,簡(jiǎn)稱為XML)被認(rèn)為是最重要的技術(shù)之一。XML已經(jīng)對(duì)數(shù)據(jù)的存儲(chǔ)和處理產(chǎn)生了深遠(yuǎn)的影響,并且今后其優(yōu)勢(shì)會(huì)更好地展現(xiàn)出來。實(shí)際上,XML是一系列相關(guān)技術(shù)的集合,這些技術(shù)包括DTD、XML Schema、CSS和XSLT等。本章將介紹Microsoft SQL Server 2008系統(tǒng)中獲支持的XML技術(shù)。,2020年9月23日,第3頁(yè),本章要點(diǎn),為什么要使用XML語言 類型化數(shù)據(jù)和非類
2、型化數(shù)據(jù)的特點(diǎn) XML數(shù)據(jù)類型的特點(diǎn) XML架構(gòu)的作用和使用方式 XQuery/exist/modify技術(shù)的特點(diǎn) FOR XML子句的類型和使用方式 XML索引的類型和特點(diǎn) OPENXML函數(shù)的作用和使用方式,2020年9月23日,第4頁(yè),本章內(nèi)容,20.1 概述 20.2 XML數(shù)據(jù)類型 20.3 查詢XML數(shù)據(jù) 20.4 使用FOR XML子句 20.5 使用XML索引 20.6 使用OPENXML函數(shù) 20.7 本章小結(jié),20.1 概述,Microsoft SQL Server 2008系統(tǒng)通過引入更多的功能增強(qiáng)了對(duì)XML數(shù)據(jù)的支持。Microsoft SQL Server系統(tǒng)提供了X
3、ML數(shù)據(jù)類型用來存儲(chǔ)XML數(shù)據(jù)。XQuery和XSD (eXtensible schema definition,即:可擴(kuò)展的架構(gòu)定義)支持這種XML數(shù)據(jù)。并且這種XML數(shù)據(jù)與Microsoft SQL Server 2008關(guān)系型數(shù)據(jù)庫(kù)引擎緊密集成。Microsoft SQL Server 2008提供了XML觸發(fā)器、XML數(shù)據(jù)復(fù)制、大容量的XML數(shù)據(jù)插入等操作的支持。,2020年9月23日,第5頁(yè),20.2 XML數(shù)據(jù)類型,XML數(shù)據(jù)類型是Microsoft SQL Server 2008系統(tǒng)為了增強(qiáng)XML技術(shù)支持而引入的新功能。就像INT、CHAR等數(shù)據(jù)類型一樣,XML數(shù)據(jù)類型可以用在表
4、中列的定義中、變量的定義中和存儲(chǔ)過程的參數(shù)定義中。XML數(shù)據(jù)類型既可以存儲(chǔ)類型化數(shù)據(jù),也可以存儲(chǔ)非類型化數(shù)據(jù)。如果存儲(chǔ)在XML列中的數(shù)據(jù)沒有與XSD架構(gòu)關(guān)聯(lián),那么這種數(shù)據(jù)是非類型化數(shù)據(jù)。如果存儲(chǔ)在XML列中的數(shù)據(jù)與XSD架構(gòu)關(guān)聯(lián),那么這種數(shù)據(jù)就是類型化數(shù)據(jù)。,2020年9月23日,第6頁(yè),創(chuàng)建ProductInfo表,2020年9月23日,第7頁(yè),使用INSERT語句插入XML數(shù)據(jù),2020年9月23日,第8頁(yè),使用INSERT語句插入一個(gè)不正確的XML數(shù)據(jù),2020年9月23日,第9頁(yè),使用INSERT語句插入一個(gè)不一致但是正確的XML數(shù)據(jù),2020年9月23日,第10頁(yè),定義Product
5、DescXMLSchema架構(gòu),2020年9月23日,第11頁(yè),定義一個(gè)與ProductDescXMLSchema架構(gòu)關(guān)聯(lián)的表,2020年9月23日,第12頁(yè),插入符合XSD架構(gòu)的XML文檔,2020年9月23日,第13頁(yè),插入不符合XSD架構(gòu)的XML文檔,2020年9月23日,第14頁(yè),查看定義的XSD架構(gòu)文本信息,2020年9月23日,第15頁(yè),20.3 查詢XML數(shù)據(jù),對(duì)于XML列中的數(shù)據(jù),可以使用相應(yīng)的技術(shù)對(duì)其進(jìn)行操縱,這些技術(shù)包括XQuery技術(shù)、Exist技術(shù)和Modify技術(shù)。下面介紹這些技術(shù)。,2020年9月23日,第16頁(yè),使用XQuery技術(shù),XQuery是一種可以查詢結(jié)構(gòu)
6、化或半結(jié)構(gòu)化XML數(shù)據(jù)的語言。由于Microsoft SQL Server 2008系統(tǒng)提供了對(duì)XML數(shù)據(jù)類型的支持,因此可以將XML文檔存儲(chǔ)在數(shù)據(jù)庫(kù)中,然后使用XQuery語句進(jìn)行查詢。XQuery基于現(xiàn)有的XPath查詢語言,并且支持迭代、排序結(jié)果以及構(gòu)造必須的XML的功能。Transact-SQL支持XQuery語言的子集。,2020年9月23日,第17頁(yè),查詢多個(gè)元素,2020年9月23日,第18頁(yè),查詢單個(gè)元素,2020年9月23日,第19頁(yè),查詢類型化數(shù)據(jù),2020年9月23日,第20頁(yè),使用XML數(shù)據(jù)類型方法,Microsoft SQL Server 2008系統(tǒng)提供了一些內(nèi)置的
7、可以用于XML數(shù)據(jù)類型的方法。與普通關(guān)系型數(shù)據(jù)不同的是,XML數(shù)據(jù)是分層次的,具有完整的結(jié)構(gòu)和元數(shù)據(jù)。XML數(shù)據(jù)類型方法可以用于提取存儲(chǔ)在XML數(shù)據(jù)類型中的XML文檔的內(nèi)容。這些方法包括Exist方法、Modify方法、Query方法、Value方法等。Query方法在20.3節(jié)中已經(jīng)涉及了,下面主要講述Exist方法和Modify方法。,2020年9月23日,第21頁(yè),使用XML Exist方法,2020年9月23日,第22頁(yè),使用XML Modify方法,2020年9月23日,第23頁(yè),20.4 使用FOR XML子句,使用FOR XML子句可以把Microsoft SQL Server
8、2008系統(tǒng)的表中數(shù)據(jù)檢索出來并且自動(dòng)表示成XML的格式。在Microsoft SQL Server 2000版本中,F(xiàn)OR XML有3種模式,即RAW、AUTO和EXPLICIT。在Microsoft SQL Server 2008系統(tǒng)中,由于增加了XML數(shù)據(jù)類型,因此也增強(qiáng)了FOR XML的功能,這些增強(qiáng)功能包括TYPE模式、PATH模式、嵌套FOR XML查詢和內(nèi)聯(lián)XSD架構(gòu)等。下面將詳細(xì)地研究這些內(nèi)容。,2020年9月23日,第24頁(yè),FOR XML RAW,FOR XML RAW是最簡(jiǎn)單的FOR XML模式,該模式將查詢結(jié)果集中的每一行轉(zhuǎn)換為帶有通用標(biāo)識(shí)符或可能提供元素名稱的XML元
9、素。在默認(rèn)情況下,行集中非NULL的每列值都將映射為元素的一個(gè)屬性。也就是說,RAW模式表示元素名稱是row,屬性名稱是列名稱或列的別名。,2020年9月23日,第25頁(yè),使用FOR XML RAW模式,2020年9月23日,第26頁(yè),按照XML結(jié)構(gòu)查看檢索結(jié)果,2020年9月23日,第27頁(yè),FOR XML AUTO,使用FOR XML AUTO也可以返回XML文檔。但是,使用AUTO關(guān)鍵字和使用RAW關(guān)鍵字得到的XML文檔形式是不同的。使用AUTO關(guān)鍵字,Microsoft SQL Server使用表名稱作為元素名稱,使用列名稱作為屬性名。SELECT關(guān)鍵字后面的列的順序用于確定XML文檔
10、的層次。,2020年9月23日,第28頁(yè),使用FOR XML AUTO,2020年9月23日,第29頁(yè),使用FOR XML EXPLICIT,2020年9月23日,第30頁(yè),使用TYPE指令,由于SQL Server 2008系統(tǒng)支持XML數(shù)據(jù)類型,因此可以通過指定TYPE指令,將FOR XML查詢結(jié)果返回為XML數(shù)據(jù)類型,方便在服務(wù)器上處理FOR XML的查詢結(jié)果。,2020年9月23日,第31頁(yè),使用FOR XML PATH,作為一種新增功能,F(xiàn)OR XML PATH子句比FOR XML RAW和FOR XML AUTO子句的功能強(qiáng)大,并且比FOR XML EXPLICIT子句更加簡(jiǎn)單。F
11、OR XML PATH子句允許用戶指定XML樹狀數(shù)據(jù)中的路徑。FOR XML PATH子句可以更加簡(jiǎn)單地完成FOR XML EXPLICIT子句具備的功能。,2020年9月23日,第32頁(yè),嵌套的FOR XML查詢,Microsoft SQL Server 2000系統(tǒng)限定FOR XML子句只能用在查詢語句的頂層,不能在子查詢中使用FOR XML子句。但是,Microsoft SQL Server 2008系統(tǒng)增強(qiáng)了這方面的功能,用戶可以在子查詢中使用FOR XML子句,從而實(shí)現(xiàn)嵌套的FOR XML查詢。 例如,在如圖20-24所示的示例中,使用了一個(gè)嵌套的FOR XML查詢。,2020年9月
12、23日,第33頁(yè),內(nèi)聯(lián)XSD架構(gòu)生成,在FOR XML子句中,可以請(qǐng)求在查詢返回結(jié)果的同時(shí)返回一個(gè)內(nèi)聯(lián)架構(gòu)。如果需要XSD架構(gòu),可以使用XMLSCHEMA關(guān)鍵字。需要注意的是,只能在RAW和AUTO模式中指定XMLSCHEMA,不能在EXPLICIT模式和PATH模式中指定內(nèi)聯(lián)XSD架構(gòu),2020年9月23日,第34頁(yè),20.5 使用XML索引,XML數(shù)據(jù)類型支持最大達(dá)2GB的數(shù)據(jù)。當(dāng)查詢XML數(shù)據(jù)時(shí),XML數(shù)據(jù)將會(huì)對(duì)系統(tǒng)的性能帶來巨大的影響。為了提高XML查詢的性能,可以在具有XML數(shù)據(jù)類型的列上創(chuàng)建索引。 XML索引可以分為兩個(gè)類別,即主XML索引和輔助XML索引。,2020年9月23日,
13、第35頁(yè),創(chuàng)建XML索引,2020年9月23日,第36頁(yè),20.6 使用OPENXML函數(shù),20.4節(jié)已經(jīng)講過,使用FOR XML可以把Microsoft SQL Server系統(tǒng)中的數(shù)據(jù)生成XML文檔,使用OPENXML則是使用FOR XML的逆過程。也就是說,使用OPENXML可以從XML文檔中返回?cái)?shù)據(jù)的行集。,2020年9月23日,第37頁(yè),使用OPENXML函數(shù)示例,2020年9月23日,第38頁(yè),20.7 本章小結(jié),本章介紹了XML技術(shù)。首先,介紹了XML技術(shù)的演變和發(fā)展歷程。其次,詳細(xì)介紹了XML數(shù)據(jù)類型的特點(diǎn)和使用方式,分析了類型化數(shù)據(jù)和非類型化數(shù)據(jù)的特點(diǎn)。接下來,對(duì)查詢XML數(shù)據(jù)技術(shù)進(jìn)行了分析。之后,介紹了XML索引的類型和特點(diǎn)。最后,討論了OPENXML函數(shù)的作用和使用方式。,2020年9月23日,第39頁(yè),【思考和練習(xí)】,1. 為什
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年滬科版九年級(jí)化學(xué)下冊(cè)階段測(cè)試試卷
- 商業(yè)環(huán)境下的學(xué)生職業(yè)規(guī)劃與心理健康
- 醫(yī)療設(shè)備中安全硬件的研發(fā)與市場(chǎng)前景分析
- 2025中國(guó)鐵路北京局集團(tuán)限公司招聘4982人(一)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)郵政集團(tuán)公司重慶分公司社會(huì)招聘536人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)紙業(yè)投資限公司社會(huì)招聘6人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)社會(huì)科學(xué)院美國(guó)研究所第一批專業(yè)技術(shù)人員公開招聘補(bǔ)充高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)電信湖北黃岡分公司招聘30人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)新聞社應(yīng)屆高校畢業(yè)生公開招聘補(bǔ)充高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)國(guó)際工程咨詢限公司總部社會(huì)招聘20人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2023-2024學(xué)年廣西貴港市六年級(jí)數(shù)學(xué)第一學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含答案
- 北師大版高中英語選擇性必修四全冊(cè)課文及翻譯(中英文Word)
- 體育系統(tǒng)運(yùn)動(dòng)隊(duì)(俱樂部)在隊(duì)證明
- 煙花爆竹門店安全的管理制度
- 學(xué)前兒童健康教育(學(xué)前教育專業(yè))PPT全套完整教學(xué)課件
- 北方民族大學(xué)床上用品投標(biāo)文件
- 煤礦安全生產(chǎn)監(jiān)管檢查清單
- 面神經(jīng)炎課件完整版
- 顱腦外科手術(shù)環(huán)境及手術(shù)配合
- 常用吊具索具報(bào)廢標(biāo)準(zhǔn)2018
- 中國(guó)合唱歌曲精選100首
評(píng)論
0/150
提交評(píng)論