• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >DB2 > 使用SQL查询DB2 9中的XML数据

使用SQL查询DB2 9中的XML数据

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了9中,郑州9中高中部,郑州9中国际部,石家庄9中,青岛9中等相关知识,希望本文的分享对您有所帮助
正在看的db2教程是:使用SQL查询DB2 9中的XML数据。

虽然 DB2 的混合体系结构与之前的版本有很大的不同,但是要利用它的新 XML 功能并不难。如果您已经熟悉 SQL,那么很快就可以将这方面的技能转化到对存储在 DB2 中的本地 XML 数据的处理上。通过本文就可以知道如何实现这一点。

DB2 Viper(就是DB2 9)中的 XML 特性包括新的存储管理、新的索引技术以及对查询语言的支持。在本文中,学习如何使用 SQL 或带 XML 扩展的 SQL(SQL/XML)查询 DB2 XML 列中的数据。接下来的文章将讨论 DB2 中新引入的对新兴的业界标准 XQuery 的支持,并探索 XQuery 在什么时候最有用。

您也许会感到惊讶,DB2 还支持双语查询 —— 即组合了来自 SQL 和 XQuery 的表达式的查询。至于应该使用哪种语言(或两种语言结合使用)取决于应用程序的需要,同时也取决于您本身所掌握的技能。其实,将两种查询语言中的元素组合到一个查询中并没有您想像的那么难。这样做还可以为搜索和集成传统 SQL 和 XML 数据提供强大的能力。

Sample 数据库

本文中的查询将访问在 “DB2 Viper 快速入门”(developerWorks,2006 年 4 月)中创建的 sample 数据库。这里我们简短地回顾一下,sample 数据库中 "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 文档

使用SQL查询DB2 9中的XML数据(图一)

图 2. 存储在 "clients" 表 "contactinfo" 列中的示例 XML 文档

使用SQL查询DB2 9中的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 启动

使用SQL查询DB2 9中的XML数据(图三)

纯 SQL 查询

即使您对 SQL 所知有限,也仍然可以很轻松地查询 XML 数据。例如,下面的查询选择 "clients" 表中的全部内容,包括存储在 "contactinfo" 列的 XML 信息:

清单 2. 简单的 SELECT 语句



select * from clients



当然也可以编写更具选择性的 SQL 查询,使之包含关系投影和限制操作。下面的查询检索所有具有 "Gold" 状态的客户的 ID、姓名和联系方式。请注意,"contactinfo" 列包含 XML 数据,而其他两列不包含 XML 数据:

清单 3. 带投影和限制的简单 SELECT 语句



select id, name, contactinfo

from clients

where status = 'Gold'



正如您所预料,您可以基于这样的查询创建视图,下面的 "goldview" 可以说明这一点:

清单 4. 创建包含 XML 列的视图



create view goldview as

select id, name, contactinfo

from clients

where status = 'Gold'



不幸的是,很多事情光用 SQL 是无法解决的。通过纯 SQL 语句可以检索整个 XML 文档(刚才已证明这一点),但是却不能指定基于 XML 的查询谓词,也不能检索 XML 文档的某一部分或者 XML 文档中特定的元素值。换句话说,使用纯 SQL 不能对 XML 文档中的片段进行投影、限制、连接、聚集或排序操作。例如,您不能单独检索 Gold 客户的 email 地址或居住在邮政编码为 "95116" 的地区的客户的姓名。为了表达这些类型的查询,需要使用带 XML 扩展的 SQL(SQL/XML)、XQuery 或结合使用这两种查询语言。

下一节将探讨 SQL/XML 的几个基本特性。在接下来的文章中,我们将学习如何编写 XQuery 以及如何将 XQuery 与 SQL 结合使用。

SQL/XML 查询

顾名思义,SQL/XML 被设计用来为 SQL 和 XML 两者之间搭一座桥。它首先是 SQL 标准的一部分,经过演化现在包括将 XQuery 或 XPath 表达式嵌入 SQL 语句的规范。XPath 是用于导航 XML 文档以便发现元素或属性的一种语言。XQuery 包括对 XPath 的支持。

请务必注意,XQuery(和 XPath)表达式是大小写敏感的。例如,引用 XML 元素 "zip" 的 XQuery 并不适用于名为 "ZIP" 或 "Zip" 的 XML 元素。SQL 程序员有时候很难记住大小写敏感这一点,因为 SQL 查询语法允许使用 "zip"、"ZIP" 和 "Zip" 来引用同一个列名。

DB2 Viper 提供了超过 15 个 SQL/XML 函数,通过这些函数可以搜索 XML 文档中的特定数据,将传统数据转换成 XML,将 XML 数据转换成关系数据,以及执行其他有用的任务。本文不讨论 SQL/XML 的所有方面,而只是谈到几种常见的查询挑战

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 使用SQL查询DB2 9中的XML数据
  • 全面解析IBM DB2 9中的查询优化新特性

相关文章

  • 2017-06-28DB2数据库SQL编码优化基础
  • 2017-06-28使用服务器辅助的客户端重定向实现 DB2 的无限制扩展
  • 2017-06-28DB2 9.5 中多线程架构的工作原理
  • 2017-05-11DB2 9产品说明书在线参考地址(http)
  • 2017-06-28Linux上实现DB2双机HA完整方案
  • 2017-06-28DB2高可用性灾难恢复(HADR)的限制
  • 2017-06-28DB2 命令行处理器(CLP)中的常用命令
  • 2017-06-28DB2 大事记
  • 2017-06-28轻松掌握DB2数据库中的数据移动
  • 2017-06-28如何为 DB2 Cube Views 构建元数据桥

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • DB2 XML 全文搜索之为文本搜索做准备
    • DB2数据库性能优化的几个小技巧
    • DB2与PostgreSQL开发的异同
    • DB2中创建一个汉字拼音首字母的SQL函数
    • 调优联邦查询
    • 将 Siebel 7 电子商务应用程序从 DB2 UDB V8 迁移到 DB2 9
    • DB2 9数据服务器发展3部曲
    • IBM DB2前世今生之分布式平台的DB2
    • 详解DB2在AIX上如何卸载并重新安装
    • 如何在DB2中更新执行计划

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有