位置: 编程技术 - 正文

使用XQuery查询DB2 XML数据

编辑:rootadmin
正在看的db2教程是:使用XQuery查询DB2 XML数据。

推荐整理分享使用XQuery查询DB2 XML数据,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

使用XQuery查询DB2 XML数据

关于 XQuery XQuery 在很多关键方面都与 SQL 有所不同,这很大程度上是因为这两种语言是针对两种具有不同特征的数据模型而设计的。XML 文档包含层次结构,并且有其固有的顺序。而基于 SQL 的数据库管理系统所支持的表格数据结构是平面的(flat),并且是基于集合的;因此,行之间不存在顺序。 这两种数据模型的不同导致它们各自的查询语言有很多基本的不同。例如,XQuery 支持路径表达式,以允许程序员在 XML 的层次结构中导航,而纯 SQL(没有 XML 扩展)则不支持。XQuery 支持有类型的和无类型的数据,而 SQL 数据总是以指定类型定义的。XQuery 没有 null 值,因为 XML 文档会忽略缺失的或未知的数据。当然,SQL 使用 null 来表示缺失的或未知的数据值。XQuery 返回一系列的 XML 数据,而 SQL 则返回各种 SQL 数据类型的结果集。这只是 XQuery 和 SQL 之间的基本不同点中的一部分。提供一份详尽的列表超出了本文的范围,不过即将发表的 IBM Systems Journal 将更详细地讨论这些语言的不同。现在我们就探索一下 XQuery 语言的一些基本方面,并看看如何使用它来查询 DB2 Viper 中的 XML 数据。 样本数据库 本文中的查询访问在 “DB2 Viper 快速入门”(developerWorks, 年 4 月)中创建的样本表。清单 1 给出了样本数据库中 “items” 和 “clients” 表的定义: 清单 1. 表定义create table items (id int primary key not null, brandname varchar(), itemname varchar(), sku int, srp decimal(7,2), comments xml)create table clients(id int primary key not null, name varchar(), status varchar(), contactinfo xml)图 1 中显示了 “items.comments” 列中包含的样本 XML 数据,而 图 2 中则显示了 “clients.contactinfo” 列中包含的样本 XML 数据。随后的例子查询将引用这两个 XML 文档中的一个或两个中的特定元素。 图 1. 存储在 “items” 表的 “comments” 列中的样本 XML 文档图 2. 存储在 “clients” 表的 “contactinfo” 列中的样本 XML 文档查询环境 本文中的所有查询都是通过交互方式发出的。这可以通过 DB2 命令行处理器或 DB2 Control Center 的 DB2 Command Editor 来完成。本文中的屏幕图像和说明主要使用后一种方式。(DB2 Viper 还附带了一个基于 Eclipse 的 Developer Workbench,它可以帮助程序员以图形化的方式构造查询。本文不讨论应用程序开发问题和 Developer Workbench。) 要使用 DB2 Command Editor,启动 Control Center,并选择 Tools -> Command Editor。这时将出现如 图 3 所示的窗口。在上面的面板中输入查询,单击左上角的绿色箭头运行该查询,然后可以在下面的面板中或者在 “Query Results” 选项卡中查看输出。 图 3. DB2 Command Editor,可以从 DB2 Control Center 中启动 XQuery 例子 与在 “用 SQL 查询 DB2 XML 数据” 中一样,本文将逐步讲解一些常见的业务场景,并展示如何使用 XQuery 来满足对 XML 数据的请求。本文还探索了需要将 SQL 嵌入在 XQuery 中的更复杂的情景。 XQuery 提供了一些不同类型的表达式,这些表达式可以随意组合。每个表达式返回一系列的值,这些值又可以作为其他表达式的输入。最外面的表达式的结果就是查询的结果。 本文主要讨论两种重要的 XQuery 表达式:“FLWOR” 表达式和路径表达式。FLWOR 表达式非常像 SQL 中的 SELECT-FROM-WHERE 表达式 —— 它用于对由多项组成的一个列表进行迭代,并且可以选择返回通过在每一项上进行计算得到的值。而路径表达式则可以在分层的 XML 元素之间进行导航,并返回在路径末端找到的元素。 与 SQL 中的 SELECT-FROM-WHERE 表达式类似,XQuery FLWOR 表达式可以包含数个以某个关键词开头的子句。在 FLWOR 表达式中,有以下用于作为子句开头的关键字: for:对输入序列进行迭代,依次将一个变量绑定到每个输入项 let:声明一个变量并为之赋值,可能是一个包含多项的列表 where:指定过滤查询结果的标准 order by:指定结果的排序顺序 return:定义所返回的结果 XQuery 中的路径表达式由一系列的 “步(step)” 组成,之间以斜杠隔开。在最简单的形式中,每一步在 XML 层次中向下导航,以发现由前一步返回的元素的孩子。路径表达式中的每一步还可以包含一个谓词,用于过滤该步返回的元素,只保留满足某种条件的元素。例如,假设变量 $clients 被绑定到包含 <Client> 元素的 XML 文档的一个列表,则 4 步路径表达式 $clients/Client/Address[state = "CA"]/zip 将返回居住在加利福尼亚的客户的邮政编码。 在很多情况下,可以任意使用 FLWOR 表达式或路径表达式编写查询。 使用 DB2 XQuery 作为顶层查询语言 要在 DB2 Viper 中直接执行 XQuery(而不是将它嵌入在 SQL 语句中),必须以关键字 xquery 作为查询的开头。这个关键字将指示 DB2 调用它的 XQuery 解析器来处理请求。注意,只有在使用 XQuery 作为最外层(顶层)语言的时候才需要这么做。如果是将 XQuery 表达式嵌入在 SQL 中,则不需要在语句之前加上 xquery 关键字。但是,本文使用 XQuery 作为基本语言,因此所有查询之前都加上 xquery。 当 XQuery 被作为顶层语言时,它需要一个输入数据的源。XQuery 获得输入数据的一种方式是调用一个名为 db2-fn:xmlcolumn 的函数,调用时带一个参数,表明 DB2 表中 XML 列所在的表名和该列的列名。db2-fn:xmlcolumn 函数返回存储在给定列中的一系列的 XML 文档。例如,下面的查询返回一系列包含客户联系方式信息的 XML 文档: 清单 2. 返回客户联系方式数据的简单 XQueryx

[1] [2] [3] [4] [5] 下一篇

DB2 9产品说明书在线参考地址(http) 正在看的db2教程是:DB产品说明书在线参考地址(http)。关于如何使用DB数据库产品,网友可以访问以下的连接地址:

使用SQL查询DB2 9中的XML数据 正在看的db2教程是:使用SQL查询DB中的XML数据。虽然DB2的混合体系结构与之前的版本有很大的不同,但是要利用它的新XML功能并不难。如果您已经熟悉SQL

如何访问大型机、小型机上的DB2 9数据服务器 正在看的db2教程是:如何访问大型机、小型机上的DB数据服务器。数据库连接工具软件DB2connect的基本特性是为桌面应用程序和服务主机的数据库服务器

标签: 使用XQuery查询DB2 XML数据

本文链接地址:https://www.jiuchutong.com/biancheng/319695.html 转载请保留说明!

上一篇:IBM DB2 Connect简介(1)(db2 connect命令)

下一篇:DB2 9产品说明书在线参考地址(http)(db2 -952)

  • 所得税费用为负数
  • 全年一次性奖金税收优惠政策
  • 要约和承诺有法律效力吗
  • 个税什么情况可以抵扣
  • 费用发票能不能直接挂应付账款里
  • 二季度申报时间
  • 从事股权投资业务如何界定
  • 怎么在网站上打印
  • 或有负债在报表附注哪里
  • 一般纳税人的登记管理表述不正确的是
  • 一般购销业务的账务处理
  • 存货盘盈涉税问题
  • 保费 车船税
  • 预缴增值税 已交税金
  • 免费样品销售给客户计入什么科目
  • 垫付了医药费保险报销时怎么办
  • 外地预缴企业所得税税率
  • 给非企业员工佣金怎么交税
  • 计提存货跌价准备计算公式
  • 小规模代扣代缴个税会计分录
  • 增值税专用发票电子版
  • 当期损益包括哪些费用
  • 固定资产明细账有哪些
  • 出口企业预申报没有增值税专用发票稽核信息如何处理?
  • 企业第一年利润是多少
  • php判断https
  • 试乘试驾车入账分录
  • 会计分录编制的步骤
  • 解决肚子胀气最快方法
  • 出口免退增值税计算公式
  • 利润核算主要包括
  • chrome谷歌浏览器
  • php实现执行外部操作
  • web前端综合案例开发离线作业1
  • PHP:imagecolorexact()的用法_GD库图像处理函数
  • pytorch入门教程(非常详细)
  • 如何解决php使用延迟问题
  • 承兑汇票和现汇
  • php管理员和用户登录
  • 收到车险发票含增值税吗
  • php数组拼接成字符串
  • controller层,service层,dao
  • vue router 路由参数
  • 2019年4月1日降低城镇职工什么单位缴费比例
  • 销售部门招待费用预算
  • 开个人劳务发票怎么缴个人所得税
  • 帝国cms标签调用大全
  • 帝国cms使用手册
  • mongodb集群开启auth认证
  • 含税价的基本定义是什么
  • sql server2003
  • mysql5.5创建用户
  • 应付账款的入账价值应当包括增值税的进项税额
  • 企业收到的政府部门工作经费
  • 公司与公司之间人与人之间最大的区别
  • 传媒公司的骗局把戏
  • 社保补差什么流程
  • 预存返现活动规则
  • 临时账户过期了怎么办
  • 稳岗补贴会计分录怎么做,需要缴纳企业所得税不
  • 出纳日记账的日期以什么为准
  • 建账的大体流程有哪些
  • cf游戏初始化失败是因为什么
  • windows ssh-keygen
  • win8右下角图标不见了
  • Windows文件夹共享权限不足
  • windows开发是什么
  • 怎么安装多个相同软件
  • 鼠标双击速度
  • Android:ValueAnimator的使用举例
  • [置顶] 纯享版奥义,手机迅雷搜:阿天动漫
  • node.js获取文件信息的方法是什么
  • nodejs cicd
  • js 在线调试
  • javascript七种数据类型
  • 电子税务局查询一般纳税人资格
  • 海关免税金额现在是多少金额
  • 北京比较大五金市场在哪
  • 改革开放四十年是几几年
  • 扬州 税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设