• SQLServer XML类型


      SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。

      1、创建测试数据

      创建表

      --创建表,包含Xml类型列
      CREATE TABLE Person
      (
          Id int,
          Info xml
      )

      插入测试数据

      --插入3条测试数据
      INSERT Person VALUES(1,'<Person><ID>1</ID><Name>刘备</Name></Person>')
      INSERT Person VALUES(2,'<Person><ID>2</ID><Name>关羽</Name></Person>')
      INSERT Person VALUES(3,'<Person><ID>3</ID><Name>张飞</Name></Person>')

      2、查询节点内容

      query()方法

      --查询节点内容query()方法
      SELECT Id,Info.query('(/Person/Name)[1]') FROM Person WHERE ID = 2

      3、查询值

      value()方法

      --查询值value()方法
      SELECT Id,Info.value('(/Person/Name)[1]','VARCHAR(50)') FROM Person WHERE ID = 2
      SELECT * FROM Person WHERE Info.value('(/Person/Name)[1]','VARCHAR(50)') = '张飞'

      4、查询是否存在

      exist()方法

      --查询是否存在 exist()方法
      SELECT * FROM Person WHERE Info.exist('(/Person/Name)[1]') = 1

      5、查询节点

      nodes()方法

      --查询节点
      SELECT
    T2.Loc.query('.')   FROM Person   CROSS APPLY Info.nodes('/Person/Name') as T2(Loc)

      6、修改XML

      modify()方法

      1、增加节点

    复制代码
      --modify(insert)增加节点
      UPDATE Person SET 
      Info.modify('
          insert
          <Age>25</Age>
          into (/Person)[1]'
      )
      WHERE Id = 3
    复制代码

      2、删除节点

      -- 删除节点内容(xQuery知识,没有text()就直接删除节点)
      UPDATE Person
      SET Info.modify('
        delete  (/Person)[1]/Age/text()'
      )
      where ID = 3
     
     
     
    0
    0
     
    (请您对文章做出评价)
     
    « 上一篇:Lucene.net 性能《第八篇》
    » 下一篇:查询设计分析
  • 相关阅读:
    网络流24题之汽车加油行驶问题
    「CodeChef
    「HNOI 2016」 序列
    「HNOI 2015」实验比较
    「JXOI 2018」 排序问题
    「HNOI 2014」 江南乐
    「HNOI 2015」亚瑟王
    「HNOI 2015」菜肴制作
    「HNOI 2015」落忆枫音
    蓝桥杯 方格分割
  • 原文地址:https://www.cnblogs.com/mingxuantongxue/p/4425379.html
Copyright © 2020-2023  润新知