用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧计算机应用

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

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 11:52:07
【本文由PB创新网为您整理】

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

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

当今数据库技术已成为计算机应用的核心技术,可以认为当今任何计算机信息系统和计算机应用系统都与数据库的应用分不开,数据库已成为其核心和基础。建立数据库应用系统是要充分利用数据库中的数据。对数据库中的数据进行的操作除增加(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)、籍贯(ZB01)、民族(GB3304)、婚姻状况(GB4766)、政治面貌(GB4762)、学历(GB4658)、工资变动文件(ZB52)和离退状态(GB12405)。它们的结构基本相同,每个表中都有两个字段,分别存储代码及内容。以性别为例:

表名:性别 编码:GB2261

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

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

code char 2 代码

comment char 4 内容

表中数据:

code comment

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

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

当这些静态表建成后,可得到完善的人员信息管理系统的数据模型,

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]

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

语句含义:根据WHERE子句中的条件表达式,从基本表(或视图)中找出满足条件的元组,按SELECT子句中的目标列,选出元组中的分量形成表。GROUP子句将结果按列名1分组,每个组产生结果表中的一个元组;ORDER子句使结果表按列名2升序或降序排列。 这是最基本的方法,只要能够对库操作,就可以实施所需要的查询。例如:想了解所有离退休人员的基本情况及他们的离退休费,可以键入如下语句:

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

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

1 林立

[1] [2] [3]  下一页

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:11,421.88000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号