SQL Server2005 新数据类型XML

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介:
在SQL Server2005中继续延续了微软在.Net中的设计思想 将XML和.Net紧密地结合到其中.用.Net在Sql2005中写存储过程定义函数我还没有研究过,今天就只简单得谈谈XML在SQL2005中的应用.

相对SQLServer2000而言,2005在数据类型上最大的一点改变就是增加了XML这个数据类型.要把这个东西搞懂先就必须要懂XML.

在数据库中xml的定义和使用和一般的数据类型没有多大差别,比如:

  • 创建表: create table xmltable(id int primary key,xml1 xml)
  • 定义变量:declare @x xml

与一般的数据类型不同的是,xml下面直接提供了方法,可以对其中的数据进行操作.用到的方法有:

query('Query') 方法 返回xml 此方法用于对 XML 实例进行查询。

假设表xmlTest中有XML一字段xml1='<book id="1"><bookname>AJAX in Action</bookname> <price>10</price></book>' 那么执行

declare @xml1 xml;
select @xml1=xml1
from xmlTest
select @xml1.query('/book/bookname')

这个时候就可以查询到其下面BookName的xml值<bookname>AJAX in Action</bookname>

value('Query','type') 方法 返回具体类型 此方法用于从 XML 实例检索 SQL 类型的值。

比如执行:select @xml1.value('(/book/bookname)[1]','varchar(max)')

注意这里是[1]表示第一个数据,不是[0],返回结果:AJAX in Action

exist('Query') 方法 返回布尔值 此方法用于确定查询是否返回非空结果。

比如执行:select @xml1.exist('/book/id') 返回0,这里是查询/book/id,无法找到<book id="1">中的ID.

modify(XML_DML) 方法 此方法用于指定 XML DML 语句以执行更新。

比如执行:set @xml1.modify('insert <Author>Unknown</Author> after (/book/price)[1] ');
select @xml1这样就可以往原xml数据中插入一个属性,当然运行结果是:

<book id="1"><bookname>AJAX in Action</bookname><price>10</price><Author>Unknown</Author></book>
这里需要注意的是set和select不要混用.
nodes() 方法 此方法用于将 XML 拆分成多行以将 XML 文档的组成部分传播到行集中。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
23天前
|
SQL Oracle 关系型数据库
Oracle的PL/SQL隐式游标:数据的“自动导游”与“轻松之旅”
【4月更文挑战第19天】Oracle PL/SQL中的隐式游标是自动管理的数据导航工具,简化编程工作,尤其适用于简单查询和DML操作。它自动处理数据访问,提供高效、简洁的代码,但不适用于复杂场景。显式游标在需要精细控制时更有优势。了解并适时使用隐式游标,能提升数据处理效率,让开发更加轻松。
|
1天前
|
SQL 关系型数据库 MySQL
|
2天前
|
SQL 数据库
Sql中如何添加数据
Sql中如何添加数据
5 0
|
6天前
|
SQL API 数据库
在Python中获取筛选后的SQL数据行数
在Python中获取筛选后的SQL数据行数
17 1
|
6天前
|
SQL 分布式计算 数据可视化
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
数据分享|Python、Spark SQL、MapReduce决策树、回归对车祸发生率影响因素可视化分析
|
12天前
|
SQL 机器学习/深度学习 数据采集
数据分享|SQL Server、Visual Studio、tableau对信贷风险数据ETL分析、数据立方体构建可视化
数据分享|SQL Server、Visual Studio、tableau对信贷风险数据ETL分析、数据立方体构建可视化
|
13天前
|
SQL Oracle 关系型数据库
利用 SQL 注入提取数据方法总结
利用 SQL 注入提取数据方法总结
|
13天前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之在DataWorks的数据开发模式中,在presql和postsql中支持执行多条SQL语句如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
42 1
|
14天前
|
SQL 机器学习/深度学习 算法
SQL SERVER ANALYSIS SERVICES决策树、聚类、关联规则挖掘分析电商购物网站的用户行为数据
SQL SERVER ANALYSIS SERVICES决策树、聚类、关联规则挖掘分析电商购物网站的用户行为数据
|
14天前
|
SQL 机器学习/深度学习 数据挖掘
SQL Server Analysis Services数据挖掘聚类分析职业、地区、餐饮消费水平数据
SQL Server Analysis Services数据挖掘聚类分析职业、地区、餐饮消费水平数据