《多表查询》教学设计
2021-10-18 22:00:41 20
广州市二中 张玉莲
[教学对象分析]:
1.学生学过select 部分语句,对FROM 子句有一定的理论认识和上机的经验。
2.高中二年级的学生,功课压力大,喜欢轻松学习计算机,又不太愿意听教师讲解;还会衡量一节课的教学容量。所以将查询表单设计成有实际意义的上学期期末考试成绩统计表xuesheng,激发学生主动学习的兴趣,在讲解内部连接的基础上让学生探究外部连接的特点。
[教学内容]:
本节课教材采用广州市教研室编写的《广州市信息技术教育课程〈网络·数据库〉》,具体为教材第六章第二节——多表查询,是《普通高中技术课程标准》选修内容之一。该节内容包含内部连接、左外部连接、右外部连接和完全外部连接四种连接方式的介绍,包括它们的语法格式、功能特点、应用及上机操作,用时2课时,本教学设计以第一课时为例讲解内部连接,学生自主探讨左外部连接;第二课时让学生在第一课时的基础上自主探讨右外部连接和完全外部连接,是在讲完单表的基本查询之后,提出的多表查询内容。
教学重点:掌握内部连接、左外部连接两种多表查询方式的语法格式及应用上的区别。
教学难点:理解在不建新表的情况下,两表如何连接成一个新表;如何利用不同的查询方式去解决实际问题。
[教学目标]:
1. 认知领域:
① 理解多表查询是属于前面学过的FROM 子句,是SELECT查询语句的一种基本结构;
② 掌握多表查询中内、外部连接的语法功能和作用;
③ 对比分析多表查询中内部连接与左外部连接的区别与联系,以及它对查询结果的影响;
④ 学会应用各种连接的特点来解决实际问题。
2.操作领域:
熟悉内部连接、外部连接的各种上机操作、结果的验证,进一步熟悉SELECT查询语句上机注意事项。
3. 情感领域:
由于多表查询是对前面SELECT¼¼FROM 语句中FROM 子句的扩充,是数据库查询优势的明显体现之一,让学生增强对SQL 学习的兴趣;数据库和表单全改为学生自己的期末考试成绩,平时少看到这些,现在可以随心所欲的查询,以增查询的欲望,增强学习兴趣;同时,学生自己在教师讲解内部连接INNER JOIN的基础上寻找左外部连接的特点、区别,使学生获得一定程度上的成就感,及培养积极探索、实事求是的科学态度,间接获取学习方法的体验。
[教学策略方法]:
以任务及自我评价来驱动,教师讲授及学生上机操作、自主探寻相结合的学习方法。
[教学媒体]:
背投一台,教学广播网及每人一台计算机。
[教学过程]:
(一) 新课引入
1. 复习:
Select ¼From¼(单表查询及表使用别名):
格式:Select 字段名表 from 表名 as 别名
查询xuesheng数据库中表单“成绩2班”(截取部分记录)的部分列,产生一个新的表(如下表)。用课件展示:
表:成绩2班学号班别语文数学英语物理x化学x综合492114125114838680502113123109976271512122118114978487562100101103686970ß产生(表名使用别名a)学号语文数学英语49114125114501131231095112211811456100101103在Query Analyzer中键入SQL语句:
select 学号,语文,数学,英语 from 成绩2班 as a
执行查询得到上表(产生的新表)
2. 提出问题:
在实际应用中,往往从单表中获取我们所需要的信息有些美中不足,在不重新建立新表的基础上,能否从多个有关联的关系中获取我们所需要的信息——查询就需要涉及到对多个表的操作。例如:在上面数据库xuesheng 中除了记录2班学生成绩的“成绩2班”表(见上表)外,还有记录2班学籍的“gao202”表(部分记录见下页表):能否从两个表通过查询产生一个如下新表(见下图表)?
答案是肯定的,请把教材翻到88页,看新课《6.2 多表查询》。
(二) 新课讲授
1.内部连接 INNER JOIN
语法格式:FROM <表1> INNER JOIN <表2> ON <条件>
例:在xuesheng 数据库中含有“成绩2班”和“gao202”两个表。“成绩2班”记录2班学生的成绩,其中含有学号、班别及各科成绩等字段内容;“gao202”记录2班学生的学籍,其中只含有学号、姓名等字段。现要求查询2班学生的学号、姓名及语文、数学、英语三科的成绩等信息。
执行:
SELECT A.学号,姓名,语文,数学,英语
FROM gao202 INNER JOIN 成绩2班 AS A ON gao202.学号=A.学号
演示:在Query Analyzer 查询结果,并与原表情况对比。
分析查询结果:原表“gao202”除含有2班学号为“1——51”号同学的学号、姓名外,还含有4个姓名为“挂籍”、学号分别为“52、53、54、55”的记录,原表2“成绩2班”除含有学号为“1——51”号同学的学号、各科成绩外,还含有学号为“56、57、58”三个成绩记录,查询后得到的新表只含有学号为“1——51”号同学的记录,原表1中“52、53、54、55”和原表2中“56、57、58”这些记录没出现。两个表如何连接的?
展示:动画演示内部连接的机理(用动画课件作如下展示)。
上机:学生上机练习:练习纸上例题。先查询表1“gao202”和表2“成绩2班”,并留意表中记录数;再执行上述内部连接查询语句。验证内部查询的机理。
要求:1.学生对比新表和原表在学号最后几位(50号之后)的记录变化;
2.最后一行“(´´ rows affected) 的数字变化。
引导:学生留意正确结果:查询后的新表只有51个记录,两个原表分别含有“51、52、53、54、55”、“51、56、57、58”;有效记录数:新表是“51 rows affected”,原表分别是“55 rows affected”、“54 rows affected”。
归纳:
内部连接的功能及注意事项:
功能:根据指定的条件从表1和表2 中产生新的记录集。
说明:
① <条件> 参数是一个逻辑表达式,通常在该表达式中会涉及到两个表中的字段。
② 只有当来自不同的两个记录满足<条件>时,才会由这两个记录产生一个新的记录。
③ 当来自不同表中的字段同名时,指定这些字段名需要在其前面冠以表名加以区别。例如:成绩2班.学号, gao202.学号
扩展部分:实际生活中有时需要即使在没有匹配的记录的情况下仍然能够产生一个新记录,外部连接可以解决这类问题。
学生自主探究:
2.左外部连接 LEFT OUTER JOIN
语法格式:
FROM <源表> LEFT OUTER JOIN <连接表> ON <条件>
学生上机练习:
依据语法格式及内部连接的例题和格式,用左外部连接方式,做上述例题(表1和表2的位置不变,只改查询方式)。注意:特别留意每班最后的同学,即2班51号之后的同学,姓名为“挂籍”的 “52、53、54、55”号同学是没有对应考试分数的,在挂籍之后的学生“56、57、58”号有成绩但没对应的姓名。同学请留意在不同的查询方式中这部分学生在查询输出表中的变化情况,把变化及执行语句写在上机练习纸相应位置。
具体为1、学生对比左外部连接查询的新表和内部连接查询所得的表在学号最后几位(50号之后)的记录变化;2、内部连接及左外部连接中最后一行“(´´ rows affected) 的数字变化。
要求:分两个同学一组对比查询结果:每人先分别查询左外连和内部连接,然后一人屏幕显示内部连接的结果,另一人显示左外连的查询结果,进行比较。或用多窗口显示进行对比。
广播几个学生的查询结果,让学生自己归纳出左外部连接产生的新表与内部连接产生的表的区别,并明白为什么会有此区别。
预测上机情况,广播时引导学生:
1. 能比较出区别:有效记录数及左外连多了姓名为“挂籍”4个同学。引导学生找出多出的记录字段来自哪个表?为什么其他字段的内容为“NULL”?其他字段本来应来自哪个表?引导下,由学生自己讲出“4个挂籍的同学来自连接方式‘LEFT OUTER JOIN’左边的表‘GAO202’,其他字段本应来自‘成绩2班’,但在‘成绩2班’没有‘挂籍’的这几个同学的相应记录,所以填上‘NULL’。
2. 继而进一步引导学生回答下述问题:提出是否两个原表的记录都出现?与内部连接比较:多出的记录来自左边的表,对比语法格式,是否明白“源表”指什么?“连接表”又指什么?学生自己归纳出左外连与内连的区别,以及为什么有此区别。学生应归纳内容:不是两个原表的记录都出现,只出现了左边表“GAO202”的所有记录项,右边表“成绩2班”中出现的是在左表中有相应记录的学号为“1——51”号记录,没有相应记录项的学号为“56——58”号没有出现。对比语法格式,知道源表即是主表,主表中的所有记录都出现,连接表中只有满足条件的记录才出现。
执行:
SELECT A.学号,姓名,语文,数学,英语
FROM gao202 LEFT OUTER JOIN 成绩2班 AS A ON gao202.学号=A.学号
描述:截取部分记录如下:内部连接与左外部连接
学号 姓名 语文 数学 英语
45 强薇 113 108 102
46 董韵 120 120 120
47 廖明熙 120 128 103
48 谭志宏 126 150 134
49 樊科毅 114 125 114
50 王智欣 113 123 109
51 裴一就 122 118 114
学号 姓名 语文 数学 英语
45 强薇 113 108 102
46 董韵 120 120 120
47 廖明熙 120 128 103
48 谭志宏 126 150 134
49 樊科毅 114 125 114
50 王智欣 113 123 109
51 裴一就 122 118 114
NULL 挂籍 NULL NULL NULL
NULL 挂籍 NULL NULL NULL
NULL 挂籍 NULL NULL NULL
NULL 挂籍 NULL NULL NULL
内部连接查询结果
左外部连接查询结果
课堂上机练习题:
练习纸第2、3题
第2题题目:只输出“成绩3班”与“gao203”中有相同“学号”记录的同学的有关情况,包括学号、班别、姓名、语文、数学、英语等信息。
第3题题目:输出“成绩4班”与“gao204”连接查询的情况,包括学号、姓名、班别、语文、数学、英语、综合等内容。要求有成绩的同学都输出,没成绩的同学都不输出。
附加题:在xuesheng 数据库中含有“成绩2班”和“gao202”两个表。“成绩2班”中含有学号、班别、语文、数学、英语、物理X、综合等字段,“gao202”中含有学号、姓名等字段。现要求查询物理X分数不少于80分同时数学排在前十名的每个学生的学号、姓名、语文、数学、英语、物理X、综合等信息。
3. 课堂小结:
FROM <表1> INNER JOIN <表2> ON <条件>
FROM <源表> LEFT OUTER JOIN <连接表> ON <条件>
区别:
内部连接:指定在结果集中应仅包含与ON条件相匹配的行,应删除任何不匹配的行;
左外部连接:返回匹配行及指定到JOIN 关键字左边的表单中所有行。
作者单位:广州市第二中学 邮政编码:510040
作者姓名:张玉莲 电话:83552067、83548808、13642602508
职称:计算机中教一级