数据库 查询XML XQuery

XQuery

用来从XML数据类型的字段抽取数据的语言称为XQuery.

举例:

首先,新建一个数据库:

在表中插入数据:

INSERT INTO [XMLStudy].[dbo].[PurchaseOrders]
           ([PurchaseID]
           ,[PurchaseOrder])
     VALUES
           (2,
		   '
    
			
  
				
   
    My Style" author="
    Discuz!NT" createdate = "
    2008-5-27" ver="
    2.5" fordntver="
    2.5" copyright="
    Copyright 2008 Comsenz Inc." /> 
   
  '
)
GO

 

INSERT INTO [XMLStudy].[dbo].[PurchaseOrders]
           ([PurchaseID]
           ,[PurchaseOrder])
     VALUES
           (1,
		   '
   
			  
  
   beijing2008" 
			  author="
   Discuz!NT" 
			  createdate="
   2008-7-2" 
			  ver="
   2.5" fordntver="
   2.5" 
			  copyright="
   Copyright 2008 Comsenz Inc." />
		'
)

   GO
  

 

接下来介绍如何使用 XPath表达式来抽取订单的信息。

SELECT PurchaseOrder.query('/about') as Result from PurchaseOrders

 

查询结果就是 PurchaseOrder列中 “about”直接的内容。

2

当然,还可以查询下一个结点的内容:

SELECT PurchaseOrder.query('/about/template') as Result from PurchaseOrders

3

为了进一步的获取具体的内容,可以使用下面的SQL语句:

SELECT PurchaseOrder.query('/about/template/author/text()') as Result from PurchaseOrders
查询 没有结果,空白!
这个是因为 XML 需要是这个的。
  
   beijing2008" >
      
   
    Discuz!NT
   
      
   
    "
    2008-7-2" 
   
      
   
    "
    2.5" 
   
      
   
    "
    2.5"
   
      
   
    "
    Copyright 2008 Comsenz Inc."
       
  
  

再次查询:

从上面的语句中可以看到,使用不同的 XPath表达式,获得了XML中不同节点的内容,Xpath指定了查询的路径,其中text()函数是Xpath函数,返回包含在XML元素中的值。

 

XQUERY还可以结合where 使用!!!

你可能感兴趣的:(sql,xml,数据库,insert,语言)