sqlserver2005操作XML类型数据
来源:互联网 发布:2016全国中小企业数据 编辑:程序博客网 时间:2024/05/22 12:34
xml数据以其灵活的数据储存方式受到广大开发人员喜爱。在sqlserver2005中存在xml数据类型。我们可以使用这样的语句对xml数据进行操作
首先定义一段xml 数据:
set @xmldata = '
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
">
<title lang="jp">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="cn">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
1、查询:@xml . query(xpath) xpath 是匹配方式字符串。必须是完整的,非拼接而成的字符串。'.' 代表本身 '/'代表子节点 '//'代表后代 '*'代表任何
查询bookstore下所有属性category="WEB"的book节点 :
查询最后1个book 节点:
中括号中可以是数字,表示第几个节点。注意:这里的数字1表示第一个节点,尔非0表示第一个。也可以是这样:[position()<=2] 表示前2个节点
查询所有存在lang属性的节点:(查询所有后代节点中包含属性lang的节点)
同时,查询可以包含条件: 查询所有price节点值大于30的price节点
或则更复杂的条件: 查询所有的book节点,条件是其子节点的title节点的lang属性值为"en" 并且 year节点的值为"2003"
有时查询字符串可能包含一些参数:如下代码:我们可能期望通过这样的语句查询所有属性category="WEB"的book节点
set @parm = "WEB"
select @xmldata . query ('//book[@category = "'+@parm+'"]')
但是,这样是错误的。会返回这样的错误:xml 数据类型方法 "query" 的参数 1 必须是字符串文字。
通过:sql:variable("@parm")就能解决这样的问题:
另外还存在这样的查询方式:
注意:第二行代码 order by 语句后必须是精确的列,所以要使用[1]。如若不然,如果$b下存在多个price节点,这样的查询则不是我们所需要的
除 @xml . query(xpath) 方法外还存在
. exist(xpath) 方法 :
返回0或1,表示xpath所选择的内容是否存在
. value(xpath,type):
返回xpath所选择内容的值,在这里需要制定返回值的类型
为了使XML查询更加高效,我们可以在XML数据上创建索引,具体方法暂不记录。
2、修改:@xml . modify(insert) | .modify(replace) | .modify(delete)
将一段xml片段插入到制定节点后(前)after | before
修改掉price="39.95"的price节点的值为"50.00"
删除所有test节点
添加属性:
修改属性:
- sqlserver2005操作XML类型数据
- SqlServer XML 类型数据操作
- SQL 中操作XML类型数据
- SQLSERVER2005中的 XML 及基本操作
- sqlserver2005 xml字段的读写操作
- sqlserver2005提供的xml数据类型操作xml串
- Oracle 中 用XMLTYPE类型 解析并操作XML数据
- Oracle中对XML格式数据的操作,CLOB类型转换XMLType类型
- .NET SQLServer2005 XML字段
- SqlServer2005解析XML文件
- 操作image类型数据
- 数据、类型常规操作
- 数据、类型常规操作
- ASP操作XML数据
- c#操作XML数据
- c#操作XML数据
- js操作XML数据
- 操作xml数据
- 两个算法--Day6
- Android异步加载
- makefile相关资源
- navicat出现2003错误
- 走进Android Binder机制(驱动篇上)
- sqlserver2005操作XML类型数据
- 递归算法及经典递归例子代码实现
- 《ACM程序设计》书 训练题中的S题
- L2-010. 排座位(并查集)
- 【Raspberry Pi入门系列2】Raspbian/Linux终端常用命令
- mongodb--Profiling慢查询详解
- 韩顺平php开发合集208集-从Html基础到php开发Web QQ实战 共15G
- GreenDao 数据库升级 连接多个DB文件 或者指定不同的model&dao目录
- 初学Redis数据库之基本数据存储以及获取