zoukankan      html  css  js  c++  java
  • 数据库 查询XML XQuery

    XQuery

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

    举例:

    首先,新建一个数据库:

    1

    在表中插入数据:

    INSERT INTO [XMLStudy].[dbo].[PurchaseOrders]
               ([PurchaseID]
               ,[PurchaseOrder])
         VALUES
               (2,
    		   '<?xml version="1.0" encoding="utf-8" ?> 
    			<about>
    				<template name="My Style"
    				  author="Discuz!NT"
    				  createdate = "2008-5-27"
    				  ver="2.5"
    				  fordntver="2.5"
    				  copyright="Copyright 2008 Comsenz Inc." />
    			</about>'
    )
    GO
    INSERT INTO [XMLStudy].[dbo].[PurchaseOrders]
               ([PurchaseID]
               ,[PurchaseOrder])
         VALUES
               (1,
    		   '<about>
    			  <template name="beijing2008" 
    			  author="Discuz!NT" 
    			  createdate="2008-7-2" 
    			  ver="2.5" fordntver="2.5" 
    			  copyright="Copyright 2008 Comsenz Inc." />
    		</about>'
    )
    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 需要是这个的。
    <template name="beijing2008" >
          <author>Discuz!NT</author>
          <createdate>"2008-7-2" </createdate>
          <ver>"2.5" </ver>
          <fordntver>"2.5"</fordntver>
          <copyright>"Copyright 2008 Comsenz Inc."</copyright>    
      </template>

    再次查询:

    4

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

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

  • 相关阅读:
    【NOI1999、LOJ#10019】生日蛋糕(搜索、最优化剪枝、可行性剪枝)
    【NOI2016】区间
    【CodeForces688A】Opponents
    「LOJ10150」括号配对
    HDU6444(子段和、分情况比较)
    牛客练习赛41E(球的体积并)
    Codeforces 1154G(枚举)
    POJ1830(异或高斯消元)
    Codeforces 1114F(欧拉函数、线段树)
    牛客小白月赛13 G(双向搜索)
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1604764.html
Copyright © 2011-2022 走看看