第5章DB2中XQuery.ppt_第1页
第5章DB2中XQuery.ppt_第2页
第5章DB2中XQuery.ppt_第3页
第5章DB2中XQuery.ppt_第4页
第5章DB2中XQuery.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章,XQuery概要,重点: DB2 9 XML数据库的创建,createdbatablemlautomaticstoragesyesusingcodesetutf-8 territory ECN,注意:目前DB2是Unicode(UTF-8 如果在创建数据库时未启用unicode server通讯端口,则无法创建XML列。 自动存储,客户端表包含一些传统的SQL数据类型列和一些新的SQL “XML”数据类型列。clients表的定义:客户的联系信息、样本表在clients、clients样本表中插入数据:在Clients.sql文件中插入6行数据。 例1: XML文档、8个元素节点、1个

2、属性节点、6个文本节点、属性节点id、city元素的文本节点为San Jose、email为元素节点、XML文档的元素、属性、文本节点、XQuery的概要、XQuery的概要您可以使用XQuery获取存储在XML列中的整个XML文档或XML片段。 按一下。 有两个重要的XQuery表达式: 路径表达式允许您在XML文档的层次结构中导航并返回到路径的最后找到的节点。 FLWOR表达式类似于SQL中的从where选择表达式。 老虎吧一系列条目,并根据需要返回每个条目的计算结果。 XQuery和XQuery路径表达式由一系列“步骤”组成,步骤之间用斜线字符分隔。 每个步骤在XML层次结构中向下一个步

3、骤,查找在上一个步骤中返回的元素的子元素。 示例2 :要获得示例1的文档的电子邮箱元素,请使用/Client/email;要获得示例1的文档的电子邮箱元素的文本,请使用/Client/email/text ()、XQuery的路径表达式路径表达式中的每个步骤还可以包括一个谓词,用于筛选在此步骤中返回的元素,并仅保留满足条件的元素。XQuery的路径表达式,示例4 :路径表达式移动到id属性为123的客户端元素的第一个email元素,是基于属性值的过滤器谓词,不仅可以通过路径表达式指定元素节点,还可以通过使用符号指定属性节点来识别元素中的属性。XQuery的路径表达式,示例5 :返回住在哈里发奥

4、尔良的客户的zip元素,基于元素值进行化学基过滤,获得XQuery的路径表达式,例如在Client元素的直接子元素下找到的city元素,或等效,更多路径表达式及其含义,xqquery for :老虎吧输入序列并将变量绑定到每个输入条目let。 声明并分配变量。 值是包含多个条目的列表where :筛选查询结果的标准order by :指定结果的排序顺序return :定义返回的结果for和return,XQuery在变量名前面绑定美元符号$,在变量$i上绑定数字1、2、3。 表达式的输出为三个值的序列:每个绑定返回$i的值,在XQuery中for和let之间的差异:每个迭代返回名为output

5、的新元素,使用let牛鼻子字的XQuery表达式:使用for牛鼻子字的XQuery表达式:输出output元素、Order by的功能、Order by的功能:允许用户按照指定的顺序对返回的结果进行排序的XQuery表达式及其输出:DB2对XQuery的子通讯端口注意:要在DB2上直接执行XQuery,请在查询之前加上牛鼻子字XQuery DB2 Select搜索XML文档。 例如,使用常规SQL搜索contactinfo列中包含的完整XML文档定径套以获取存储在selectcontationinfofromclients,DB2中的完整XML文档,示例1 :返回包含客户联络人信息的XML文档

6、序列,DB2-ff 此函数包含标识用户感兴趣的DB2表和XML列的输入关残奥字计量器。 函数返回存储在指定列中的XML文档序列。 查询前面必须加上关牛鼻子字XQuery。 思考:为什么在此查询中指定的表和列名是大写的? (CLIENTS.CONTACTINFO )在创建此表的SQL语句中,表名和列名是小写字母,而DB2在内部元计程仪表中将表名和列名转换为大写字母。 由于XQuery区分大小写,因此XQuery查询语句使用大写表名和列名。 例如,在常规SQL中查找包含在contactinfo列中的完整XML文档定径套,查找选择contact info from clients、特定XML元素fl

7、winor表达式,例如,查找客户传真号码的flwinor表达式如下: DB2调用XQuery分析器,每个传真元素依次绑定到变量$y,每次迭代返回$y的值,执行结果: 示例4 :查找客户传真号的路径表达式,查找特定XML元素的路径表达式,获取XML元素值的文本表达式,示例5 :查找客户传真号的文本表达式的两个查询,在return子句中调用text ()函数,查找复杂XML类型的XQuery 示例6 :搜索客户的联络人信息的Address元素,根据XML元素的值进行筛选的查询,示例7 :返回邮政编码为95116的所有客户的邮政地址的Flwor表达式:带有筛选谓词的路径表达式:根据XML元素的值进行

8、化学基筛选的查询,筛选谓词客户的邮政编码例8-1 :询问法San Jose市或95032邮政编码的客户邮件信息。使用FLWOR表达式根据多个XML元素的值进行化学基过滤:变量$y绑定到客户端元素,在客户端表的示例数据中,前两个查询的输出是:输出不提供来自同一XML文档的电子邮箱地址的客户XQuery 例8-2 :查询住在San Jose市或邮政编码为95032的客户的电子邮件信息,并返回客户的第一个电子邮件元素。 查询将生成以下输出:转换用于表示XML文档中缺少或重复的元素:例如,将住在San Jose或邮政编码95032的客户的电子邮件信息输出到emailList标签,返回的输出将被说唱乐到

9、新的XML元素中。 查询结果如下:条件输出语句,例9 :例8对于查询条件,如果客户没有电子邮件地址,则输出他的地址。 “混合类型”查询将在XQuery中嵌入SQL的db2- fn : XML列函数替换为db2- fn 3360 SQL查询函数并传递给db2- fn 3360 SQL查询的SQL查询仅返回XML数据获取黄金用户的地址。 Gold使用了两个单引号。 其他单引号是转义字符,db2- fn 3360 SQL查询函数,db2- fn : SQL查询函数的参数是select命令函数执行的select查询只能返回XML数据(db2- fn 3360 SQL查询) 例如,假设您想要获取住在Sa

10、n Jose的金牌客户的所有电子邮件地址。 如果客户有多个电子邮件地址,则希望这些地址包含在同一电子查询密码的输出中。最后,如果金牌用户没有提供电子电子邮箱地址,他们希望获得电子电子邮箱地址。 然后在XQuery中嵌入SQL。 例如:获取住在San Jose的金牌客户的所有电子邮件地址。 要在XQuery中嵌入SQL,(Gold )使用两个单引号,其他单引号是转义字符,而XQuery嵌入在SQL中。 示例:将XQuery路径表达式嵌入SQL以获取和限制XML数据,路径表达式引用变量($c ),该变量引用联系人信息列,变量y使DB2在联系人信息列中搜索XML文档,并将XQuery嵌入SQL XM

11、LExists函数XMLExists函数将XQuery表达式作为输入,因此,如果导航到文档中感兴趣的节点,则包含满足指定条件的XML文档的行XMLQuery函数通常会导致、 XML查询用于在XML文档中查找一个或多个元素XML查询函数的XQuery表达式作为输入,表示此函数返回的结果将作为SQL结果定径套中XMLExists的列。 DB2表示必须基于XML谓词来限制结果。 练习,创建表格t,创建表格intt,doc xml ),输入数据,插入t值(1, aabbbccddd )插入值(2) chicagorenezellwegerrichardgerecatherineezeta-Jones

12、)是tvalues(3, transformer optimas by爵士)中插入以下语句的含义: XQuery for $ din db2- fn : XML列(t.doc ) let $ a :=$ d/movie/标题返回$ din db2- fn 3360 XML列(t.doc ) let $ a 3360=$ d/标题返回$ axqueryfor $ din db2- fn 3360 XML列(描述以下语句的含义: XQuery for $ din db2- fn : XML列(t.doc ) let $ a :=$ d/title,$ b :=$ d/actor where $ a

13、/text ()=chicagreturn $ b 查询db2- fn : XML列(t.doc ) let $ a :=$ d/标题订单按钮$ d /移动/年度订单, XQuery for $ din db2- fn : SQL查询(选择文档) where $ d /移动/文本()=爵士回复$ d /移动/标题/文本() db2- fn : SQL查询(选择文档) where $ d/movi actor=爵士回复$ d /移动/标题/文本(), 选择I XML查询($ doc/movie/titlepassingdocasdoc )如果不运行从第一个wherei1i1、第一个where,则选择I XML查询(针对$ doc /移动wherei1 ) 标题路径文件库1,选择I XML查询(针对$ doc /移动where $ d/year=2007 or $ d/year=2008返回$

温馨提示

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

评论

0/150

提交评论