数据库 查询XML XQuery

XQuery

用来从XML数据类型的字段抽取数据的语言称为XQuery.

举例:

首先,新建一个数据库:

1

在表中插入数据:

INSERT INTO [XMLStudy].[dbo].[PurchaseOrders]
           ([PurchaseID]
           ,[PurchaseOrder])
     VALUES
           (2,
		   '<?xml version="1.0" encoding="utf-8" ?> 
			<about>
				<template name="My Style"
				  author="Discuz!NT"
				  createdate = "2008-5-27"
				  ver="2.5"
				  fordntver="2.5"
				  copyright="Copyright 2008 Comsenz Inc." />
			</about>'
)
GO

 

INSERT INTO [XMLStudy].[dbo].[PurchaseOrders]
           ([PurchaseID]
           ,[PurchaseOrder])
     VALUES
           (1,
		   '<about>
			  <template name="beijing2008" 
			  author="Discuz!NT" 
			  createdate="2008-7-2" 
			  ver="2.5" fordntver="2.5" 
			  copyright="Copyright 2008 Comsenz Inc." />
		</about>'
)
GO

 

接下来介绍如何使用 XPath表达式来抽取订单的信息。

SELECT PurchaseOrder.query('/about') as Result from PurchaseOrders

 

查询结果就是 PurchaseOrder列中 “about”直接的内容。

2

当然,还可以查询下一个结点的内容:

SELECT PurchaseOrder.query('/about/template') as Result from PurchaseOrders

3

为了进一步的获取具体的内容,可以使用下面的SQL语句:

SELECT PurchaseOrder.query('/about/template/author/text()') as Result from PurchaseOrders
查询 没有结果,空白!
这个是因为 XML 需要是这个的。
<template name="beijing2008" >
      <author>Discuz!NT</author>
      <createdate>"2008-7-2" </createdate>
      <ver>"2.5" </ver>
      <fordntver>"2.5"</fordntver>
      <copyright>"Copyright 2008 Comsenz Inc."</copyright>    
  </template>

再次查询:

4

从上面的语句中可以看到,使用不同的 XPath表达式,获得了XML中不同节点的内容,Xpath指定了查询的路径,其中text()函数是Xpath函数,返回包含在XML元素中的值。

 

XQUERY还可以结合where 使用!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值