admin 管理员组文章数量: 1184232
2024年5月17日发(作者:ios 进程和线程的区别)
龙源期刊网
Access中不匹配项查询的三种方法
作者:马鹏卫
来源:《软件导刊》2013年第01期
摘要:查找两个表之间不匹配项数据是全国计算机等级考试二级Access上机考题中新增
加的考点,属于考试大纲之外,相对于其它查询试题来讲较难。通过对试题的分析,从三个角
度分别给出了解决方法。
关键词:等级考试;Access;匹配查询
中图分类号:TP301文献标识码:A文章编号:16727800(2013)001002302
0引言
最近几次全国计算机等级考试二级Access上机考题中频频出现了一类查询,题目要求从
两个表中找出不匹配项数据。比如“samp2数据库中有tStud和tScore两个表,创建一个查询,
查找没有任何选课的学生的„学号‟和„姓名‟两个字段信息”,好多考生反映此类题貌似简单,但
却无从下手。
1题目分析
题目中给出了两个表:一个是表示学生基本信息的tStud表(包含学号、姓名、性别等字
段,学号是主关键字段);另一个是表示学生各门课成绩的tScore表(包含学号、课程号和成
绩3个字段,学号和课程号是组合关键字段)。
题目要求查找“没有任何选课的学生”,那么首要的问题就是如何判断学生是否选了课。
tScore表中列出的是学号、课程号和成绩3个字段,并且每个字段值均非空,此表同时表明如
果哪个学生选了课,那么在表中就有他的学号、课程号和成绩的相应信息。然而tStud表中包
含的却是所有学生信息,因此,“没有任何选课的学生”的含义就是该学生在tScore表没有相应
的记录,也就是说tStud表中的学号在tScore表中没有出现过,转换为查询中的条件就是tStud
表中的学号不在tScore表的列表当中。
2解决办法
通过前面的分析,对于此问题有以下3种解决方法:
(1)子查询。首先根据题目要求在设计网格中添加tStud表中的“学号”和“姓名”两个字
段,由于“没有任何选课的学生”的含义是tStud表中的学号不在tScore表的列表当中,所以可
设置“学号”的条件是“NotIn(SELECT学号FROMtScore)”,如图1所示。
龙源期刊网
该子查询对应的SQL语句是:
SELECTtStud.学号,tStud.姓名
FROMtStud
WHEREtStud.学号NotIn(SELECT学号FROMtScore)
的国产手机各品牌的机型,非常适合于中国低端手机用户,而且软件使用简单方便,适用
于一般的微型课程开发者。
表1几款开发工具之比较
12开发资源
通用性12使用方便
程度12是否需要
编程12是否
免费12是否支
持视频FlashLite12是12不方便12是12是12是LAM软件12是12方便12否12否12是
亘天炫彩12是12方便12否12是12否参考文献:
[1]杨长秀,白凤翔.基于手机彩信的微型课程资源设计初探[J].教育技术,2010(6).
[2]王珍珍,杨雪,傅健.基于FlashLite的移动学习资源开发研究[J].现代教育技术,2009
(4).
[3]董坤坤,戴心来,陈恳.基于LMA软件的移动学习资源设计[J].现代教育技术,2009
(6).
[4]陈向东.网络环境下的跨学科知识共享工具比较——信息行为的视角[J].图书情报工作,
2007(2).
[5]吴欣怡.基于LAM的实践英语移动学习资源的设计与开发[D].济南:山东大学,2011.
[6]杨文正,邹霞.移动学习资源开发的新型技术[J].现代教育技术,2007(11).
龙源期刊网
[7]丁雪全,甘霖,史如玉.用于学位论文格式转换工具比较[J].电脑知识与技术,2010
(3).(责任编辑:杜能钢)
图1子查询
(2)选择查询。首先,在查询设计视图中添加tStud表的学号和姓名字段、tScore表的学
号字段;其次,打开“视图”菜单的“联接属性”命令,在“联接属性”窗口中选择第二项“包括
„tStud‟中的所有记录和„tScore‟中联接字段相等的那些记录。”(图2)。它表示的含义是列出
tStud表所有的学生记录,其中包含了选课和没选课的学生,而题目只要求没有选课的学生,
所以查询设计视图中应在tScore表的条件行输入“IsNull”,以表示只显示没有选课的学生。然
后,为使tScore表的学号字段不在查询结果中重复显示,应将tScore表的学号字段设置为不显
示。
图2联接属性
该选择查询对应的SQL语句是:
SelecttStud.学号,tStud.姓名
FromtStudLeftJointScoreONtStud.学号=tScore.学号
WheretScore.学号IsNull
(3)查找不匹配项查询向导。既然“没有任何选课的学生”的含义就是学生在tScore表没
有相应的记录,也就表示tStud表中与tScore表不匹配的记录就是没有选课的学生,那么可以
利用“查找不匹配项查询向导”来简单地完成。
单击数据库窗口中的“新建”按钮,在弹出的“新建查询”对话框中选择“查找不匹配项查询
向导”。在“查找不匹配项查询向导”第一个对话框中双击“tStud表”;在第二个对话框中双击
“tScore表”;在第三个对话框中分别选择两表的“学号”字段,然后单击“”按钮,即两表匹配的
字段是“学号”;在第四个对话框选择查询结果所需的字段“学号”和“姓名”;在第五个对话框中
对查询重命名即可完成。
利用向导使查询变得更为简单,其结果在查询设计视图中与“选择查询”方法完全相同。
3触类旁通
查找不匹配项数据这类问题的题目一般会给出两个表:一个是所有学生或所有员工的基本
信息表;另一个是部分学生成绩表或部分员工工资表。然后要求查找这两个表中不匹配的信
息,就是找出一个表中有相关记录但另一个表中没有相关记录的信息。
龙源期刊网
通过做一道试题,考生应掌握查找不匹配项数据这一类题目的做法。
比如,查找有档案信息但无工资信息的职工,这里的“无工资信息”与前面题目的“没有任
何选课的学生”说法类似,所以做法也完全相同。
再比如,查找并显示所有学生的“姓名”、“课程号”和“成绩”3个字段内容,这里的“所有学
生”就是学生表中所有的记录,它不但包括选课的学生还包括没有选课的学生。因此,这道题
目的做法是:首先在查询设计视图当中添加两个表的相应字段,然后打开“视图”菜单的“联接
属性”命令,在“联接属性”窗口中选择第二项“包括„tStud‟中的所有记录和„tScore‟中联接字段相
等的那些记录”,即可完成,无需进行其它条件设置。
参考文献:
[1]捷成系统工程部.全国计算机等级考试练习系统软件[D].上海:华东理工大学,2010.
[2]陈莉莹,董文.Access中参数查询与查找不匹配项查询向导的应用[J].软件导刊,2007
(2).
(责任编辑:余晓)
版权声明:本文标题:Access中不匹配项查询的三种方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1715957579a690322.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论