科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道使用XQuery查询DB2 XML数据

使用XQuery查询DB2 XML数据

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

DB2 将 XQuery 当作最好的语言,允许用户直接编写 XQuery 表达式,而不是将 XQueries 封装或嵌入到 SQL 语句中。而且,DB2 的查询引擎是在本地处理 XQueries。

来源:IT专家网 2008年6月5日

关键字: IBM 数据库 DB2

  • 评论
  • 分享微博
  • 分享邮件

关于 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,2006 年 4 月)中创建的样本表。清单 1 给出了样本数据库中 “items” 和 “clients” 表的定义:

清单 1. 表定义


create table items (
id int primary key not null,
brandname varchar(30),
itemname varchar(30),
sku int,
srp decimal(7,2),
comments xml
)
create table clients(
id int primary key not null,
name varchar(50),
status varchar(10),
contactinfo xml
)


图 1 中显示了 “items.comments” 列中包含的样本 XML 数据,而 图 2 中则显示了 “clients.contactinfo” 列中包含的样本 XML 数据。随后的例子查询将引用这两个 XML 文档中的一个或两个中的特定元素。


图 1. 存储在 “items” 表的 “comments” 列中的样本 XML 文档
存储在 “items” 表的 “comments” 列中的样本 XML 文档


图 2. 存储在 “clients” 表的 “contactinfo” 列中的样本 XML 文档
存储在 “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 中启动
<a href='http://www.ibm.com/developerworks/cn/db2/zones/db2ii/index_old.html?S_TACT=105AGX52&S_CMP=w-cto' target='_blank' style='font-size:14px;text-decoration:none;color: #0000FF;'>DB2</a> Command Editor,可以从 <a href='http://www.ibm.com/developerworks/cn/db2/zones/db2ii/index_old.html?S_TACT=105AGX52&S_CMP=w-cto' target='_blank' style='font-size:14px;text-decoration:none;color: #0000FF;'>DB2</a> Control Center 中启动

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章