第四章、XML集成(定义XML数据列、XML模式集合、XML数据类型方法 .query,.value,.modify,.nodes,.exists),关系数据转成XML

本文主要是介绍第四章、XML集成(定义XML数据列、XML模式集合、XML数据类型方法 .query,.value,.modify,.nodes,.exists),关系数据转成XML,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

注意:XML区分大小写

一、XML数据类型

        XML数据类型是Sql2005率先引入的。

1、定义XML数据的列

CREATE TABLE [Production].[ProductModel]([ProductModelID] [int] IDENTITY(1,1) NOT NULL,[Name] [dbo].[Name] NOT NULL,--[CatalogDescription]表中的格式[CatalogDescription] [xml](CONTENT [Production].[ProductDescriptionSchemaCollection]) NULL,[Instructions] [xml](CONTENT [Production].[ManuInstructionsSchemaCollection]) NULL,[rowguid] [uniqueidentifier] ROWGUIDCOL  NOT NULL,[ModifiedDate] [datetime] NOT NULL,CONSTRAINT [PK_ProductModel_ProductModelID] PRIMARY KEY CLUSTERED 
([ProductModelID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]



2、XML模式集合

  XML架构本身也是一个XML,只不过它是用于描述XML字段中内容的结构
     推荐阅读:SQL Server 2005学习笔记之 XML架构 
                          http://blog.csdn.net/u014038143/article/details/78192045(推荐)
                         http://blog.csdn.net/u014038143/article/details/78192044(注意:" 是键盘逗号键上面

  实例:

--创建XML架构集合
CREATE XML SCHEMA COLLECTION MyXMLSchema
AS
'
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="books">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="book" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
'--查询库中的XML架构集合
Select * from sys.xml_schema_collections--创建表
CREATE TABLE [cs]([ID] [int] IDENTITY(1,1) NOT NULL,[Books] [xml](CONTENT [MyXMLSchema]) NULL,
)--定义一个绑定到架构MyXMLSchema架构集合的XML变量
Declare @MyXML AS XML(MyXMLSchema)
--赋予结构正确的XML数据
Set @MyXML =
'
<books>
<book>电话号码大全</book>
</books>
'
--插入数据
insert into cs values(@MyXML)



3、修改和删除XML模式集合

(1)、修改XML模式集合
(2)、删除XML模式集合

--修改XML架构集合
ALTER XML SCHEMA COLLECTION MyXMLSchema
ADD
'
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Journals">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Journal" type="xsd:string" maxOccurs="100"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
'--删除XML架构集合
drop XML SCHEMA COLLECTION MyXMLSchema


4、XML数据类型方法

(1).query
     类似于SQL查询,只是结果匹配于XML数据节点

 实例1:

declare @myDoc xml  
set @myDoc = '<Root>  
<ProductDescription ProductID="1" ProductName="Road Bike">  
<Features>  <Warranty>1 year parts and labor</Warranty>  <Maintenance>3 year parts and labor extended maintenance is available</Maintenance>  
</Features>  
</ProductDescription>  
</Root>'  
SELECT @myDoc.query('/Root/ProductDescription/Features') 

查询返回结果

<Features>
<Warranty>1 year parts and labor</Warranty>
<Maintenance>3 year parts and labor extended maintenance is available</Maintenance>
</Features>

实例2:

--查找Production.ProductModel表的Instructions字段中step
--declare namespace 声明的命令空间必须在一行
select ProductModelID,Instructions.query('declare namespace PI="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";
/PI:root/PI:Location/PI:step') 
from Production.ProductModel
where ProductModelID=66

或者是

with xmlnamespaces('http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions' as PI) select ProductModelID,Instructions.query('/PI:root/PI:Location/PI:step') 
from Production.ProductModel
where ProductModelID=66



原Instructions的XML内容

<?xml version="1.0" encoding="utf-8"?><root xmlns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions">Adventure Works CyclesWA-620 Instructions Assembling the LL Touring Seat Summary: This docu

这篇关于第四章、XML集成(定义XML数据列、XML模式集合、XML数据类型方法 .query,.value,.modify,.nodes,.exists),关系数据转成XML的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895043

相关文章

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Pandas统计每行数据中的空值的方法示例

《Pandas统计每行数据中的空值的方法示例》处理缺失数据(NaN值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下... 目录什么是空值?为什么要统计空值?准备工作创建示例数据统计每行空值数量进一步分析www.chinasem.cn处

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚