第四章 数据库与数据库应用
第四节 数据查询
一、教学目标
知识与技能 ●用结构化查询语言SQL中的SELECT实现单表查询●用结构化查询语言SQL中的SELECT实现多表查询●理解子查询
过程与方法 ●通过VisData环境中的结构化查询语言SQL中的SELECT语句,实现数据分析
情感态度价值观 ●在活动过程中养成对计划的完整实施及根据具体情况进行修改的能力●在活动过程中积极主动地学习和使用信息技术●体验团队合作的重要性
二、教学重点与难点
本节的重点内容是VisData环境中结构化查询语言SQL中SELECT语句的使用,为此教材中设置了三项内容十五个任务:单表数据库查询、多表数据库查询、子查询。本节教学的重点是单表数据库查询、多表数据库查询,难点是子查询。
三、课时安排建议
建议本节内容用6课时完成。
四、教学准备
1.教学素材
范例数据库“研究型课程数据库”。
2.课前准备
具备VisData插件的VB6、网络广播系统、范例数据库共享文件夹、依据班级情况建立学习小组。
五、教学过程建议
1.情景导入
教师活动:对“研究型课程数据库”的数据表进行可视化界面下的全部数据浏览,引出问题“随着数据的增多现有的数据浏览方式是否便捷?如果我只想找到符合某些条件的数据怎么办?如果我想同时查看多个数据表的信息怎么办?”
学生活动:讨论数据分析的重要性。
活动目的:让学生理解数据分析是数据库操作的重要内容。
2.活动制作
教师活动:给出制作主题――显示“学生选课表”的所有信息、显示“学生选课表”中选修“影视欣赏“课程的学生信息、查询“学生成绩表”中总评成绩在70~80分的学生信息、查询“学生成绩表”中平时成绩90分或75分的学生信息、对“学生选课表”和“教师任课表”进行操作,能够显示学生姓名、选修课程名、指导教师;教师演示制作内容;辅导学生完成制作。
学生活动:根据要求完成基本数据查询分析。
活动目的:提高学生利用VisData环境中SQL语句窗口数据库分析的能力。
3.协同开发
教师活动:给出开发主题――显示“学生成绩表”中总评成绩小于80分的学生姓名和平时成绩、统计“学生选课表”中除了动画制作和三维建模外,各学科报名人数、对“学生选课表”、“学生成绩表”和“教师任课表”进行操作,能够显示学生姓名、选修课程名、总评成绩、指导教师;个别指导;全班指导。
学生活动:小组讨论确定实现方法;依据计划确定分工;由一位同学完成;组内讨论。
活动目的:体验分工协作、提高数据库操作技能。
4.深入理解
教师活动:演示深入主题――显示“学生选课表”中有那些课程、查询“任课教师表”中有哪些老师任教学科信息为空、统计“学生成绩表”中平时成绩平均分和试卷成绩平均分、统计“学生选课表”中各学科报名人数、显示“学生成绩表”中平时成绩,并由高到低排序、统计“学生选课表”中各学科报名人数占总人数的比例、根据“学生选课表”和“学生成绩表”,显示平时成绩>80,姓名、选修课程名; 教师演示制作内容;辅导学生理解相关内容。
学生活动:小组讨论数据分析在查询语言SQL的高级使用。
活动目的:理解数据库高级应用。
5.归纳总结
教师活动:根据发现的问题,对本节课进行归纳、整理;布置相关的课堂练习或家庭作业。
学生活动:整理和反思本节课的学习过程,进一步思考教师所提出的有关问题。
活动目的:梳理总结。
六、教学参考
1.根据例题完成数据库的单表操作和多表操作。
2.完成如下任务:
任务一、在任课教师表中,显示共有多少各学科。
SELECT DISTINCT 任教学科 FROM 任课教师表
任务二、在学生成绩表中,显示平时成绩大于80的学生信息。
SELECT 姓名, 平时成绩 FROM 学生成绩表WHERE平时成绩>80
任务三、在学生选课表中,显示选修了“科技英语”和“三维建模”的学生有哪些。
SELECT * FROM 学生成绩表 WHERE 选修课程=’科技英语’ OR选修课程=’三维建模’
任务四、在学生成绩表中,显示“影视欣赏”的“试卷成绩”的平均分。
SELECT AVG(试卷成绩) AS影视欣赏平均分 FROM 学生成绩表 GROUP BY 选修课程名 HAVING 选修课程名=’ 影视欣赏’
任务五、在任课教师表中,显示有多少位有授课任务的教师。
SELECT COUNT() FROM 任课教师表WHERE 任教学科 IS NOT NULL
任务六、在学生选课表中,按“学号”降序排列学生信息。
SELECT * FROM 学生选课表 ORDER BY学号DESC
任务七、对学生选课表、任课教师表操作,显示学生应该到哪里上课。
SELECT 学生选课表.姓名, 任课教师表.任教教室 AS 上课教室 FROM 学生选课表,任课教师表 WHERE 学生选课表.选修课程名=任课教师表.任教学科
任务八、对学生选课表表、任课教师表表、学生成绩表操作,显示“学生姓名”、“教师姓名”、“试卷成绩”。
SELECT 学生选课表.姓名,任课教师表.姓名, 学生成绩表.试卷成绩FROM 学生选课表,学生成绩表,任课教师表 WHERE 学生选课表.姓名=学生成绩表.姓名 AND 学生选课表.选修课程名=任课教师表.任教学科
任务九、对学生选课表、任课教师表、学生成绩表操作,显示平时成绩大于80分的教师姓名、学生姓名、课程名
SELECT 学生选课表.姓名 AS 学生姓名, 任课教师表.教师姓,学生选课表.选修学科FROM 学生选课表 WHERE 学号=any (SELECT 学号 FROM 学生成绩表 WHERE 平时成绩>80) AND 学生选课表.选修课程名=任课教师表.任教学科