教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 利用工具进行数据库数据的复杂查询

利用工具进行数据库数据的复杂查询

上传者:网友
|
翻新时间:2022-10-19

利用工具进行数据库数据的复杂查询

利用工具进行数据库数据的复杂查询 利用工具进行数据库数据的复杂查询 利用工具进行数据库数据的复杂查询利用工具进行数据库数据的复杂查询 天津钢管公司 王保安

摘要: 数据库应用系统中数据的复杂查询问题,长期困扰着使用者和开发者。本文通过具体问题,论述了实现复杂查询的方法,同时论证了各种方法的特点及适用范围。

关键词:查询 动态 数据窗口

当今数据库技术已成为计算机应用的核心技术,可以认为当今任何计算机信息系统和计算机应用系统都与数据库的应用分不开,数据库已成为其核心和基础。建立数据库应用系统是要充分利用数据库中的数据。对数据库中的数据进行的操作除增加(Insert)、更改(update)和删除(delete)外,最常用,也是重要的是查询操作。即便是最简单的数据库应用系统,也离不开查询功能,查询可以说是进行数据管理的重要手段,不过也是数据库应用系统开发过程中较困难、花时间、有一定难度的部分。

1. 问题的描述

某单位根据上级部门的要求建立人员信息管理应用系统,它是人事管理信息系统(Personnel Management Information System)的子系统。人员信息管理系统是对人员所有信息的全面管理,包括:基本信息、培训或进修信息、履历信息、工资变动信息、离退信息、家庭成员及社会关系信息等等。根据中共中央组织部颁布的全国组织、干部、人事管理信息系统信息结构体系的要求,对人员的信息描述共有43个信息集(对应43张表),426个数据项,本文根据数据库设计的要求进行加工,只列出3张表(table)。

1)表名:基本信息 编码:personnel

主码 字段编码 数据类型 长度 字段名称

personnel_id char 9 人员代码

name varchar 20 姓名

sex char 1 性别

birthday datetime 出生日期

native_place char 6 籍贯

nationality char  2 民族

marriage char 1 婚姻状况

 workday datetime 参加工作时间

 party char 2 政治面貌

 graduaton char 2 学历

 department char 30 所在单位

 identification char 15 身份证号

 cul_field char 6 培训专业

(2)表名:工资变动信息 编码:wages

主码 外码 字段编码 数据类型 长度 字段名称

* * personnel_id char 9 人员代码

sa_id char 3 人员内码

change_day datetime 工资变动日期

sa_file_num char 3 工资变动文件

salary money  工资

3)表名:离退信息 编码:retirement

主码 外码 字段编码 数据类型 长度 字段名称

* * personnel_id char 9 人员代码

ret_day datetime 离退日期

rel_style char 2 离退类别

pay money 离退休费

comment text 离退说明

表名:性别 编码:GB2261

字段编码 数据类型 长度 字段名称

-------------------------------

code char 2 代码

comment char 4 内容

表中数据:

code comment

----------------

男性

女性

这些代码表一旦建立,表中数据对应用来讲是相对不变的,所以称为静态表。在需要的时候,静态表的数据可以修改,一般放在维护中进行。

当这些静态表建成后,可得到完善的人员信息管理系统的数据模型,如图1所示。(略)

2.使用SQL语句

SQL(Structured Query Language)语言是1974年由Boyce和Chamberlin提出的,并在IBM公司San Jose Research Laboratory研制的System R上实现了这种语言。由于它功能丰富,语言简洁,使用方式灵活而倍受青睐,并扎根于计算机工业界及计算机用户。

SQL是集数据操纵(Data Manipulation)、数据定义(Data Definition)与数据

控制(Data Control)为一体的关系数据语言。查询是数据操纵语言中最主要的部分。从SQL的英文名称:结构化的查询语言,即能看出SQL在查询中的贡献,可以说数据库查询语句是SQL语言的核心。

 SQL查询语句只使用命令动词,SELECT

一般格式: SELECT〈目标列〉

FROM〈基本表(或视图)〉

[WHERE〈条件表达式〉]

[GROUP BY〈列名1〉[HAVING〈内部函数表达式〉]]

[ORDER BY〈列名2〉ASC|DESC]

格式说明:〈〉中的内容为根据需要的具体内容;[]中的内容为可选项。

SELECT DISTINCT retirement.personnel_id,name,sex,

birthday,workday,retirement.pay

FROM personnel,retirement

WHERE personnel.personnel_id=retirement.personnel_id

执行后得到下列列表,显示所需信息:

personnel_id name sex birthday workday pay

-------------------------------------------

13 安 静 2 1935/05/04 1954/11/13 457.30

但这种方法要求操作者对数据库的结构有充分的了解,例此数据库有多少个表,有多少个数据项,这些数据项分别属于哪一个表等。显然,这是数据库管理员的工作范畴。对用户,即使了解SQL语法,也只能完成简单的查询,对复杂的查询工作简直是望尘莫及了。也就是说单单是SQL语句,并不能很好地完成数据库的复杂查询,必须要与其他技术配合使用。另外,使用SQL语句进行查询,只能直接反映每一列的信息,而我们的43张基本表是尽可能地保存代码以保证数据的规范且节约存储空间。也就是说,我们能得到准确的查询结果,但得到地却是整篇的代码(例上表中的sex列),这对开发者和使用者都难以接受。如果能够将整篇的代码自动转换成所表达的文字,那当然是再好不过了。

3. 借助PowerBuilder实现综合信息的查询

目前,随着工具软件的发展和广泛采用,使数据库应用系统的开发如虎添翼,其中PowerBuilder以其独特的数据窗口(DataWindow)倍受欢迎。

PowerBuider是美国著名的数据库应用开发工具生产厂家Powersoft公司于1991年6月推出的功能强大、性能优异的开发工具,它是一种面向对象的、具有可视图形界面的、快速的交互开发工具。智能化的数据窗口对象是其精华所在。利用此对象可以操作关系数据库的数据而无需写入SQL语句,即可以直接检索、更新和用多种形式表现数据源中的数据。但要注意,必须使数据窗口成为窗口(Window)下数据窗口控制的一个连接对象,数据窗口才能使用户在应用执行期间访问数据库中的数据。

用这种方法实现查询优点突出,例:通过设置数据窗口中对应列的编辑风格(

Edit Styles)为相应的下拉式数据窗口(DropDownDataWindow),使显示的元组文字化。注意,这要事先建好下拉式数据窗口。设置数据窗口中对应列的编辑风格同样可满足其它显示需要。利用数据窗口的风格特点:查询表的列宽、列序可自由改变,甚至可以覆盖掉一些列,以达到更满足查询显示的需要。

4. 动态查询的实现

在某些实际的应用系统开发中,由于用户在开发前提不出查询的需求,而在系统运行中希望能够对所有的数据项任意组合进行查询,以满足来自多方的需求,实现动态地查询(即随机地从43张表中选择数据项进行组合作为查询条件并任意地选择数据项作为显示条目)。对于此类查询的实现要利用PowerBuilder通过编程的方式在运行时动态地创建数据窗口,并动态地控制数据窗口。

动态地创建一个数据窗口,应用程序需要执行下列任务:

·动态地构造SQL语句。

·用符合数据窗口语法的字符串,为现在的数据窗口控制创建一个数据窗口对象。具体实现如下:

1)动态地生成SQL语句,根据SQL的语法:SELECT stringa

FROM stringb

WHERE stringc

在实现的过程中:为贴近实际应用,习惯上,先输入查询条件,再输入显示条目。即在输入查询条件后,生成strinc2,stringb,stringc1;然后,再在输入显示条目后生成stringa,并修改stringc1,stringb。最后形成SQL语法:

str="select"+stringa+"from"+stringb+"where"+stringcl+stringc2

2)在现在的事物对象里利用相关的SyntaxFromSQL()函数生成符合数据窗口语法的字符串:

 exp=syntaxfromsq1(sq1ca,str,strsty,error)生成数据窗口的源代码

其中:strsty为数据窗口的显示风格,例:

3) 创建数据窗口对象

dw_que.create(exp)

这样就实现了用户要求的随机查询。

在真实系统中,用户在输入查询条件时希望通过选项方式录入查询信息,由于库表中存放的大量信息为代码,这就需要在程序中先把录入的文字信息转化成相应的代码再连接到查询条件中。为简化输入,提高准确性,可采用代码输入,即动态地嵌套下拉式数据窗口。在显示查询结果的数据窗口中,事先不能嵌套下拉式数据窗口,可预先做一个函数,在程序运行中根据所选的列把代码转化成所对应的汉字显示,这样更完善了用户要求的随机查询。

根据数据窗口的动态特性,对于那些运行时才能确定的数据窗口采用动态方式创建,使应用程序能更灵活地满足用户的需求。

5. 小结

使用SQL语句是查询操作的基础,但如何根据查询的要求自动的构造最贴切的SQL语句是问题的关键。利用PowerBuilder中的数据窗口使问题简化,如何通过嵌入动态生成的SQL语句动态地生成数据窗口是解决问题的根本。将查询条件的输入实现多级菜单选择将查询结果文字化,使复杂查询问题解决得更完善。动态查询的方法,不仅能应用于人事管理信息系统,同时也是解决其他需要复杂查询的数据库应用系统的途径。这种动态查询方法的在数据库应用系统的使用,避免了应用系统开发中开发者冥思苦想所有可能的查询条件,而系统运行中用户总遇到有些查询要求无法满足的矛盾。动态查询的实现,缩短了开发周期,减少了产品维护的工作。

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

成长的烦恼
迷人的彩虹桥
即将绝版的三峡
父母少年时期的烦恼
成长的烦恼
成长的烦恼
今夜星光灿烂
成长的烦恼
成长的烦恼
成长的烦恼
爸爸妈妈少年时期的烦恼
成长的烦恼
朋友的烦恼
成长的烦恼
成长的烦恼
优秀班主任工作总结反思
一年级上半学期教学管理工作总结
美术特长生培养工作总结
大二宣传委员工作总结
顶岗实习外国语中学小组长工作总结
2011年全区基层党建工作总结
小学优秀班主任工作总结
幼儿园大三班班级工作总结
班主任工作总结与反思
2011年小学安全工作总结
2011教学工作室工作总结
2011年学校卫生工作总结
工商业联合会申报经济服务工作奖工作总结
村主任助理工作总结
2011年油气厂装置检修工作总结
建筑房建资料员流程
浅议雨期建筑施工应采取的安全措施
建筑的本质
厂房装修前要做好的几点
对建筑学学生的建议
某安置小区工程监理月报
房建—建设工程文件归档内容一览表
建筑设计中的自然通风
建筑工程平屋顶的排水方式
建筑施工中易出现的结算纠纷及防范对策
鲁班安装算量软件百招大集合
某小区回迁楼工程监理月报
酒店式公寓楼工程监理工作总结
项目沟通管理的程序与方法
对施工经验的浅谈
《惊弓之鸟》 知识点精析
《惊弓之鸟》 整体阅读感知
《路旁的橡树》 考点练兵2
《路旁的橡树》同步作文 写作指导及训练素材
《惊弓之鸟》 重难点分析
《惊弓之鸟》 教学设计2
《惊弓之鸟》同步作文 范文习作
《惊弓之鸟》同步作文 训练素材
《路旁的橡树》 考点练兵1
《惊弓之鸟》 教学设计1
《惊弓之鸟》 重点问题探究
《惊弓之鸟》同步作文 写作指导
《路旁的橡树》同步作文 范文习作
《惊弓之鸟》 考点练兵2
《惊弓之鸟》 考点练兵1