`
xiaoer_1982
  • 浏览: 1871744 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

sql xml 入门

阅读更多

/*
sql xml 入门:
--by jinjazz
--http://blog.csdn.net/jinjazz

1、xml: 能认识元素、属性和值

2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁)

语法格式,这些语法可以组合为条件:
"."表示自己,".."表示父亲,"/"表示儿子,"//"表示后代,
"name"表示按名字查找,"@name"表示按属性查找

"集合[条件]" 表示根据条件取集合的子集,条件可以是
数 值:数字,last(),last()-数字 等
布尔值:position()<数字,@name='条件',name='条件'
条件是布尔值的时候可以合并计算:and or

3、xquery: 基于xpath标的准查询语言,sqlserver xquery包含如下函数
exist(xpath条件):返回布尔值表示节点是否存在
query(xpath条件):返回由符合条件的节点组成的新的xml文档
value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一
nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表
*/

declare @data xml
set @data='
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<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>
'

--测试语句,如果不理解语法请参考上面的xpath规则和xquery函数说明

--1、文档
select @data
--2、任意级别是否存在price节点
select @data.exist('//price')
--3、获取所有book节点
select @data.query('//book')
--4、获取所有包含lang属性的节点
select @data.query('//*[@lang]')
--5、获取第一个book节点
select @data.query('//book[1]')
--6、获取前两个book节点
select @data.query('//book[position()<=2]')
--7、获取最后一个book节点
select @data.query('//book[last()]')
--8、获取price>35的所有book节点
select @data.query('//book[price>35]')
--9、获取category="WEB"的所有book节点
select @data.query('//book[@category="WEB"]')
--10、获取title的lang="en"的所有book节点
select @data.query('//book/title[@lang="en"]')
--11、获取title的lang="en"且 price>35的所有book节点
select @data.query('//book[./title[@lang="en"] or price>35 ]')
--12、获取title的lang="en"且 price>35的第一book的(第一个)title
select @data.query('//book[./title[@lang="en"] and price>35 ]').value('(book/title)[1]','varchar(max)')
--13、等价于12
select @data.value('(//book[./title[@lang="en"] and price>35 ]/title)[1]','varchar(max)')
--14、获取title的lang="en"且 price>35的第一book的(第一个)title的lang属性
select @data.value('((//book[@category="WEB" and price>35 ]/title)[1]/@lang)[1]','varchar(max)')
--15、获取第一本书的title
select Tab.Col.value('(book/title)[1]','varchar(max)') as title
from @data.nodes('bookstore')as Tab(Col)
--16、获取每本书的第一个author
select Tab.Col.value('author[1]','varchar(max)') as title
from @data.nodes('//book')as Tab(Col)
--17、获取所有book的所有信息
select
T.C.value(
'title[1]','varchar(max)') as title,
T.C.value(
'year[1]','int') as year,
T.C.value(
'title[1]','varchar(max)')as title,
T.C.value(
'price[1]','float') as price,
T.C.value(
'author[1]','varchar(max)') as author1,
T.C.value(
'author[2]','varchar(max)') as author2,
T.C.value(
'author[3]','varchar(max)') as author3,
T.C.value(
'author[4]','varchar(max)') as author4
from @data.nodes('//book') as T(C)
--18、获取不是日语(lang!="jp")且价格大于35的书的所有信息
select
T.C.value(
'title[1]','varchar(max)') as title,
T.C.value(
'year[1]','int') as year,
T.C.value(
'title[1]','varchar(max)')as title,
T.C.value(
'price[1]','float') as price,
T.C.value(
'author[1]','varchar(max)') as author1,
T.C.value(
'author[2]','varchar(max)') as author2,
T.C.value(
'author[3]','varchar(max)') as author3,
T.C.value(
'author[4]','varchar(max)') as author4
from @data.nodes('//book[./title[@lang!="jp"] and price>35 ]') as T(C)

分享到:
评论

相关推荐

    C# XML入门经典.pdf

    文件中提及的标题为"C# XML入门经典.pdf",说明这本书籍主要面向的是已经具备一定C#编程基础,但是对XML技术尚缺乏了解的开发人员。描述中对PDF格式的强调,并没有提供额外的信息,而标签"XML"则点明了书籍的技术...

    将sql数据转化为xml格式说明

    ### 将 SQL 数据转换为 XML 格式说明 在当今数据处理领域,数据格式的转换是一项常见的需求。本文档详细介绍了如何将从 SQL 数据库获取的数据转换为 XML 格式,这对于希望集成不同系统或进行数据交换的开发人员来说...

    SQLServer XML查询快速入门(18句话)

    sql xml 入门: –by jinjazz 1、xml: 能认识元素、属性和值 2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁) 语法格式,这些语法可以组合为条件: “.”表示自己,”..”表示父亲,”/”表示...

    C#XML入门经典 C#编程人员必备的XML技能.part2

    C# XML入门经典——C#编程人员必备的XML技能 作者:[美]Stewart Fraser, Steven 著,毛尧飞,崔伟 译 出版社:清华大学出版社 出版时间:2003年11月 第1章 在C#中使用XML的原因 &lt;br&gt;1.1 使用XML的原因...

    18句话入门SQLServer XML查询[发个总结贴]

    18句话入门SQLServer XML查询[发个总结贴].mht

    C# XML 入门经典

    - 使用`SqlXml`类在C#中操作SQL Server中的XML数据。 8. **XML安全** - XML加密和签名:确保XML数据的安全传输,防止篡改。 - `System.Security.Cryptography.Xml`命名空间提供了相关功能。 9. **实践案例** -...

    SQLServer XML查询18句话入门教程

    02.sql xml 入门: 03. –by jinjazz 04. –http://blog.csdn.net/jinjazz 05. 06. 1、xml: 能认识元素、属性和值 07. 08. 2、xpath: 寻址语言,类似windows目录的查找(没用过dir命令的话就去面壁) 09. 10. 语法格式...

    JSTL 表达式 入门 访问SQL和XML内容

    JSP 标准标记库(JSP Standard Tag Library,JSTL)是一个实现 Web 应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。在developerWorks 上其新系列的...

    18句话入门sqlserver xml

    根据提供的信息,我们可以总结出以下关于SQL Server XML操作的相关知识点: ### SQL Server XML基础 XML (Extensible Markup Language) 是一种用于标记数据的语言,它允许用户定义自己的标签,因此非常适合于存储...

    linq to xml入门的例子

    **LINQ to XML 入门教程** LINQ (Language Integrated Query) 是.NET Framework中的一个强大特性,它将查询表达式直接集成到C#和Visual Basic等编程语言中,简化了数据查询的过程。其中,LINQ to XML是针对XML文档...

    语言集成查询(LINQ)之LINQ.to.XML入门篇

    在本篇“LINQ to XML入门篇”中,我们将深入探讨如何利用C#中的LINQ来处理XML数据。 ** LINQ的基本概念 ** LINQ,全称为Language Integrated Query(语言集成查询),是.NET Framework 3.5引入的一种新特性。它...

    iBATIS SQL Maps 入门教程.rar

    在`iBATIS SQL Maps 入门教程.pdf`中,您将学习如何创建和配置SQL Map XML文件,包括定义ID、参数类型、结果集映射等元素。 3. **动态SQL** iBATIS支持动态SQL,允许在SQL语句中根据条件进行拼接,增强了SQL的灵活...

    .SQL2000入门

    SQL Server 2000 数据库引擎提供了对XML的支持,支持大规模数据存储,并具备可扩展性、可用性和安全性。SQL Server 2000 还与Windows DNA构架集成,支持English Query 和Microsoft 搜索服务,使得用户在Web应用程序...

    LInq入门宝典 Linq To Xml linq to sql

    **LInq入门宝典:LInq To Xml与Linq To Sql详解** LInq(Language Integrated Query,语言集成查询)是.NET框架中的一个重要特性,它为C#和VB.NET提供了内建的查询能力,使得数据查询变得更加简洁、直观。LInq包括...

    SQL SERVER-2008从入门到精通PDF.part2

    SQL SERVER-2008从入门到精通.part2 SQLServer2008是WindowsServer的最新版本,它推出了许多新的特性和关键性的改进,是至今为止最强大和最全面的SQLServer版本。 内容主要包括:SQLServer2008的新增特性和安装、...

    sql入门经典第5版 完整版

    "dpinst.xml"可能是一个安装或配置文件,而"SQL入门经典(第5版)(电子书 文字版 完整版)Ryan Stephens"则很可能是本书的电子版内容,读者可以从中获取更详细的教程和示例。 总之,这本书适合想要踏入SQL世界的新手...

    iBATIS SQL Maps入门教程.rar

    iBATIS SQL Maps入门教程是针对数据库操作的一个经典学习资源,尤其适合初学者。iBATIS是一个开源的Java框架,它允许程序员将SQL语句直接嵌入到Java代码中,以此来简化数据库访问层的开发。这个教程可能包含了以下几...

    Java_XML入门及处理实例

    ### Java与XML入门及处理实例详解 #### 一、XML简介 XML,即**可扩展标记语言**(Extensible Markup Language),是一种类似于HTML的标记语言,但它更多地被用于存储和传输数据,而不是像HTML那样主要用于定义和显示...

    XML编程入门经典

    ### XML编程入门经典 #### 一、XML基本概念与规则 - **XML基本概念**:XML(Extensible Markup Language)是一种用于标记数据的语言,它的设计目的是传输和存储数据。XML的特点在于其灵活性,允许用户自定义标记来...

    xml读写入门教程

    7. **XML数据库操作**:有些数据库支持直接处理XML数据,比如SQL Server的`FOR XML`子句,Oracle的XMLType等。Java应用可以通过JDBC执行这些特定的SQL语句。 8. `XML_day01_1112_v2_all.zip_FILES`和`XML_day02_...

Global site tag (gtag.js) - Google Analytics