SQL Server XML 入门的18句话

以下的文章主要描述的是SQL Server XML 入门的18句话,如果你对SQL Server XML 入门的18句话有兴趣的话,你就可以对以下的文章点击观看了,以下就是文章的详细内容介绍,望大家借鉴。

sql xml 入门:

 

 

 

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

 

 

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

 

 

语法格式,这些语法可以组合为条件:

 

“.”表示自己,”..”表示父亲,”/”表示儿子,”//”表示后代,

 

“name”表示按名字查找,”@name”表示按属性查找

 

 

“集合[条件]” 表示根据条件取集合的子集,条件可以是

 

数 值:数字,last(),last()-数字 等

 

布尔值:position()<数字,@name=’条件’,name=’条件’

 

条件是布尔值的时候可以合并计算:and or

 

 

3、xquery: 基于xpath标的准查询语言,SQL Server xquery包含如下函数

 

exist(xpath条件):返回布尔值表示节点是否存在

 

query(xpath条件):返回由符合条件的节点组成的新的SQL Server xml文档

 

value(xpath条件,数据类型):返回指定的标量值,xpath条件结果必须唯一

 

nodes(xpath条件): 返回由符合条件的节点组成的一行一列的结果表

 

 

 

  1. declare @ data xml   
  2. set @ data = '   
  3. <bookstore>   
  4. <book category="COOKING">   
  5. <title lang="en">Everyday Italian</title>   
  6. <author>Giada De Laurentiis</author>   
  7. <year>2005</year>   
  8. <price>30.00</price>   
  9. </book>   
  10. <book category="CHILDREN">   
  11. <title lang="jp">Harry Potter</title>   
  12. <author>J K. Rowling</author>   
  13. <year>2005</year>   
  14. <price>29.99</price>   
  15. </book>   
  16. <book category="WEB">   
  17. <title lang="en">XQuery Kick Start</title>   
  18. <author>James McGovern</author>   
  19. <author>Per Bothner</author>   
  20. <author>Kurt Cagle</author>   
  21. <author>James Linn</author>   
  22. <author>Vaidyanathan Nagarajan</author>   
  23. <year>2003</year>   
  24. <price>49.99</price>   
  25. </book>   
  26. <book category="WEB">   
  27. <title lang="cn">Learning XML</title>   
  28. <author>Erik T. Ray</author>   
  29. <year>2003</year>   
  30. <price>39.95</price>   
  31. </book>   
  32. </bookstore>   
  33. '  

 

测试语句,如果不理解语法请参考上面的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、等价于10

 

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、SQL Server XML中获取***本书的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的所有信息

 

  1. select   
  2. T . C . value ('title[1]' , 'varchar(max)' ) as title ,   
  3. T . C . value ('year[1]' , 'int' ) as year ,   
  4. T . C . value ('title[1]' , 'varchar(max)' )as title ,   
  5. T . C . value ('price[1]' , 'float' ) as price ,   
  6. T . C . value ('author[1]' , 'varchar(max)' ) as author1 ,   
  7. T . C . value ('author[2]' , 'varchar(max)' ) as author2 ,   
  8. T . C . value ('author[3]' , 'varchar(max)' ) as author3 ,   
  9. T . C . value ('author[4]' , 'varchar(max)' ) as author4   
  10. from @ data . nodes ('//book' ) as T (C ) 

18、获取不是日语(lang!=”jp”)且价格大于35的书的所有信息

 

select

 

  1. T . C . value ('title[1]' , 'varchar(max)' ) as title ,   
  2. T . C . value ('year[1]' , 'int' ) as year ,   
  3. T . C . value ('title[1]' , 'varchar(max)' )as title ,   
  4. T . C . value ('price[1]' , 'float' ) as price ,   
  5. T . C . value ('author[1]' , 'varchar(max)' ) as author1 ,   
  6. T . C . value ('author[2]' , 'varchar(max)' ) as author2 ,   
  7. T . C . value ('author[3]' , 'varchar(max)' ) as author3 ,   
  8. T . C . value ('author[4]' , 'varchar(max)' ) as author4   
  9. from @ data . nodes ('//book[./title[@lang!="jp"] and price>35 ]' ) as T (C ) 

 

以上的相关内容就是对18句话入门SQL Server XML的介绍,望你能有所收获。

【编辑推荐】

  1. SQL Server行转列的什么情况下被用?
  2. SQL Server获取表的容量很简单!
  3. SQL Server 2005两种快照隔离机制的不同之处
  4. SQL Server 2008 CDC功能的主要作用是什么?
  5. SQL Server 客户端的IP地址限制访问的破解

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/253707.html<

(0)
管理的头像管理
上一篇2025-04-30 00:57
下一篇 2025-04-30 00:58

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注