关于 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 文档管理
图 2. 储存在 “clients” 表的 “contactinfo” 列中的样本 XML 文档管理
查问环境
本文中的从头至尾查问都是通过互为点子发出的。这可以通过 DB2 传奇gm命令是多少行电子水水处理器或 DB2 Control Center 的 DB2 Command Editor 来完成。本文中的屏幕图象和说明书主要动用后一种点子。(DB2 Viper 还次要了一个基于 Eclipse 的 Developer Workbench,它可以受助程序员以图形化的点子构造查问。本文不讨论应用程序初始化失败开拓问题和 Developer Workbench。)
要动用 DB2 Command Editor,启动 Control Center,并增选 Tools -> Command Editor。这苹果7什么时候上市将迭出如 图 3 所示的哨口。在上面的面板中输入查问,单击左上角英文的绿色图片鼠标箭头图案载入运行该查问,后来可以在下面的面板中恐怕在 “Query Results” 选项卡中验证输出。
图 3. DB2 Command Editor,可以从 DB2 Control Center 中启动
XQuery 例子
与在 “用 SQL 查问 DB2 XML 数据” 中一样,本文将日趋讲授一些习以为常的sp增值业务许可证场景,并展示何以动用 XQuery 来满足对 XML 数据的请求。本文还探赜索隐了要求将 SQL 置于在 XQuery 中的更纷纭复杂的情景。
XQuery 提供了一些敌众我寡类型的明码式,这些明码式可以随意组合。每种明码式赶回一系列的值。这些值又可以一言一行另一个明码式的输入。最浮头儿的明码式的结果就是查问的结果。
本文主要讨论两种重中之重的 XQuery 明码式:“FLWOR” 明码式和路径明码式。FLWOR 明码式特有像 SQL 中的 SELECT-FROM-WHERE 明码式 ―― 它用来对由多项组成的一个列表进行迭代。并且可以增选赶回通过在每一项上进行准备得到的值。而路径明码式则可以在分层的 XML 物质期间进行导航,并赶回在路径末端找还的物质。
与 SQL 中的 SELECT-FROM-WHERE 明码式类似,XQuery FLWOR 明码式可以暗含数个以某个水源词作文开头的子句。在 FLWOR 明码式中,有偏下用来一言一行子句作文开头的volatile关键字:
新闻大求真热点小说坊
疑难解答
图片精选