亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

SQL2008 詳解直接將XML存入到SQL中

2024-08-31 01:04:35
字體:
供稿:網(wǎng)友

一、前言

從 SQL Server 2005 開始,就增加了 xml 字段類型,也就是說可以直接把 xml 內(nèi)容存儲在該字段中,并且 SQL Server 會把它當(dāng)作 xml 來對待,而不是當(dāng)作 varchar 來對待。

隨著SQL Server 對XML字段的支持,相應(yīng)的,T-SQL語句也提供了大量對XML操作的功能來配合SQL Server中XML字段的使用。本文主要說明如何使用SQL語句對XML進(jìn)行操作。

二、定義XML字段

          在進(jìn)行數(shù)據(jù)庫的設(shè)計(jì)中,我們可以在表設(shè)計(jì)器中,很方便的將一個(gè)字段定義為XML類型。需要注意的是,XML字段不能用來作為主鍵或者索引鍵。同樣,我們也可以使用SQL語句來創(chuàng)建使用XML字段的數(shù)據(jù)表,下面的語句創(chuàng)建一個(gè)名為“docs”的表,該表帶有整型主鍵“pk”和非類型化的 XML 列“xCol”:

CREATE TABLE docs (pk INT PRIMARY KEY, xCol XML not null)

XML類型除了在表中使用,還可以在存儲過程、事務(wù)、函數(shù)等中出現(xiàn)。下面我們來完成我們對XML操作的第一步,使用SQL語句定義一個(gè)XML類型的數(shù)據(jù),并為它賦值:

set @xmlDoc='<?xml version="1.0" ?>    <books>       <book id="0001"><title>C Program</title><author>David</author><price>21</price> </book> <book id="0002"><title>你必須知道的.NET</title><author>王濤</author><price>79</price> </book>  </books>'select @xmlDoc 

三、XML字段注意點(diǎn)

三、XML字段注意點(diǎn)

  • SQL Server 中以 Unicode(UTF-16) 來存儲 XML 數(shù)據(jù)。
  • XML 字段最多可存儲 2G 的數(shù)據(jù)。
  • 可以像插入字符串一樣向 XML 字段寫入內(nèi)容。
  • 當(dāng)在 xml 數(shù)據(jù)類型實(shí)例中存儲 XML 數(shù)據(jù)時(shí),不會保留 XML 聲明(如 <?xml version='1.0'?>)。
  • 插入的 xml 內(nèi)容的屬性的順序可能會與原 xml 實(shí)例的順序變化。
  • 不保留屬性值前后的單引號和雙引號。
  • 不保留命名空間前綴。
  • 可以對 XML 字段中的 XML 內(nèi)容建立索引。
  • 可以對 XML 字段中的 XML 內(nèi)容建立約束,比如 age 節(jié)點(diǎn)必須大于等于 18。
  • 可以通過創(chuàng)建架構(gòu)來對 XML 進(jìn)行類型化,比如讓 xml 內(nèi)容的 <user> 節(jié)點(diǎn)下面必須有 <fullname> 節(jié)點(diǎn)。

四、查詢操作

在定義了一個(gè)XML類型的數(shù)據(jù)之后,我們最常用的就是查詢操作,下面我們來介紹如何使用SQL語句來進(jìn)行查詢操作的。

          在T-Sql中,提供了兩個(gè)對XML類型數(shù)據(jù)進(jìn)行查詢的函數(shù),分別是query(xquery)和value(xquery, dataType),其中,query(xquery)得到的是帶有標(biāo)簽的數(shù)據(jù),而value(xquery, dataType)得到的則是標(biāo)簽的內(nèi)容。接下類我們分別使用這兩個(gè)函數(shù)來進(jìn)行查詢。

1、使用query(xquery) 查詢

我們需要得到書的標(biāo)題(title),使用query(xquery)來進(jìn)行查詢,查詢語句為:

select @xmlDoc.query('(books/book/title)[1]')

運(yùn)行結(jié)果如圖:

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

2、使用value(xquery, dataType) 查詢

同樣是得到書的標(biāo)題,使用value函數(shù),需要指明兩個(gè)參數(shù),一個(gè)為xquery, 另一個(gè)為得到數(shù)據(jù)的類型。看下面的查詢語句:

select @xmlDoc.value('(books/book/title)[1]', 'nvarchar(max)')

運(yùn)行結(jié)果如圖:

 SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

3、查詢屬性值

無論是使用query還是value,都可以很容易的得到一個(gè)節(jié)點(diǎn)的某個(gè)屬性值,例如,我們很希望得到book節(jié)點(diǎn)的id,我們這里使用value方法進(jìn)行查詢,語句為:

select @xmlDoc.value('(books/book/@id)[1]', 'nvarchar(max)')

運(yùn)行結(jié)果如圖:

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

4、使用xpath進(jìn)行查詢

xpath是.net平臺下支持的,統(tǒng)一的Xml查詢語句。使用XPath可以方便的得到想要的節(jié)點(diǎn),而不用使用where語句。例如,

--得到id為0002的book節(jié)點(diǎn)

select @xmlDoc.query('(/books/book[@id="0002"])')

上面的語句可以獨(dú)立運(yùn)行,它得到的是id為0002的節(jié)點(diǎn)。運(yùn)行結(jié)果如下

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

五、修改操作

         SQL的修改操作包括更新和刪除。SQL提供了modify()方法,實(shí)現(xiàn)對Xml的修改操作。modify方法的參數(shù)為XML修改語言。XML修改語言類似于SQL 的Insert、Delete、UpDate,但并不一樣。

1、修改節(jié)點(diǎn)值

我們希望將id為0001的書的價(jià)錢(price)修改為100, 我們就可以使用modify方法。代碼如下:

set @xmlDoc.modify('replace value of (/books/book[@id=0001]/price/text())[1] with "100"')

--得到id為0001的book節(jié)點(diǎn)

select @xmlDoc.query('(/books/book[@id="0001"])')

注意:modify方法必須出現(xiàn)在set的后面。運(yùn)行結(jié)果如圖:

 SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

2、刪除節(jié)點(diǎn)

接下來我們來刪除id為0002的節(jié)點(diǎn),代碼如下:

--刪除節(jié)點(diǎn)id為0002的book節(jié)點(diǎn)

set @xmlDoc.modify('delete /books/book[@id=0002]')

select @xmlDoc

運(yùn)行結(jié)果如圖:

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

3、添加節(jié)點(diǎn)

很多時(shí)候,我們還需要向xml里面添加節(jié)點(diǎn),這個(gè)時(shí)候我們一樣需要使用modify方法。下面我們就向id為0001的book節(jié)點(diǎn)中添加一個(gè)ISBN節(jié)點(diǎn),代碼如下:

--添加節(jié)點(diǎn)

set @xmlDoc.modify('insert <isbn>78-596-134</isbn> before (/books/book[@id=0001]/price)[1]')select @xmlDoc.query('(/books/book[@id="0001"]/isbn)')

運(yùn)行結(jié)果如圖:

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

4、添加和刪除屬性

當(dāng)你學(xué)會對節(jié)點(diǎn)的操作以后,你會發(fā)現(xiàn),很多時(shí)候,我們需要對節(jié)點(diǎn)進(jìn)行操作。這個(gè)時(shí)候我們依然使用modify方法,例如,向id為0001的book節(jié)點(diǎn)中添加一個(gè)date屬性,用來存儲出版時(shí)間。代碼如下:

--添加屬性

set @xmlDoc.modify('insert attribute date{"2008-11-27"} into (/books/book[@id=0001])[1]')select @xmlDoc.query('(/books/book[@id="0001"])')

運(yùn)行結(jié)果如圖:

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

如果你想同時(shí)向一個(gè)節(jié)點(diǎn)添加多個(gè)屬性,你可以使用一個(gè)屬性的集合來實(shí)現(xiàn),屬性的集合可以寫成:(attribute date{"2008-11-27"}, attribute year{"2008"}),你還可以添加更多。這里就不再舉例了。

5、刪除屬性

刪除一個(gè)屬性,例如刪除id為0001 的book節(jié)點(diǎn)的id屬性,我們可以使用如下代碼:

--刪除屬性

set @xmlDoc.modify('delete books/book[@id="0001"]/@id')select @xmlDoc.query('(/books/book)[1]')

運(yùn)行結(jié)果如圖:

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

6、修改屬性

修改屬性值也是很常用的,例如把id為0001的book節(jié)點(diǎn)的id屬性修改為0005,我們可以使用如下代碼:

--修改屬性

set @xmlDoc.modify('replace value of ( books/book[@id="0001"]/@id)[1] with "0005"')select @xmlDoc.query('(/books/book)[1]')

運(yùn)行結(jié)果如圖:

SQL2008,詳解直接將XML存入到SQL中,直接將XML存入到SQL中詳解

經(jīng)過上面的學(xué)習(xí),相信你已經(jīng)可以很好的在SQL中使用Xml類型了,下面是我們沒有提到的:exist()方法,用來判斷指定的節(jié)點(diǎn)是否存在,返回值為true或false; nodes()方法,用來把一組由一個(gè)查詢返回的節(jié)點(diǎn)轉(zhuǎn)換成一個(gè)類似于結(jié)果集的表中的一組記錄行。 你可以去MSDN查閱  http://msdn.microsoft.com/zh-cn/library/ms190798.aspx。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關(guān)教程知識閱讀請移步到MSSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
欧美国产日韩二区| 五月激情六月婷婷| 自拍偷拍亚洲激情| 久久mv成人精品亚洲动漫| 日本三级视频在线播放| 国产伦精品一区二区三区在线| 国产午夜精品免费一区二区三区| 91嫩草国产线观看亚洲一区二区| 欧美巨大xxxx做受沙滩| 久久五月天婷婷| 午夜精品久久久99热福利| 国产精品蜜芽在线观看| 无码 人妻 在线 视频| 日韩成人性视频| 激情小说激情视频| 国产专区欧美专区| 日韩av地址| 欧美精品一区二区三区在线看午夜| 日本三级电影在线播放| 亚洲一卡二卡三卡四卡五卡| 日本美女一级片| 日韩av二区在线播放| 中文字幕在线播| 国产无套粉嫩白浆内谢| 成人爽a毛片一区二区免费| 综合精品久久久| 91成人在线观看喷潮教学| 亚洲免费在线视频观看| 亚洲精品国产欧美在线观看| 成人免费电影网址| 午夜国产欧美理论在线播放| 欧美一级免费视频| 性国产高清在线观看| 成人在线观看av| 欧美剧情电影在线观看完整版免费励志电影| 色噜噜狠狠成人中文综合| 成人乱人伦精品视频在线观看| 免费观看国产精品| 亚洲欧洲激情在线| 成人av免费在线| 中文字幕一区二区三区四区五区六区| 国产乱码精品一区二区三区精东| a91a精品视频在线观看| 日本黄色小网站| 亚洲二区精品| luxu259在线中文字幕| 日韩黄色三级视频| 久久精品1区| xxx国产hd| 丁香激情五月婷婷| 国产精品久久久久久影院8一贰佰| 国产在线视频一区| 国产片乱18免费| 韩国v欧美v日本v亚洲| 免费观看a级片| 精品国产999| 欧美激情综合五月色丁香| 国产精品免费看一区二区三区| 日韩小视频在线| av高清在线| 欧美极品少妇xxxxⅹ免费视频| 日本理论片2828理论片| 精品一区二区三区五区六区| 亚洲国产福利在线| 深夜精品寂寞黄网站在线观看| 国产不卡av在线播放| 性欧美video视频另类| 视频一区三区| 久久久久久网址| 国产一区在线免费| 在线免费国产视频| 一区二区三区日本久久久| 国产欧美一区二区三区不卡高清| 日韩午夜av在线| 免费av观看网址| 在线看日韩精品电影| 丁香花在线电影小说观看| 欧美精品一区二区三区四区| h片视频在线观看| 变态调教一区二区三区| 国产一区二区女内射| 亚洲视频一起| 亚洲性感美女99在线| 精精国产xxx在线视频app| 色影院视频在线| 精品少妇人欧美激情在线观看| 国产日韩欧美视频在线观看| 另类欧美视频| 九色在线观看视频| 日日噜噜噜夜夜爽爽狠狠视频| 波多野结衣家庭教师| 一区二区三区四区视频免费观看| 91精品又粗又猛又爽| 国产精品美女黄网| 国内精品久久久久影院一蜜桃| wwwwww欧美| 天天操天天曰| 在线成人午夜影院| 女子免费在线观看视频www| **欧美日韩vr在线| 国产综合色香蕉精品| 国产三级久久久| 精品欧美一区二区久久久久| 综合激情在线| 国产精品一区二区久久精品| 成人激情午夜影院| 精品一区二区观看| 超碰国产精品一区二页| 亚洲欧美一区二区三区在线播放| 成人黄色电影网址| eeuss影院www在线观看手机| jizz国产| 果冻天美麻豆一区二区国产| 九九热最新视频//这里只有精品| 91麻豆精品国产91| 亚洲男人在线| 精品国产一级毛片| 亚洲最快最全在线视频| 91精品影视| 欧美作爱福利免费观看视频| 男人天堂网站| 亚洲午夜久久久久久久久电影院| 色视频成人在线观看免| 激情久久久久久| 欧美另类一区二区三区| 欧美特黄视频| 在线观看亚洲精品福利片| 久久久国产综合精品女国产盗摄| 91po在线观看91精品国产性色| 欧美日韩亚洲色图| 一二三四视频在线社区中文字幕2| 你懂的国产精品| 亚洲一区二区精品久久av| 亚洲国产日韩欧美在线动漫| 色婷婷综合久久久中字幕精品久久| www.欧美日韩国产在线| 日韩欧美在线观看强乱免费| 天天摸天天干| 中文在线最新版地址| 毛片av一区二区三区| 国产精品久久免费视频| 制服丝袜在线第一页| 亚洲一区在线观看免费| 首页欧美精品中文字幕| 精品国产乱码久久久久酒店| 日本午夜精品| 成人av电影免费在线播放| 欧洲一区二区日韩在线视频观看免费| 免费成人深夜夜行网站视频| 亚洲无吗在线| 国产成人三级在线观看视频| 中文字幕久热精品在线视频| 亚洲女人的天堂| 精品国产1区| 精品在线视频免费观看| 欧美一卡二卡三卡四卡| 久久久精品电影| 国产精品资源网站| 日韩黄色影视| 亚洲欧美视频一区二区三区| 亚洲一区中文日韩| 国产噜噜噜噜久久久久久久久| 日韩欧美成人免费视频| 7m第一福利500精品视频| 亚洲 欧洲 日韩| 免费看国产黄色片| 国产午夜免费福利| 亚洲视屏一区| 日韩精品一区二区三区中文| 精品国产一区二区三区免费| 鲁鲁狠狠狠7777一区二区| gogogo高清在线观看一区二区| 欧美一级黄色网| 同产精品九九九| 九色视频网站在线观看| 成人18视频在线观看| 香蕉久久国产| av电影在线播放高清免费观看| 国产91精品对白在线播放| 精品三级久久| 欧美激情性做爰免费视频| 亚洲一区二区三区免费在线观看| eeuss影院www在线观看免费| 亚洲综合在线网站| 日韩一级精品视频在线观看| 久久精品亚洲国产奇米99| 800av免费在线观看| 在线免费观看av网| 欧美精品久久久久| 久久免费视频在线| 美女视频黄的免费| 亚洲国产一区二区三区青草影视| 天堂av在线一区| 国产一级淫片免费| 精品亚洲成a人片在线观看| 成人免费毛片xxx| 在线不卡的av| 免费在线国产视频| 欧美精品videosex性欧美| 91欧美日韩在线| 91蜜臀精品国产自偷在线| 欧洲亚洲国产日韩| 人人爱人人干婷婷丁香亚洲| 中文字幕日本一区| 免费成人在线观看av| 久热免费视频| 亚洲资源在线| 亚洲高清不卡一区| 欧美大胆人体bbbb| va天堂va亚洲va影视| 国产美女在线观看| 午夜免费啪视频观看视频| 欧美一级久久久久久久大片| 96亚洲精品久久久蜜桃| 欧美日韩aaaaaa| jizz蜜桃视频在线观看| 亚洲三级黄色片| 国产手机av在线| 在线看国产精品| 午夜一区二区三区四区| www.色偷偷.com| 亚洲图片视频小说| 欧美激情视频免费观看| 日韩福利视频一区| www.午夜色大片| 精品人妻中文无码av在线| 裸体丰满少妇做受久久99精品| 亚洲国产aⅴ天堂久久| 久久高清精品| 欧美激情第6页| 亚洲成精国产精品女| 久久久久久91亚洲精品中文字幕| 人人插人人射| 久久天堂久久| 日本黄色免费视频| 国产视频一区欧美| 国产精品91一区| 久久人人97超碰com| 欧美精品videofree1080p| 99在线精品视频免费观看软件| 亚洲精品一区二区三区福利| 国产性猛交普通话对白| 在线黄色免费观看| 毛片在线网站| 亚洲视频在线视频| 国产黄页在线观看| 一本久道久久综合多人| 无码av免费精品一区二区三区| 播放一区二区| 日韩欧美在线一区| 国产在线精品一区二区不卡了| 99中文字幕在线观看| 国产免费无遮挡| 一区二区国产精品| 182在线视频观看| 国产精品igao视频网网址不卡日韩| 国产精品69精品一区二区三区| 国产精品吴梦梦| 香蕉国产在线视频| 久久久夜夜夜| 91se在线观看| 综合亚洲色图| 国产天堂亚洲国产碰碰| 8mav模特福利视频在线观看| www.97av.com| 午夜欧美2019年伦理| 日韩欧美一二三四区| 亚洲自拍偷拍av| 精品一区二区三区高清免费不卡| 爱爱免费小视频| 欧美日韩中文一区| 天使と恶魔の榨精在线播放| 日本精品在线观看视频| av黄色在线免费观看| 香蕉视频1024| 日韩精品久久一区二区| 在线天堂中文资源最新版| 精品一区二区三区无码视频| 国产精品啊v在线| 香蕉成人伊视频在线观看| 日韩av成人在线观看| 久久五月天婷婷| 精品国产1区2区3区| 国产精品久久久久77777丨| 直接在线观看的三级网址| 一区二区三区日韩在线| 免费激情视频网站| 大尺度在线观看| 成人情趣视频网站| 郴州新闻综合频道在线直播| 成人av在线观| 午夜精品视频在线观看一区二区| 2019国内自拍| 亚洲深夜福利在线| 久久免费偷拍视频| 亚洲另类欧美自拍| 免费人成短视频在线观看网站| 99久久久精品视频| 国产劲爆久久| 自拍视频国产精品| 中国china体内裑精亚洲片| 国产精品视频免费播放| 亚洲激情中文字幕| www.youjizz.com亚洲| 神马影院我不卡午夜| 国产精品理论在线| 国产国产国产国产国产国产| 国产欧美欧美| 久久99精品久久久久久园产越南| 国产在线观看福利| 免费裸体视频网站| 亚洲免费视频一区二区| 天天干天天综合| 一呦二呦三呦国产精品| 免费av网站在线播放| 国产亚洲aⅴaaaaaa毛片| 91九色蝌蚪在线| 99久久激情视频| 亚洲福利一二三区| 日韩限制级电影在线观看| 98精品国产自产在线观看| 蜜臀久久99精品久久久久久宅男| av亚洲产国偷v产偷v自拍| 亚洲成人一区二区| 精品国产乱码久久久久久虫虫漫画| 日本黄色小视频在线观看| 中文字幕第5页| ijzzijzzij亚洲大全|