位置: 编程技术 - 正文

使用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中字符串函数
  • PHP:Memcached::getServerList()的用法_Memcached类
  • gwsystemservice.exe是什么进程 有什么作用 gwsystemservice进程查询
  • 员工离职后公司还用照片
  • 资产盘盈盘亏处理
  • 大群的芒基蝠鲼跃出水面,墨西哥加利福尼亚湾 (© Mark Carwardine/Minden Pictures)
  • 销售货物收到普票会计分录
  • 非高新企业自主研发,相关政策
  • ci框架如何做api
  • 企业所得税是怎么产生的
  • 捐赠利得计入营业外收入吗?
  • 汇兑损益是资产类科目
  • 残保金滞纳金可以税前扣除吗
  • 出口货物不缴纳增值税
  • 一般纳税人接受捐赠的固定资产,捐赠方提供了有关凭证
  • 城市维护建设税属于中央还是地方
  • 利润分配怎么分配比例
  • 稳岗补贴支付范围
  • 建筑业简易计税预交
  • 有限合伙企业需要缴纳企业所得税吗
  • 成品油发票如何下载库存
  • 哪些情况不属于农户
  • 库存商品调价会计分录
  • 提取银行存款利息分录
  • 销售折让的会计账务处理分录
  • 赠送客户样品记什么费用
  • 每个银行都有结息
  • 企业入库申报什么意思
  • 商贸企业的销售成本怎么算
  • 利息税额计算公式
  • 数据库聚簇索引和非聚簇索引
  • sqlserver查询语句大全讲解
  • mysql 绿色版
  • vmware_vmx.exe进程在哪里关
  • win8管理工具在哪里
  • windows远程桌面连接怎么用
  • vim的配置文件
  • linux的防火墙配置文件
  • 如何自定义win键
  • win10系统怎么添加ip地址
  • renderjs echarts
  • WebSocket+node.js创建即时通信的Web聊天服务器
  • 如何用dos修复引导
  • java.基础
  • shell脚本.sh
  • javascript 编译原理
  • 图片在线预览html5
  • 跟踪子弹
  • 如何使用wordpress
  • 出口汇率以什么为准
  • 养猪环保局有什么新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设