ch10_SQL Server 2008与XML

上传人:沈*** 文档编号:244566788 上传时间:2024-10-05 格式:PPT 页数:47 大小:2.17MB
返回 下载 相关 举报
ch10_SQL Server 2008与XML_第1页
第1页 / 共47页
ch10_SQL Server 2008与XML_第2页
第2页 / 共47页
ch10_SQL Server 2008与XML_第3页
第3页 / 共47页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,10,章,SQL Server 2008,与,XML,10.1 XML,概述,10.2 XML,在,SQL Server 2008,中的应用,10.1 XML,概述,10.1.1 XML,简介,XML,的前身是,SGML,,是自,IBM,从,60,年代就开始发展的,GML,(,Generalized Markup Language,)标准化后的名称。,SGML,是一种非常严谨的文件描述法,导致过于庞大复杂,难以理解和学习,进而影响其推广与应用。作为,SGML,的替代品,开发人员采用了超文本标记语言,HTML,,用于在浏览器中显示网页文件。但是,HTML,也存在一些缺点,,HTML,缺乏可扩展性,不同的浏览器对,HTML,的支持也不一样。,HTML,中只有固定的标记集,用户无法自定义标记,这极大地阻碍了,HTML,的发展。,1996,年,一个工作小组在,W3C,(万维网协会)的支持下,创建了一种新的标准标记语言,XML,,用于解决,HTML,和,SGML,的一些问题。,XML,是一种标准化的文档格式语言,它使得发布者可以创建一个以不同方式查看、显示或打印的文档资源。,XML,与,HTML,的设计区别是:,XML,是用来存储数据的,重在数据本身。而,HTML,是用来定义数据的,重在数据的显示模式。另外,,XML,是可扩展的,因为它提供了一个标准机制,使得任意文档构造者都能在任意,XML,文档中定义新的,XML,标记,这使得综合的、多平台的、应用到应用的协议的创建降低了门槛。,10.1.2 XML基本语法,本小节将从一个简单的,XML,实例开始介绍,XML,的语法,实例代码如下:,wang,zhang,Reminder,Dont forget me this weekend!,12,10.1.2 XML,基本语法,在上述语句中,第,1,行“,”中指定了,XML,的版本(,1.0,)和编码格式(,ISO-8859-1,)。,第,2,行开始是,XML,的主体部分,采用树状结构,以标签的形式存储数据。,XML,文档必须包含一个或一个以上的元素。例如,“,wang,”称为一个元素,其中,“,”称为标签,每个标签都必须成对出现,如“,”,标签之间的数据“,wang,”为元素的内容。,元素和元素之间有一定的层次关系,每个元素可以依次包含一个或多个元素。其中,有一个元素不能作为其他元素的一部分,这个元素称为文档的根元素,即上述语句中的“,”标签。一个,XML,文档有且只能有一个根元素。根元素“,”下面包含了“,”、“,”、“,”、“,”、“,”,5,个子元素,分别表示标签的接收人、发送人、主题、内容和编号。,值得注意的是,在上述语句中,所有的标签名称都是自己定义的。这一点和,HTML,不同,,HTML,中都是预定义的标签,而,XML,允许用户定义自己的标签和文档结构。,XML,文档中的元素还可以带有若干个属性,属性的名称也是由用户自己定义的,属性的值必须添加引号。格式如下:,元素内容,文件中的“,age=20,”即为元素的属性和值。,10.1.2 XML,基本语法,在编写,XML,文本时需要注意以下几点:,XML,标签的名称可以包含字母、数字及其他字符。不能以数字或标点符号开始;不能以字符“,xml,”、“,XML,”或“,Xml,”等开始;不能包含空格。,XML,语法是区分大小写的,所以在定义,XML,标签时必须保持大小写的一致性,例如,打开开始标签为“,”,结束标签为“,”就是错误的写法。,XML,必须正确地嵌套,例如,以下的标签嵌套关系是,错误,的:,This text is bold and italic,必须修改为,This text is bold and italic,XML,文档中允许空元素的存在,所谓的空元素就是只有标签没有实际内容的元素,空元素有两种表示方法,例如“,”或“,”。,在,XML,文档中所有的空格都会被保留。,可以在,XML,文档中写注释,注释形式与,HTML,中一样,例如,,10.1.2 XML,基本语法,XML,中的实体引用。在,XML,文档中有一些字符具有特殊意义,例如,把字符“,小于号,连接符,&,单引号,双引号,表,10.1 XML,中的实体引用,10.2 XML在SQL Server 2008中的应用,10.2.1 XML,数据类型,用户可以将,XML,架构的集合与,XML,类型的变量、参数或列关联起来。在这种情况下,,XML,数据类型实例称为“类型化”的,XML,实例,否则称为“非类型化”的,XML,实例。,虽然在,SQL Server 2008,中可以像其他数据类型一样使用,XML,数据类型,但是使用时还是存在了一些限制,如下所示:,XML,数据类型实例所占据的存储空间大小不能超过,2 GB,;,XML,列不能指定为主键或外键的一部分;,不能用做,sql_variant,实例的子类型;,不支持转换或转换为,text,或,ntext,,请改用,varchar(MAX),或,nvarchar(MAX),;,不能用在,GROUP BY,语句中;,不能用做除,ISNULL,、,COALESCE,和,DATALENGTH,之外的系统标量函数的参数;,【,例,10.1,】,在,PXSCJ,数据库中创建一个表,Xmltable,,表中包含两列:,Name,和,Content,,分别存储,XML,文件名和,XML,文件的内容;定义一个,XML,类型的变量并赋值。,10.2.1 XML,数据类型,创建表,Xmltable,的,T-SQL,语句,如下所示:,USE PXSCJ,GO,CREATE TABLE Xmltable,(,Namechar(20)NOT NULL PRIMARY KEY,ContentxmlNULL,),定义,XML,类型变量的,T-SQL,语句,如下所示:,DECLARE doc xml,SELECT doc=Nnote.xmlHello!,10.2.2 SQL Server 2008,中导入,XML,数据,导入,XML,数据的方法一般有两种。,1,使用,INSERT,语句直接插入,可以使用,INSERT,语句将,XML,数据以字符串形式直接插入,XML,类型列中。,【,例,10.2,】,向例,10.1,新建的表,Xmltable,中插入一行包含,XML,数据的记录,示例数据为之前定义的,note.xml,文件的内容。,INSERT INTO Xmltable VALUES(note.xml,wangzhang,ReminderDont forget me this weekend!),10.2.2 SQL Server 2008,中导入,XML,数据,2,使用行集函数,OPENROWSET,语句,当,XML,文件的内容很多时,直接插入的方式显然不太合适。这时可以使用行集函数,OPENROWSET,来完成。,OPENROWSET,函数返回一个表,可以在查询的,FROM,子句中像引用表名那样引用,OPENROWSET,函数。将,OPENROWSET,函数返回的内容用做,INSERT,或,MERGE,语句的源表,就可以将数据文件中的数据导入到,SQL Server,表中。,OPENROWSET,函数的语法格式:,OPENROWSET,(BULK data_file,FORMATFILE=format_file_path ,|SINGLE_BLOB|SINGLE_CLOB|SINGLE_NCLOB,),10.2.2 SQL Server 2008,中导入,XML,数据,与,SELECT,一起使用的,FROM,子句可以调用,OPENROWSET(BULK.),而非表名,同时可以实现完整的,SELECT,功能。带有,BULK,选项的,OPENROWSET,函数在,FROM,子句中需要使用,AS,子句指定一个别名。也可以指定列别名,如果未指定列别名列表,则格式化文件必须具有列名,指定列别名会覆盖格式化文件中的列名,例如,,SELECT FROM OPENROWSET(BULK.)AS table_alias,SELECT FROM OPENROWSET(BULK.)AS table_alias(column_alias,.n),【,例,10.3,】,假设,note.xml,文件保存在,D,盘根目录下,使用,OPENROWSET,函数将该文件导入到数据表,Xmltable,中。插入数据使用如下语句:,INSERT INTO Xmltable(name,content),SELECT note2.xml AS name,*,FROM OPENROWSET(BULK ND:note.xml,SINGLE_BLOB)AS note,10.2.2 SQL Server 2008,中导入,XML,数据,XML,数据插入后可以使用,SELECT,语句查看插入了哪些数据:,SELECT*FROM Xmltable,结果如图,10.1,所示。,图,10.1,查询表中,XML,数据,10.2.2 SQL Server 2008,中导入,XML,数据,另外,,OPENROWSET,函数还可以用于插入图片文件、文本文件、,Word,文件、,Excel,文件等内容。这里以插入图片文件为例,具体的操作步骤如下。,(,1,)建立测试表,USE PXSCJ,GO,CREATE TABLE Test,(,TestID int IDENTITY(1,1),BLOBName varChar(50),BLOBData varBinary(MAX),),(,2,)使用,OPENROWSET,函数将图片文件导入数据库表字段,INSERT INTO Test(BLOBName,BLOBData),SELECT picture,BulkColumn,FROM OPENROWSET(Bulk D:picture.jpg,SINGLE_BLOB)AS BLOB,10.2.2 SQL Server 2008,中导入,XML,数据,(,3,)查询导入数据,若上述脚本执行成功,则可以通过下述查询语句来查询表,BLOBTest,中插入的数据:,SELECT *,FROM Test,执行结果如图,10.2,所示。,图,10.2,查询图片数据,10.2.3 XQuery,的基本用法,1,XPath,语法,XPath,是一种在,XML,文档中查找信息的语言,使用,XPath,的标准路径表达式可以在,XML,文档中选取相应的,XML,节点。在,XPath,中有,7,种类型的节点:元素、属性、文本、命名空间、处理指令、注释和文档(根)节点。例如,在之前创建的,note.xml,文件中,“,”是根节点,“,wang,”是元素节点,“,age=20,”是属性节点。,XPath,是根据路径表达式在,XML,文档中查找信息的,其路径表达式与,Windows,的文件路径类似。可以把,XPath,比成文件管理路径:通过文件管理路径,可以按照一定的规则查找到所需要的文件;同样,依据,XPath,所制定的规则,也可以很方便地找到,XML,结构文档树中的任何一个节点。,XPath,中常用的基本表达式在表,10.2,中列出。表,10.3,中给出了一些,XPath,中路径表达式的实例。,10.2.3 XQuery,的基本用法,表,达,式,描,述,nodename,选取此节点的所有子节点,/,从根节点选取,/,从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置,.,选取当前节点,.,选取当前节点的父节点,选取属性,表,10.2 XPath,中的常用表达式,路径表达式实例,含,义,School,选择,school,下的所有子节点,/school,选取根元素,school,,假如路径起始于正斜杠“,/,”,,则此路径始终代表到某元素的绝对路径,school/class,选取所有属于,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!