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 使用!!!

  • 相关阅读:
    BZOJ 1101 莫比乌斯函数+分块
    BZOJ 2045 容斥原理
    BZOJ 4636 (动态开节点)线段树
    BZOJ 2005 容斥原理
    BZOJ 2190 欧拉函数
    BZOJ 2818 欧拉函数
    BZOJ 3123 主席树 启发式合并
    812. Largest Triangle Area
    805. Split Array With Same Average
    794. Valid Tic-Tac-Toe State
  • 原文地址:https://www.cnblogs.com/dupeng0811/p/1604764.html
Copyright © 2011-2022 走看看