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