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 文档 [img]http://i5w.net/shujuku/database_pic/200609/2006918234556506.gif[/img] 图 2. 存储在 "clients" 表 "contactinfo" 列中的示例 XML 文档 [img]http://i5w.net/shujuku/database_pic/200609/2006918234556728.gif[/img] [b]查询环境 [/b] 本文中的所有查询都是交互式地发出的,您可以通过 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 启动 [img]http://i5w.net/shujuku/database_pic/200609/2006918234557272.gif[/img] [b]纯 SQL 查询[/b] 即使您对 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 结合使用。 [b]SQL/XML 查询[/b] 顾名思义,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 的所有方面,而只是谈到几种常见的查询挑战 [b][1] [url=http://www.1sucai.cn/shujuku/db2/shujuku_165224_2.html][2][/url] [url=http://www.1sucai.cn/shujuku/db2/shujuku_165224_3.html][3][/url] [url=http://www.1sucai.cn/shujuku/db2/shujuku_165224_4.html][4][/url] [url=http://www.1sucai.cn/shujuku/db2/shujuku_165224_5.html][5][/url] [url=http://www.1sucai.cn/shujuku/db2/shujuku_165224_6.html][6][/url] [url=http://www.1sucai.cn/shujuku/db2/shujuku_165224_2.html]下一篇[/url] [/b]
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有