XQuery 学习入门示例
2006-12-23 16:05
489 查看
XQuery 是一种可以查询结构化或半结构化 XML 数据的语言
若要查询 xml 类型的变量或列中存储的 XML 实例,
可以使用 xml 数据类型方法
例如:
声明一个 xml 类型的变量,
然后使用 xml 数据类型的 query() 方法来查询此变量
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT @x.query('/book/bookAuthor')
将得到
<bookAuthor>张三</bookAuthor>
-------
下表列出了 xml 数据类型方法
query() 方法(xml 数据类型) 此方法用于对 XML 实例进行查询
value() 方法(xml 数据类型) 此方法用于从 XML 实例检索 SQL 类型的值
exist() 方法(xml 数据类型) 此方法用于确定查询是否返回非空结果
modify() 方法(xml 数据类型) 此方法用于指定 XML DML 语句以执行更新
nodes() 方法(xml 数据类型) 此方法用于将 XML 拆分成多行
以将 XML 文档的组成部分传播到行集中
=============== value() ===
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT @x.value('(/book/bookAuthor)[1]','char(10)')
结果为:
张三
=============== exist()==
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT @x.exist('/book/bookAuthor')
结果为:
1
=============== modify()====
----replace value of
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SET @x.modify('replace value of (/book/bookAuthor/text())[1] with "李四"')
SELECT @x
结果为:
<book><bookAuthor>李四</bookAuthor></book>
----insert
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SET @x.modify('insert <book><bookAuthor>李四</bookAuthor></book>
into (.) ')
SELECT @x
结果为:
<book><bookAuthor>张三</bookAuthor></book>
<book><bookAuthor>李四</bookAuthor></book>
----delete
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor><price>20</price></book>'
SET @x.modify('delete (/book/price) ')
SELECT @x
结果为:
<book><bookAuthor>张三</bookAuthor></book>
============= nodes() ====
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT tableTmp1.columnTmp1.query('./text()') AS '作者'
FROM @x.nodes('/book/bookAuthor') tableTmp1(columnTmp1)
结果为:
作者
张三
若要查询 xml 类型的变量或列中存储的 XML 实例,
可以使用 xml 数据类型方法
例如:
声明一个 xml 类型的变量,
然后使用 xml 数据类型的 query() 方法来查询此变量
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT @x.query('/book/bookAuthor')
将得到
<bookAuthor>张三</bookAuthor>
-------
下表列出了 xml 数据类型方法
query() 方法(xml 数据类型) 此方法用于对 XML 实例进行查询
value() 方法(xml 数据类型) 此方法用于从 XML 实例检索 SQL 类型的值
exist() 方法(xml 数据类型) 此方法用于确定查询是否返回非空结果
modify() 方法(xml 数据类型) 此方法用于指定 XML DML 语句以执行更新
nodes() 方法(xml 数据类型) 此方法用于将 XML 拆分成多行
以将 XML 文档的组成部分传播到行集中
=============== value() ===
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT @x.value('(/book/bookAuthor)[1]','char(10)')
结果为:
张三
=============== exist()==
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT @x.exist('/book/bookAuthor')
结果为:
1
=============== modify()====
----replace value of
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SET @x.modify('replace value of (/book/bookAuthor/text())[1] with "李四"')
SELECT @x
结果为:
<book><bookAuthor>李四</bookAuthor></book>
----insert
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SET @x.modify('insert <book><bookAuthor>李四</bookAuthor></book>
into (.) ')
SELECT @x
结果为:
<book><bookAuthor>张三</bookAuthor></book>
<book><bookAuthor>李四</bookAuthor></book>
----delete
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor><price>20</price></book>'
SET @x.modify('delete (/book/price) ')
SELECT @x
结果为:
<book><bookAuthor>张三</bookAuthor></book>
============= nodes() ====
DECLARE @x xml
SET @x = '<book><bookAuthor>张三</bookAuthor></book>'
SELECT tableTmp1.columnTmp1.query('./text()') AS '作者'
FROM @x.nodes('/book/bookAuthor') tableTmp1(columnTmp1)
结果为:
作者
张三
相关文章推荐
- XQuery 学习入门示例
- Pytorch入门学习(五)---- 示例讲解Tensor, Autograd, nn.module
- 【Scrapy】Scrapy学习(一)——入门示例
- spring3学习入门示例工程
- OpenMesh学习笔记1 安装配置和入门示例
- Tersorflow深度学习入门—— CIFAR-10 训练示例报错及解决方案
- OpenGL学习入门: 光照示例
- Scrapy 入门学习笔记(2) -- xpath 与 css 解析以及解析网页示例
- MyBatis入门示例——MyBatis学习笔记…
- jquery Mobile入门—多页面切换示例学习
- theano学习入门和进阶系列2: MLP示例
- MyBatis入门示例——MyBatis学习笔记之一 推荐
- spring3学习入门示例工程
- ant入门示例——mybatis学习笔记之预备篇(二) 推荐
- json 入门学习笔记 示例代码
- MyBatis入门示例——MyBatis学习笔记之一
- storm学习-基本概念及入门示例
- 【Netty源码学习】入门示例
- jquery Mobile入门―多页面切换示例学习
- MyBatis入门示例——MyBatis学习笔记之一