位置: 编程技术 - 正文

使用SQL查询DB2 9中的XML数据(使用SQL查询学生的姓名)

编辑:rootadmin
正在看的db2教程是:使用SQL查询DB2 9中的XML数据。

推荐整理分享使用SQL查询DB2 9中的XML数据(使用SQL查询学生的姓名),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:db2查询sql执行记录,使用SQL查询数据库,使用SQL查询年龄最大学生的姓名,使用SQL查询年龄最大学生的姓名,使用SQL查询各工作时间的员工人数,使用SQL查询学生的姓名,使用SQL查询103水手,使用SQL查询的优点是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

虽然 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, 年 4 月)中创建的 sample 数据库。这里我们简短地回顾一下,sample 数据库中 "items" 和 "clients" 表的定义:

清单 1. 表的定义 create table items (id int primary key not null, brandname varchar(), itemname varchar(), sku int, srp decimal(7,2), comments xml)create table clients(id int primary key not null, name varchar(), status varchar(), contactinfo xml)

图 1 显示了 "items.comments" 列中的示例 XML 数据,图 2 显示了 "clients.contactinfo" 列中的示例 XML 数据。随后的查询例子将引用其中某个 XML 文档或这两个文档中某些特定的元素。

图 1. 存储在 "items" 表 "comments" 列的示例 XML 文档图 2. 存储在 "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 启动 使用SQL查询DB2 9中的XML数据(使用SQL查询学生的姓名)

纯 SQL 查询

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

清单 2. 简单的 SELECT 语句select * from clients

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

清单 3. 带投影和限制的简单 SELECT 语句select id, name, contactinfo from clientswhere status = 'Gold'

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

清单 4. 创建包含 XML 列的视图create view goldview as select id, name, contactinfo from clientswhere status = 'Gold'

不幸的是,很多事情光用 SQL 是无法解决的。通过纯 SQL 语句可以检索整个 XML 文档(刚才已证明这一点),但是却不能指定基于 XML 的查询谓词,也不能检索 XML 文档的某一部分或者 XML 文档中特定的元素值。换句话说,使用纯 SQL 不能对 XML 文档中的片段进行投影、限制、连接、聚集或排序操作。例如,您不能单独检索 Gold 客户的 email 地址或居住在邮政编码为 "" 的地区的客户的姓名。为了表达这些类型的查询,需要使用带 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 提供了超过 个 SQL/XML 函数,通过这些函数可以搜索 XML 文档中的特定数据,将传统数据转换成 XML,将 XML 数据转换成关系数据,以及执行其他有用的任务。本文不讨论 SQL/XML 的所有方面,而只是谈到几种常见的查询挑战

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

如何访问大型机、小型机上的DB2 9数据服务器 正在看的db2教程是:如何访问大型机、小型机上的DB数据服务器。数据库连接工具软件DB2connect的基本特性是为桌面应用程序和服务主机的数据库服务器

DB2 9(Viper)快速入门 正在看的db2教程是:DB(Viper)快速入门。为了帮助您快速掌握DB2自身的XML特性,请完成几个普通的任务,比如:创建用于管理XML数据的数据库对象,包

段云峰:DB2 9对企业有3点帮助 正在看的db2教程是:段云峰:DB对企业有3点帮助。段云峰于年获得北京邮电大学博士学位,年获得北京大学信息与通信工程专业博士后学历。在

标签: 使用SQL查询学生的姓名

本文链接地址:https://www.jiuchutong.com/biancheng/319697.html 转载请保留说明!

上一篇:DB2 9产品说明书在线参考地址(http)(db2 -952)

下一篇:如何访问大型机、小型机上的DB2 9数据服务器(如何访问一台网络上的电脑)

  • 合伙企业转让股权如何缴税
  • 管道燃气工程设计方案
  • 通行费发票抵扣要勾选认证吗
  • 公司汽车购置税怎么交
  • 资产评估费怎么收
  • 企业收到劳务费发票账务处理
  • 免抵退税额为什么等于出口价乘以退税率
  • 建筑类没收入怎么填
  • 收到客户承兑怎么做账
  • 没有签字的支出凭证怎么处理?
  • 发票打印机分专票和普票的吗?
  • 企业租车费用怎么处理方法
  • 冲红的电子发票要怎么处理
  • 代开的专票开错了怎么办?
  • 建材公司将自产产品卖出
  • 怎么计算房地产公司可以贷款多少
  • 发票请求流水号不能为空
  • 会计里面红字冲销是什么意思
  • 固定资产清理账面价值怎么算
  • 出租房产业务企业所得税如何处理?
  • 个体工商户做账可以做工资吗
  • 资产负债表里的年初余额是什么意思
  • 备抵法计提坏账准备的公式
  • 王者荣耀中墨子的最强出装
  • 电脑无损音乐播放软件哪个最好
  • 承兑汇票可以入个人账户吗
  • php反序列化pop链
  • 计提工资时怎么做账
  • 申请一般纳税人公司流程
  • 工会会员会费缴费证明怎么开
  • 纳税人解除劳动合同证明
  • 资金运动包括哪几个方面
  • vue3项目打包
  • 勃艮第蜗牛干红葡萄酒
  • php的缓存文件是什么格式
  • php两个数组相加结果
  • 销项冲红可以退税吗?
  • 混合销售会计处理
  • 免税企业所得税的有
  • nginx配置tp5
  • 担保余值计算公式
  • 高新企业研发人员学历要求
  • php中exec
  • zend framework手册
  • 【C#+JavaScript+SQL Server】实现Web端在线考试系统 五:考试模块设计(附源码和资源)
  • 六款小巧的HTTP Server[C语言] 贵贵的博客 开发|架构|开源|共享
  • 单位之间的争议由谁处理
  • 咨询服务费怎么交税
  • 业务招待费列支不规范
  • 收到赔偿金怎么写收据?
  • 土地增值税预缴计税依据
  • 增值税普票税额可以抵扣税吗
  • 基建并账时用交付使用资产对冲基建拨款
  • 增值税进项发票不够抵扣怎么办
  • 建筑业无票收入收货款分录
  • 个人所得税不需要汇算清缴
  • 社保小微企业优惠政策
  • 支付广告费属于进项还是销项
  • 签劳动合同的员工有哪些
  • 其他流动资产为什么包括应交增值税
  • 固定资产增加的方式有
  • mysql指定查询
  • mysql查询慢的优化方案
  • windows server2008 64位没有安装音频怎么办?
  • 安装nfs命令
  • ubuntu中如何设置克隆屏
  • windows找不到cmd怎么办
  • macbook的dock栏
  • linux链接分为什么和什么
  • Android一分钟环境搭建,包含Mac、Linux、Windows
  • css英文代码翻译
  • c#中thread的用法
  • unity的ugui
  • 资源税包括哪些
  • 深圳市福田区税务局电话
  • 小规模开票税金怎么算
  • 进项税小于销项税
  • 车船税与船舶吨税法律制度ppt
  • 融资租赁公司购入老旧租赁资产会计处理
  • 党建税收宣传
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设