《第8章使用XQuery链接和查询XML文档》由会员分享,可在线阅读,更多相关《第8章使用XQuery链接和查询XML文档(22页珍藏版)》请在金锄头文库上搜索。
1、第第8章章 使用使用 XQuery 链链接和查询接和查询 XML 文档文档lXQueryl使用使用XQuery第第8章章 使用使用 XQuery 链接和查询链接和查询 XML 文档文档XQuery需要需要XQuery的原因的原因XQuery 表达式基础表达式基础XQuery和和SQL演示演示 演示演示SQL和和Access中的图形化查询中的图形化查询8.1 XQuery需要需要XQuery的原因的原因XPath的不足的不足l一次只能查询一个一次只能查询一个XML数数据源据源l只能查询只能查询XML格式的数据格式的数据源源l只能执行简单查询只能执行简单查询使用使用XQuery可以可以l一次查询多
2、个数据源一次查询多个数据源l同时查询同时查询XML数据源和关数据源和关系数据库系数据库l执行复杂查询执行复杂查询XML 示例示例XQuery 表达式表达式SQL 查询查询8.1.1 需要需要XQuery的原因的原因使用使用XQuery的场景的场景北京销量北京销量.xml上海销量上海销量.xml深圳销量深圳销量.xml总销量是总销量是?产品产品A(SQL)产品产品B(文本文本)产品产品C(XML)哪个产品哪个产品最便宜?最便宜?8.1.1 需要需要XQuery的原因的原因XQuery功能示例功能示例 待查询的待查询的XML文档文档 Cooking with Computers: Surrepti
3、tious Balance Sheets Algodata Infosystems MacFeather Stearns 11.95 You Can Combat Computer Stress! New Moon Books Green Marjorie 2.99 Is Anger the Enemy? New Moon Books Ringer Anne 10.95 8.1.1 需要需要XQuery的原因的原因XQuery功能示例功能示例 表达式和结果表达式和结果XQuery表达式表达式查询结果查询结果FOR $b IN document (http:/contoso.msft)/book
4、s/bookWHERE $b/publisher = New Moon Books AND $b/pubyear 1990RETURN $b/title You Can Combat Computer Stress! 8.1.1 需要需要XQuery的原因的原因XQuery查询可以实现的功能查询可以实现的功能在在XML文档或其他数据源中查询数据和元数据文档或其他数据源中查询数据和元数据对查询结果进行修改后生成新的对查询结果进行修改后生成新的XML树节点结构树节点结构查询没有根元素的查询没有根元素的XML片段片段查询和操作各种类型的数据,包括用户自定义数查询和操作各种类型的数据,包括用户自定义数
5、据类型据类型8.1.1 需要需要XQuery的原因的原因XQuery表达式表达式基础基础XQuery表达式使用表达式使用FLWR语法语法FOR、LET、WHERE、RETURNFORFOR $b IN document (“http:/)/books/bookWHEREWHERE $b/publisher = New Moon Books AND $b/pubyear 1990RETURNRETURN $b/title 8.1.2 XQuery表达式基础表达式基础XQuery的的FLWR子句子句FOR子句:用于遍历满足查询条件的节点集,其子句:用于遍历满足查询条件的节点集,其中需要使用变量作为
6、枚举指针表示当前节点中需要使用变量作为枚举指针表示当前节点LET子句:将变量和节点关联,但不能象子句:将变量和节点关联,但不能象FOR子子句一样对节点集进行遍历,只用于单个节点句一样对节点集进行遍历,只用于单个节点WHERE子句:用于筛选数据源生成结果集,功子句:用于筛选数据源生成结果集,功能类似能类似SQL查询语句中的查询语句中的WHERE子句子句RETURN子句:产生查询结果,可以控制结果的子句:产生查询结果,可以控制结果的格式,对结果进行运算、排序和比较等格式,对结果进行运算、排序和比较等8.1.2 XQuery表达式基础表达式基础XQuery和和SQLSQL专为关系数据库设计专为关系数
7、据库设计XQuery可以同时查询和操作来自多个关系数据可以同时查询和操作来自多个关系数据库或库或XML文档的数据文档的数据8.1.3 XQuery和和SQL演示演示 SQL和和Access中的图形化查询中的图形化查询在在SQL Server 2000中用图形界面创中用图形界面创建查询建查询在在Access 2002中用图形界面创建查中用图形界面创建查询询8.1.4 SQL和和Access中的图形化查询中的图形化查询lXQueryl使用使用XQuery第第8章章 使用使用 XQuery 链接和查询链接和查询 XML 文档文档使用使用XQueryXQuery 基础基础高级高级 XQueryXQue
8、ry 的未来的未来 演示演示 使用使用XQuery查询查询8.2 使用使用XQueryXQuery 基础基础基本基本XPath类型的查询表达式类型的查询表达式document(animals.xml)/section4/illustrationslabel = “Cat family”document(animals.xml)/section3 TO 7/illustrationdocument(animals.xml)/sectiontitle = Cats/illusref/illusid=illus/label8.2.1 XQuery 基础基础XQuery 高级应用代码示例高级应用代码示
9、例FOR $p IN distinct(document(books.xml)/publisherLET $a := avg(document(books.xml)/book/publisher = $p/price)RETURN $p/text () $a 转换文档转换文档8.2.2 高级高级 XQueryXQuery 高级应用代码示例高级应用代码示例FOR $a IN distinct(document(books.xml)/author)RETURN $a/text() FOR $b IN document(books.xml)/bookauthor = $aRETURN $b/titl
10、e8.2.2 高级高级 XQueryXQuery 高级应用代码示例高级应用代码示例Document(books.xml)/bookprice 80 SORTBY (author1, title) 8.2.2 高级高级 XQueryXQuery 高级应用代码示例高级应用代码示例FOR $p IN distinct(document(books.xml)/publisher) RETURN $p/text() FOR $b IN document (books.xml)/bookpublisher = $pRETURNSORTBY (price DESCENDING)SORTBY(name) 按字
11、母排序的列表按字母排序的列表XQuery 的未来的未来是是XML数据和所有数据和所有Web应用数据的统一查询语言应用数据的统一查询语言可以执行任何数据源的组合查询可以执行任何数据源的组合查询所有类型文档中的XML和XML片段将XML技术应用在关系数据库管理系统中8.2.3 XQuery 的未来的未来 演示演示 使用使用XQuery查询查询 演示由微软开发团队设计的演示由微软开发团队设计的XQuery查查询应用询应用由于由于W3C没有对没有对XQuery技术确定最终技术确定最终标准,所以该演示的功能目前还处在标准,所以该演示的功能目前还处在测试阶段测试阶段8.2.4 演示演示 使用使用XQuery查询查询回顾回顾学习完本章后,将能够:学习完本章后,将能够:掌握掌握XQuery的概念的概念使用使用XQuery查询查询