天天看點

資料庫運用XML操作

資料庫運用XML操作

1. xml index

資料庫運用XML操作
資料庫運用XML操作

alter table orders

資料庫運用XML操作

add constraint pk_orders_orderid

資料庫運用XML操作

primary key clustered(orderid)

資料庫運用XML操作
資料庫運用XML操作

create primary xml index xidx_details on orders(details)

資料庫運用XML操作
資料庫運用XML操作

create xml index xidx_details_path on orders(details) using xml index xidx_details for path

資料庫運用XML操作
資料庫運用XML操作

create xml index xidx_details_property on orders(details) using xml index xidx_details for property

資料庫運用XML操作
資料庫運用XML操作

create xml index xidx_details_value on orders(details) using xml index xidx_details for value

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

2. Demo XML表達式查詢

資料庫運用XML操作
資料庫運用XML操作

declare @mydoc xml

資料庫運用XML操作

set @mydoc='

資料庫運用XML操作

<AAA>

資料庫運用XML操作

<BBB/>

資料庫運用XML操作
資料庫運用XML操作

<CCC>

資料庫運用XML操作

<DDD/>

資料庫運用XML操作

<BBB>

資料庫運用XML操作

<EEE/>

資料庫運用XML操作

</BBB>

資料庫運用XML操作

</CCC>

資料庫運用XML操作

</AAA>

資料庫運用XML操作

'

資料庫運用XML操作

select @mydoc.query('//BBB')

資料庫運用XML操作

select @mydoc.query('//BBB[1]')

資料庫運用XML操作

select @mydoc.query('/AAA/BBB[1]')

資料庫運用XML操作

select @mydoc.query('/AAA/BBB[last()]')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<BBB ID="1"/>

資料庫運用XML操作

<BBB ID="2"/>

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<BBB ID="3">

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

select @mydoc.query('/AAA/BBB[@ID="1"]')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

select @myDoc.query('/bookstore/book/title')

資料庫運用XML操作
資料庫運用XML操作

查詢條件可以是attribute, 也可以是element,如下是element示例

資料庫運用XML操作

select @myDoc.query('/bookstore/book[price>30]')

資料庫運用XML操作
資料庫運用XML操作

3. FLOWER

資料庫運用XML操作
資料庫運用XML操作

declare @myDoc xml

資料庫運用XML操作

set @myDoc = '

資料庫運用XML操作
資料庫運用XML操作

<BBB ID=" 1" />

資料庫運用XML操作

<BBB ID="1" />

資料庫運用XML操作

<BBB NAME="NAME1"/>

資料庫運用XML操作

<CCC ID="1">

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<EEE ID="1"/>

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

select @myDoc.query('

資料庫運用XML操作

for $id in /AAA/BBB

資料庫運用XML操作

return $id')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<BBB>HELLO</BBB>

資料庫運用XML操作

<BBB>Welcome</BBB>

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<BBB>OK

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

for $id in //BBB

資料庫運用XML操作

return <result>{data($id)}</result>')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<bookstore>

資料庫運用XML操作

<book category="COOKING">

資料庫運用XML操作

<title>Everyday</title>

資料庫運用XML操作

<author>Giade De</author>

資料庫運用XML操作

<price>30.00</price>

資料庫運用XML操作

</book>

資料庫運用XML操作

<book category="COMPUTER">

資料庫運用XML操作

<title>Windows 2003</title>

資料庫運用XML操作

<author>Mike</author>

資料庫運用XML操作

<price>50.00</price>

資料庫運用XML操作
資料庫運用XML操作

<book category="SOFTWARE">

資料庫運用XML操作

<title>VS.NET2003</title>

資料庫運用XML操作
資料庫運用XML操作

<price>90.00</price>

資料庫運用XML操作
資料庫運用XML操作

</bookstore>

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

-----------------------------

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

select @myDoc.query('for $x in /bookstore/book

資料庫運用XML操作

where $x/price>30

資料庫運用XML操作

return $x/title')

資料庫運用XML操作
資料庫運用XML操作

select @myDoc.query('for $x in /bookstore/book/title

資料庫運用XML操作

order by $x

資料庫運用XML操作

return $x')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

return <li>{data($x)}</li>')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

value查詢

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<book category="COOKING" id="1" >

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<book category="COMPUTER" id="2" >

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

<book category="SOFTWARE" id="3" >

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

select @myDoc.value('(/bookstore/book/@id)[1]','int')

資料庫運用XML操作
資料庫運用XML操作

exist查詢

資料庫運用XML操作

select @myDoc.exist('/bookstore/book/title="VS.NET2003"')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

select @myDoc.exist('/bookstore/book[@id=1]')

資料庫運用XML操作
資料庫運用XML操作

結果集中綁定表中列

資料庫運用XML操作

select orderid,'L01' as ProductID,Customer,

資料庫運用XML操作

Details.query('

資料庫運用XML操作

<OrderDetails>

資料庫運用XML操作

<Customer>{sql:column("Customer")}</Customer>

資料庫運用XML操作

{

資料庫運用XML操作

for $x in //row

資料庫運用XML操作

return $x

資料庫運用XML操作

}

資料庫運用XML操作

</OrderDetails>

資料庫運用XML操作

')

資料庫運用XML操作

from orders

資料庫運用XML操作
資料庫運用XML操作

4.修改XML

資料庫運用XML操作

INSERT

資料庫運用XML操作

declare @doc xml

資料庫運用XML操作

set @doc='<Products></Products>'

資料庫運用XML操作
資料庫運用XML操作

set @doc.modify(

資料庫運用XML操作

'insert (<Product><ID>L01</ID><Name>LL01</Name></Product>)

資料庫運用XML操作

into (/Products)[1]')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

'insert (<Product><ID>L02</ID><Name>LL02</Name></Product>)

資料庫運用XML操作

as first into (/Products)[1]')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

'insert (<Product><ID>L03</ID><Name>LL03</Name></Product>)

資料庫運用XML操作

as last into (/Products)[1]')

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

'insert attribute Price {"20.50"} into (/Products/Product)[1]')

資料庫運用XML操作
資料庫運用XML操作

select @doc

資料庫運用XML操作

------------------------------------------

資料庫運用XML操作

DELETE

資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作
資料庫運用XML操作

set @mydoc.modify('delete (/bookstore/book[@id="1"])')

資料庫運用XML操作
資料庫運用XML操作

--------------------------------------

資料庫運用XML操作
資料庫運用XML操作

set @mydoc.modify('delete (/bookstore/book[@id="1"])[1]')

資料庫運用XML操作
資料庫運用XML操作

----------------------------------------

資料庫運用XML操作
資料庫運用XML操作

set @mydoc.modify('delete (/bookstore/book/price)[1]')

資料庫運用XML操作

----------------------------

資料庫運用XML操作
資料庫運用XML操作

set @mydoc.modify('delete (/bookstore/book/price/text())[1]')

資料庫運用XML操作
資料庫運用XML操作

REPLACE

資料庫運用XML操作

update text:

資料庫運用XML操作
資料庫運用XML操作

set @mydoc.modify('replace value of (/bookstore/book/price/text())[1] with "99.50"')

資料庫運用XML操作
資料庫運用XML操作

update attribute:

資料庫運用XML操作
資料庫運用XML操作

set @mydoc.modify('replace value of (/bookstore/book/@id)[1] with "10"')

資料庫運用XML操作

------------

資料庫運用XML操作

set @mydoc.modify('

資料庫運用XML操作

replace value of (/bookstore/book/@id)[1]

資料庫運用XML操作

with(

資料庫運用XML操作

if(/bookstore/book[@id="1"]) then

資料庫運用XML操作

"10"

資料庫運用XML操作

else

資料庫運用XML操作

"100"

資料庫運用XML操作

)

資料庫運用XML操作

本文轉自高海東部落格園部落格,原文連結:http://www.cnblogs.com/ghd258/archive/2005/10/24/260707.html,如需轉載請自行聯系原作者