玉管通地理,朱笔点天文
        欢迎光临文天软件之家
 
全站搜索
联系方式


网 址:文天软件之家

    www.jh-lzf.com

联系人:文天(刘中甫)

邮 箱:jh-lzf@21cn.com

地 址:湖北·武汉

    中国石化·江汉油田

    石油工程技术研究院

    信息中心

  

天气信息
新闻详情
巧用PTSJ进行数据库连接
作者:舒新林 王兰 胡咏梅浏览数:26

巧用PTSJ进行数据表连接

湖北潜江向阳·江汉油田采油工艺研究院 舒新林 王兰 胡咏梅

摘 要:PTSJ是一个款可建立和管理Access、Xbase、Excel、Text等多种文件格式的数据库管理系统。通过实例简述了应用PTSJ进行文件格式转换及数据库多表连接的方法。

关键词:主表 次表 关键字 连接 PTSJ join

一、前言

劳资工作人员繁重的数据统计分析工作常常使人头晕眼胀、疲惫不堪,特别是低下的工作效率更使我心力憔悴、深感无助。现在好了!有PTSJ数据管理专家助我一臂之力,将我从低效、繁重的统计工作中解脱出来了,让我深深的感到从来没有的轻松与便捷!

PTSJ即“PTSJ通用数据库管理系统”的简称,它可管理Access(MDB)、Xbase(DBF)、Excel(XLS)、Text(TXT)等格式的文件。在天空软件站http://www.skycn.com/soft/16262.html及华军软件园http://www.newhua.com/soft/31060.htm,均可下载。此软件具有结构维护、查询检索、批量修改、格式转换、导入导出、记录合并、记录排序、数据统计、曲线处理、密码管理、字段开关与显示控制及多个数据表的连接等功能。这里主要向您介绍将两个数据表进行记录连接的方法。

二、记录连接概述

所谓数据表记录连接是指将主、次两个表中所有关键字段值相同的记录连接生成一个新的表,通常称为等值连接,亦称内连接(inner join)。

若将主、次两个表中所有关键字段值相同的记录连接生成一个新的表,并同时将主表中所有其它的记录也录入到这个新表中,则这种连接称为左连接(Left join)。

若将主、次两个表中所有关键字段值相同的记录连接生成一个新的表,并同时将次表中所有其它的记录也录入到这个新表中,则这种连接称为右连接(right join)。

1、交集连接

与一般数据库管理系统不同的是,PTSJ系统引入了“交集连接”与“全集连接”的概念。

交集连接是指将主、次两个表中所有关键字段值相同的记录连接生成一个新的表。这与各类数据库教材中有关多个数据表内连接(inner join)的概念一致。

连接方法是先在主、次两个表中各自选择一个关键字段(数据类型必须相同),然后从主表中第一条记录开始与次表中的第一条记录比较,若两个关键字段的值相同,则主表的当前记录与次表的当前记录按照主左次右的顺序连接产生一条记录写到新据表中,否则次表指针移到下一记录;重复上过程,直到次表记录比较完后,主表指针移到第二条记录,再与次表每条记录比较,直到主表所有记录都比较完为止。

2、全集连接

全集连接,是指将主、次两个表中所有出现过的关键字段值连接生成一个新的表。即全集连接=主表全集+次表的非交集部分。在全集连接完成后,系统会提示用户前面i条记录为“主表全集”记录,后面j条记录为“次表非交集”记录。

连接方法是先在主、次两个表中各自选择一个关键字段(数据类型必须相同),然后从主表中第一条记录开始与次表中的第一条记录比较,若两个关键字段的值相同,则将主表的当前记录与次表的当前记录按照主左次右(若颠倒主、次表,则可实现主右次左)的顺序连接产生一条记录写到新据表中,否则将主表当前记录直接写入到新数据表中,并将次表指针移到下一记录;重复上过程,直到次表记录比较完后,主表指针移到第二条记录,再与次表每条记录比较,直到主表所有记录都比较完为止;最后将次表中所有未在新表中出现过的记录写入新表中。

3、连接结果

假设现有A、B两个数据表(如表1职工花名册、表2职工工资表)。将A数据表中的关键字段(如“职工名称”列)与B数据表中的关键字段(如“姓名”列)进行比较。

交集连接时,若A、B两个数据表的关键字段值相同(如都为“张三”)时,则将A数据表中的当前记录(如表1中的第1行记录)与B数据表中的当前记录(如表2中的第4行记录)进行A左B右连接,生成一条新的记录存储到C数据表(如表3)中。如此反复直到比较完成。

全集连接时,若A、B两个数据表的关键字段值不相同,则直接将A表中的记录录入到C表(如表4)中;若A、B两表的关键字段值相同,则进行A左B右连接,生成一条新的记录存储到C数据表(如表4)中;比较完后,最后将B表中没有录入过的记录全部录入到C表(如表4)中。

表1. 职工花名册

职工名称

出生年月

工作时间

工作部门

文化程度

职称

联系电话

张三

1980-3-1

2002-8-1

部门一

大学

中级

12345678

李四

1980-3-2

2002-8-1

部门二

大学

中级

87654321

王五

1980-3-3

2002-8-1

部门三

大学

中级

69696969

赵钱

1980-3-4

2002-8-1

部门四

大学

中级

69696969

孙李

1980-3-5

2002-8-1

部门五

大学

中级

69696969

表2. 职工工资表

姓名

技能工资

岗位工资

绩效工资

扣缺勤

实发工资

张一

374

710

120

0

1204

李一

249

480

82

0

811

王一

160

510

52

0

722

张三

226

620

76

0

922

李三

338

710

116

0

1164

王三

175

530

52

0

757

赵钱

286

620

86

0

992

张五

216

480

67

0

763

李五

237

470

80

0

787

表3. 职工信息表(交集)

职工名称

出生年月

工作时间

工作部门

文化程度

职称

联系电话

技能工资

岗位工资

绩效工资

扣缺勤

实发工资

张三

1980-3-1

2002-8-1

部门一

大学

中级

12345678

226

620

76

0

922

赵钱

1980-3-4

2002-8-1

部门四

大学

中级

69696969

286

620

86

0

992

表4. 职工信息表(全集)

职工名称

出生年月

工作时间

工作部门

文化程度

职称

联系电话

技能工资

岗位工资

绩效工资

扣缺勤

实发工资

张三

1980-3-1

2002-8-1

部门一

大学

中级

12345678

226

620

76

0

922

李四

1980-3-2

2002-8-1

部门二

大学

中级

87654321






王五

1980-3-3

2002-8-1

部门三

大学

中级

69696969






赵钱

1980-3-4

2002-8-1

部门四

大学

中级

69696969

286

620

86

0

992

孙李

1980-3-5

2002-8-1

部门五

大学

中级

69696969






张一







374

710

120

0

1204

李一







249

480

82

0

811

王一







160

510

52

0

722

李三







338

710

116

0

1164

王三







175

530

52

0

757

张五







216

480

67

0

763

李五







237

470

80

0

787


三、记录连接方法

1、连接准备

首先,要连接的两个文件必须都是Access数据库格式,因此对于*.xls、*.txt及*.dbf等非Access文件,可先用PTSJ系统将它们转换为Access格式后再进行连接。文件格式转换方法是:

⑴、在PTSJ系统界面左侧的“文件”导航栏(图1)中,选择相应的文件类型(如*.xls)及文件路径,并在文件列表中点击要连接的文件后,则在右侧显示该文件的内容,在左下角显示文件的结构信息,如【5,7】代表文件有5行7列,即5条记录7个字段。

⑵、在系统界面左侧的“导入导出”导航栏(图2)中,选择“导出格式”为“mdb”。

⑶、再在“导入导出”菜单栏,点击“导出文件”,则会弹出“Excel 数据导出到Access文件(XLS→MDB)”对话框(图1),选择导出的Access文件名及储存位置,并点击“导出”命令键即可将当前打开的Excel文件转换为Access文件格式。


2、连接步骤

将要连接的文件格式转换成Access文件格式后,便可进行数据库连接了。选择菜单栏的“库表管理”中的“连接记录”,会出现对话框(图3)。

⑴、选择一个数据库文件中的一个表为主表,如选择图3右上部的下拉列表“花名册”。

⑵、选择另一个数据库文件中的一个表(或同一个数据库文件中的另一个表)为次表,如选择图3中部的下拉列表“工资表”。

⑶、在主表和次表中各选择一个数据类型相同的字段名为数据连接的关键字。如在主表中选择“职工名称”,在次表中选择“姓名”,即用人名作为比较的关键字。

⑷、选择数据连接方式,包括交集连接和全集连接两种方式。用户可分别选择,从而连接生成不同的结果。但注意修改为不同的文件名。

⑸、如果对多张表进行数据连接,可将上述连接的结果表(如职工信息表,可以修改文件名)定为主表再与其它表继续连接即可,注意文件保存的位置。

⑹、最后将完成的“职工信息表”通过PTSJ系统的“导入导出”功能,将Access文件转换为Excel文件,多张表的数据连接工作即告完成。

值得注意的是,在一张表有多个相同人名的情况下,必须在其姓名后增加识别记号,否则此姓名的连接数据将可能被多次重复连接,从而导致此姓名的连接数据不准确。

四、结论

在实际人事日常工作中使用全集连接时,可以将人员排列顺序紊乱的两张Excel表,应用PTSJ转换为“mdb”后,合并连接成为一张按自己要求的人员顺序排列,并可保证数据的完整性与准确性(如表四所示)。

以往我们是分别将两张Excel表按姓名排序,用眼睛查找对比,再用删除或插入单元格的方法人工进行员工数据合并连接工作。如果两张Excel表数据均多达几百行以上时,则不仅因工作量庞大,而使人非常疲劳,而且极易出现错误,产生多次重复工作。现在使用PTSJ连接功能,可以一次性完成此项工作,所需的时间短,准确性高,极大的提高了工作效率。

应用PTSJ进行数据库连接的方法,已在江汉油田劳资系统普遍推广应用。本文是我的一点使用心得,抛砖引玉,请大家多多指正。其实这只是该软件的一个功能,其它很多很好的功能不便在此详述。