DB2 9 底子(730 磨练)认证指南,第 7 部分: XQuery 简介(3)
![]()
示例数据库环境
为了帮忙您学习 XQuery,本教程建立一个包括 XML 文档的 “clients” 示例表。上面几节具体地评释这个表及其内容,并描绘 DB2 供给的可以用来执行 XQuery 的效果。
如果进展在本身的 DB2 系统中设置这个示例表和内容,那么可以运用脚本 tutorial.sql。它包括本节所示的一切代码。
示例表
示例中的 clients 表包括几个传统 SQL 数据典范(例如整数和可变长度的字符串)的列,尚有一个新的 SQL “XML” 数据典范的列。
前三列记载客户的 ID、姓名和形态信息。status 列的典范值搜罗 Gold、Silver 和 Standard。第四列包括每个客户的联结信息,例如家庭的邮政所在、电话号码、电子邮件所在等等。这些信息存储在良构的 XML 文档中。
上面是 clients 表的定义:
清单 9. clients 表的定义
create table clients(
id int primary key not null,
name varchar(50),
status varchar(10),
contactinfo xml
);
示例 XML 文档
在研讨怎样编写针对这个表的 XQuery 之前,需求用一些示例数据添补它。上面的 SQL 语句将 6 行数据拔出 clients 表。每行都包括一个 XML 文档,每个 XML 文档的构造都有所分歧。例如,有的客户有电子邮件所在,而其他客户没有。
清单 10. clients 表的示例数据
insert into clients values (3227, 'Ella Kimpton', 'Gold',
'<Client>
<Address>
<street>5401 Julio Ave.</street>
<city>San Jose</city>
<state>CA</state>
<zip>95116</zip>
</Address>
<phone>
<work>4084630000</work>
<home>4081111111</home>
<cell>4082222222</cell>
</phone>
<fax>4087776666</fax>
<email>love2shop@yahoo.com</email>
</Client>'
);
insert into clients values (8877, 'Chris Bontempo', 'Gold',
'<Client>
<Address>
<street>1204 Meridian Ave.</street>
<apt>4A</apt>
<city>San Jose</city>
<state>CA</state>
<zip>95124</zip>
</Address>
<phone>
<work>4084440000</work>
</phone>
<fax>4085555555</fax>
</Client>'
);
insert into clients values (9077, 'Lisa Hansen', 'Silver',
'<Client>
<Address>
<street>9407 Los Gatos Blvd.</street>
<city>Los Gatos</city>
<state>CA</state>
<zip>95032</zip>
</Address>
<phone>
<home>4083332222</home>
</phone>
</Client>'
);
insert into clients values (9177, 'Rita Gomez', 'Standard',
'<Client>
<Address>
<street>501 N. First St.</street>
<city>Campbell</city>
<state>CA</state>
<zip>95041</zip>
</Address>
<phone>
<home>4081221331</home>
<cell>4087799881</cell>
</phone>
<email>golfer12@yahoo.com</email>
</Client>'
);
insert into clients values (5681, 'Paula Lipenski', 'Standard',
'<Client>
<Address>
<street>1912 Koch Lane</street>
<city>San Jose</city>
<state>CA</state>
<zip>95125</zip>
</Address>
<phone>
<cell>4085430091</cell>
</phone>
<email>beatlesfan36@hotmail.com</email>
<email>lennonfan36@hotmail.com</email>
</Client>'
);
insert into clients values (4309, 'Tina Wang', 'Standard',
'<Client>
<Address>
<street>4209 El Camino Real</street>
<city>Mountain View</city>
<state>CA</state>
<zip>95033</zip>
</Address>
<phone>
<home>6503310091</home>
</phone>
</Client>'
);
查询环境
本教程中的一切查询都设计为交互式地执行。可以经过议定 DB2 号令行处置步伐或 DB2 Control Center 的 DB2 Command Editor 执行这些查询。本教程中的示例运用 DB2 号令行处置步伐。(DB2 还供给了基于 Eclipse 的 Developer Workbench,可以帮忙您以图形化体式款式构造 XQuery,然则对 Developer Workbench 的评论斗嘴超越了本教程的规模。)
可以改削 DB2 号令行处置步伐的默许设置,以便更随意纰漏处置 XML 数据。例如,上面的号令(从一个 DB2 号令窗口中收回)将以某种体式款式启动 DB2 号令行处置步伐,这种体式款式让 XQuery 成绩以随意纰漏阅读的款式表现:
清单 11. 设置 DB2 号令行处置选项
db2 -i -d
这个号令使 DB2 在表现的 XQuery 成绩中增添分外的空白。DB2 实践上并不将这些空白添加到数据中。运用步伐看到的前去条目中也没有分外的空白 —— 这些空白只出如今 DB2 号令行处置步伐窗口中。
版权声明:
原创作品,赞成转载,转载时请务必以超链接方法标明文章 原始来因 、作者信息和本声明。否则将穷究功令责任。

浙公网安备 33010602011771号