SQLServerXML入门的18句话

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

我们提供的服务有:成都网站设计、做网站、微信公众号开发、网站优化、网站认证、顺庆ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的顺庆网站制作公司

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.    
  4.    
  5. Everyday Italian   
  6. Giada De Laurentiis   
  7. 2005   
  8. 30.00   
  9.    
  10.    
  11. Harry Potter   
  12. J K. Rowling   
  13. 2005   
  14. 29.99   
  15.    
  16.    
  17. XQuery Kick Start   
  18. James McGovern   
  19. Per Bothner   
  20. Kurt Cagle   
  21. James Linn   
  22. Vaidyanathan Nagarajan   
  23. 2003   
  24. 49.99   
  25.    
  26.    
  27. Learning XML   
  28. Erik T. Ray   
  29. 2003   
  30. 39.95   
  31.    
  32.    
  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的介绍,望你能有所收获。

网站题目:SQLServerXML入门的18句话
网页路径:http://www.csdahua.cn/qtweb/news28/215578.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网