SQLServer基础教程(20)专题培训课件_第1页
SQLServer基础教程(20)专题培训课件_第2页
SQLServer基础教程(20)专题培训课件_第3页
SQLServer基础教程(20)专题培训课件_第4页
SQLServer基础教程(20)专题培训课件_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本章概述在支持WWW的技术中,可扩展标记语言(eXtensibleMarkupLanguage,简称为XML)被认为是最重要的技术之一。XML已经对数据的存储和处理产生了深远的影响,并且今后其优势会更好地展现出来。实际上,XML是一系列相关技术的集合,这些技术包括DTD、XMLSchema、CSS和XSLT等。本章将介绍MicrosoftSQLServer2008系统中获支持的XML技术。2023年8月30日1本章要点为什么要使用XML语言类型化数据和非类型化数据的特点XML数据类型的特点XML架构的作用和使用方式XQuery/exist/modify技术的特点FORXML子句的类型和使用方式XML索引的类型和特点OPENXML函数的作用和使用方式2023年8月30日2本章内容20.1概述20.2XML数据类型20.3查询XML数据20.4使用FORXML子句20.5使用XML索引20.6使用OPENXML函数20.7本章小结2023年8月30日320.1概述MicrosoftSQLServer2008系统通过引入更多的功能增强了对XML数据的支持。MicrosoftSQLServer系统提供了XML数据类型用来存储XML数据。XQuery和XSD(eXtensibleschemadefinition,即:可扩展的架构定义)支持这种XML数据。并且这种XML数据与MicrosoftSQLServer2008关系型数据库引擎紧密集成。MicrosoftSQLServer2008提供了XML触发器、XML数据复制、大容量的XML数据插入等操作的支持。2023年8月30日420.2XML数据类型XML数据类型是MicrosoftSQLServer2008系统为了增强XML技术支持而引入的新功能。就像INT、CHAR等数据类型一样,XML数据类型可以用在表中列的定义中、变量的定义中和存储过程的参数定义中。XML数据类型既可以存储类型化数据,也可以存储非类型化数据。如果存储在XML列中的数据没有与XSD架构关联,那么这种数据是非类型化数据。如果存储在XML列中的数据与XSD架构关联,那么这种数据就是类型化数据。2023年8月30日5创建ProductInfo表2023年8月30日6使用INSERT语句插入XML数据2023年8月30日7使用INSERT语句插入一个不正确的XML数据2023年8月30日8使用INSERT语句插入一个不一致但是正确的XML数据2023年8月30日9定义ProductDescXMLSchema架构2023年8月30日10定义一个与ProductDescXMLSchema架构关联的表2023年8月30日11插入符合XSD架构的XML文档2023年8月30日12插入不符合XSD架构的XML文档2023年8月30日13查看定义的XSD架构文本信息2023年8月30日1420.3查询XML数据对于XML列中的数据,可以使用相应的技术对其进行操纵,这些技术包括XQuery技术、Exist技术和Modify技术。下面介绍这些技术。2023年8月30日15使用XQuery技术XQuery是一种可以查询结构化或半结构化XML数据的语言。由于MicrosoftSQLServer2008系统提供了对XML数据类型的支持,因此可以将XML文档存储在数据库中,然后使用XQuery语句进行查询。XQuery基于现有的XPath查询语言,并且支持迭代、排序结果以及构造必须的XML的功能。Transact-SQL支持XQuery语言的子集。2023年8月30日16查询多个元素2023年8月30日17查询单个元素2023年8月30日18查询类型化数据2023年8月30日19使用XML数据类型方法MicrosoftSQLServer2008系统提供了一些内置的可以用于XML数据类型的方法。与普通关系型数据不同的是,XML数据是分层次的,具有完整的结构和元数据。XML数据类型方法可以用于提取存储在XML数据类型中的XML文档的内容。这些方法包括Exist方法、Modify方法、Query方法、Value方法等。Query方法在20.3节中已经涉及了,下面主要讲述Exist方法和Modify方法。2023年8月30日20使用XMLExist方法2023年8月30日21使用XMLModify方法2023年8月30日2220.4使用FORXML子句使用FORXML子句可以把MicrosoftSQLServer2008系统的表中数据检索出来并且自动表示成XML的格式。在MicrosoftSQLServer2000版本中,FORXML有3种模式,即RAW、AUTO和EXPLICIT。在MicrosoftSQLServer2008系统中,由于增加了XML数据类型,因此也增强了FORXML的功能,这些增强功能包括TYPE模式、PATH模式、嵌套FORXML查询和内联XSD架构等。下面将详细地研究这些内容。2023年8月30日23FORXMLRAWFORXMLRAW是最简单的FORXML模式,该模式将查询结果集中的每一行转换为带有通用标识符<row>或可能提供元素名称的XML元素。在默认情况下,行集中非NULL的每列值都将映射为<row>元素的一个属性。也就是说,RAW模式表示元素名称是row,属性名称是列名称或列的别名。2023年8月30日24使用FORXMLRAW模式2023年8月30日25按照XML结构查看检索结果2023年8月30日26FORXMLAUTO使用FORXMLAUTO也可以返回XML文档。但是,使用AUTO关键字和使用RAW关键字得到的XML文档形式是不同的。使用AUTO关键字,MicrosoftSQLServer使用表名称作为元素名称,使用列名称作为属性名。SELECT关键字后面的列的顺序用于确定XML文档的层次。2023年8月30日27使用FORXMLAUTO2023年8月30日28使用FORXMLEXPLICIT2023年8月30日29使用TYPE指令由于SQLServer2008系统支持XML数据类型,因此可以通过指定TYPE指令,将FORXML查询结果返回为XML数据类型,方便在服务器上处理FORXML的查询结果。2023年8月30日30使用FORXMLPATH作为一种新增功能,FORXMLPATH子句比FORXMLRAW和FORXMLAUTO子句的功能强大,并且比FORXMLEXPLICIT子句更加简单。FORXMLPATH子句允许用户指定XML树状数据中的路径。FORXMLPATH子句可以更加简单地完成FORXMLEXPLICIT子句具备的功能。2023年8月30日31嵌套的FORXML查询MicrosoftSQLServer2000系统限定FORXML子句只能用在查询语句的顶层,不能在子查询中使用FORXML子句。但是,MicrosoftSQLServer2008系统增强了这方面的功能,用户可以在子查询中使用FORXML子句,从而实现嵌套的FORXML查询。例如,在如图20-24所示的示例中,使用了一个嵌套的FORXML查询。2023年8月30日32内联XSD架构生成在FORXML子句中,可以请求在查询返回结果的同时返回一个内联架构。如果需要XSD架构,可以使用XMLSCHEMA关键字。需要注意的是,只能在RAW和AUTO模式中指定XMLSCHEMA,不能在EXPLICIT模式和PATH模式中指定内联XSD架构2023年8月30日3320.5使用XML索引XML数据类型支持最大达2GB的数据。当查询XML数据时,XML数据将会对系统的性能带来巨大的影响。为了提高XML查询的性能,可以在具有XML数据类型的列上创建索引。XML索引可以分为两个类别,即主XML索引和辅助XML索引。2023年8月30日34创建XML索引2023年8月30日3520.6使用OPENXML函数20.4节已经讲过,使用FORXML可以把MicrosoftSQLServer系统中的数据生成XML文档,使用OPENXML则是使用FORXML的逆过程。也就是说,使用OPENXML可以从XML文档中返回数据的行集。2023年8月30日36使用OPENXML函数示例2023年8月30日3720.7本章小结本章介绍了XML技术。首先,介绍了XML技术的演变和发展历程。其次,详细介绍了XML数据类型的特点和使用方式,分析了类型化数据和非类型化数据的特点。接下来,对查询XML数据技术进行了分析。之后,介绍了XML索引的类型和特点。最后,讨论了OPENXML函数的作用和使用方式。2023年8月30日38【思考和练习】1.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论