<table> <tbody> <tr> <td width = 140px align = center><b>课题<br>名称</b></td> <td >第7章 视图</td> <td> <div style = "vertical-align:top;text-align:center">计划<br>学时</div></td> <td ><div style = "vertical-align:top;text-align:center">7 课时</div></td> </tr> <tr> <td width = 140px align = center><b>内容<br>分析</b></td> <td colspan=3>&nbsp;&nbsp;在前面章节的学习中,操作的数据表都是一些真实存在的表,其实,数据库还有一种虚拟表,它同真实表一样,都包含一系列带有名称和列的数据,这种表被称为视图。本章将针对数据库中视图的基本操作进行详细地讲解。</td> </tr> <tr> <td width = 140px align = center ><b>教学目标<br>基本要求</b></td> <td colspan = 3> &nbsp;&nbsp;1、了解视图的概念,能够简述视图的优点<br> &nbsp;&nbsp;2、掌握视图的创建方式,学会在单表和多表上创建视图<br> &nbsp;&nbsp;3、掌握视图的查看、修改、更新以及删除 </td> </tr> <tr> <td width = 140px align = center><b>教学重点</b></td> <td colspan = 3> &nbsp;&nbsp;1、视图的创建<br> &nbsp;&nbsp;2、视图的查看、修改、更新以及删除 </td> </tr> <tr> <td width = 140px align = center><b>难点及措施</b></td> <td colspan = 3> &nbsp;&nbsp;1、 视图的创建<br> &nbsp;&nbsp;2、 视图的修改、更新 </td> <tr> <td width = 140px align = center><b>教学方式</b></td> <td colspan = 3> 讲师课堂教学要以PPT讲授为主,并结合多媒体进行教学 </td> </tr> <tr> <td width = 140px align = center><b>教学过程</b></td> <td colspan = 3> <div style = "vertical-align:top;text-align:center"><h4><b>第一课时</b></h4></div> <div style = "vertical-align:top;text-align:center"><h5><b>(视图概述、视图的语法格式)</b></h5></div> <div style = vertical-align:top;text-align:left><h5><b>一、创设情境,导入视图的概念</b></h5></div> <div style= color:black>(1)老师提出需求,引出视图</div> <div style = color:blue>&nbsp;&nbsp;教师引出需求,在对数据进行操作时,为了保证数据的安全和简化查询语句,我们是否还可以操作另一种数据表呢?引出视图概念。</div> <div style= color:black>(2)进入主题,讲解视图</div> <div style = color:blue>&nbsp;&nbsp;进入主题,讲解什么是视图,视图是从一个或多个表中导出来的表,它是一种虚拟存在的表,通过视图不仅可以看到存放在基本表中的数据,并且还可以像操作基本表一样,对视图中存放的数据进行查询、修改和删除。</div> <div style= color:black>(3)明确学习目标</div> <div style = color:blue>&nbsp;&nbsp;1、要求学生了解视图具有的优点<br> &nbsp;&nbsp;2、要求学生熟悉创建视图的语法格式 </div> <div style = vertical-align:top;text-align:left><h5><b>二、进行重点知识的讲解</b></h5></div> <div style= color:black>(1)视图具有哪些优点?</div> <div style = color:blue>&nbsp;&nbsp;教师对视图概念进行阐述,使学生对视图有了初步的认识,然后提问学生是否知道视图的优点,最后教师对视图的优点进行总结(可参见教材对应知识点),并对这些优点进行解释。<br> </div> <div style= color:black>(2)创建视图的语法格式</div> <div style = color:blue> &nbsp;&nbsp;教师首先讲解,视图的创建基于SELECT语句和已经存在的数据表。教师列出创建视图的语法格式,然后对语法中的每个字段所表示的意义进行详细介绍。(可参见教材对应知识点)</div> <div style = vertical-align:top;text-align:left><h5><b>三、归纳总结,随堂练习,布置作业</b></h5></div> <div style=color:black>(1)对课堂上讲解的知识点进行总结,使用随堂练习题巩固本节课的知识点。</div> <div style=color:black>(2)使用测试题给学生布置作业。</div> <div style = "vertical-align:top;text-align:center"><h4><b>第二课时</b></h4></div> <div style = "vertical-align:top;text-align:center"><h5><b>(创建视图)</b></h5></div> <div style = vertical-align:top;text-align:left><h5><b>一、回顾上节课内容,继续讲解视图的创建</b></h5></div> <div style = color:black>(1)对上节课留的作业进行答疑。</div> <div style = color:black>(2)回顾总结上节课的内容,引出本节课主题 </div> <div style = color:blue>&nbsp;&nbsp;上一课时讲解了创建视图的语法格式,创建视图有两种方式,分别是在单表上和多表上创建视图,本节将针对这两种创建方式进行详细地讲解。</div> <div style = color:black>(3)明确学习目标</div> <div style = color:blue> &nbsp;&nbsp;要求学生掌握如何在单表上和多表上创建视图。 </div> <div style = vertical-align:top;text-align:left><h5><b>二、进入重点知识点的讲解</b></h5></div> <div style = color:black>(1)如何在单表上创建视图?</div> <div style = color:blue>&nbsp;&nbsp; 教师首先创建一个用于存储学生信息的student表,分别创建s_id,name,math,chinese四个字段,并为每个字段添加数据,基本表创建完成,然后使用创建视图语句创建视图view_stu,视图分别定义字段id,name,math,chinese,math+chinese(计算某个学生的数学+语文的成绩之和)(可参见教材 例7-1)。<br> &nbsp;&nbsp;教师提出问题,在使用基本表中的数据时,我们可以为字段取别名,那么在视图中可以这样做吗?答案是肯定的,然后教师结合上面的案例,再创建一个名为view_stu2的视图,这时只需要在视图名称后面加上我们想要创建的视图的别名即可,如:CREATE VIEW view_stu2(name,math,chin,sum) AS SELECT name,math,chinese,math+chinese FROM student;即可(可参见教材 例7-2)。 </div> <div style = color:black>(2)如何在多表上创建视图?</div> <div style = color:blue>&nbsp;&nbsp; &nbsp;&nbsp;教师首先提出问题,视图是不是只能在单表创建呢?请学生回答,教师进行讲解,视图不但可以在单表上创建,还可以在两个或两个以上的表上创建视图。然后教师再创建一个stu_info(学生信息表)表,字段为s_id,class,addr,向表中插入数据。最后在基本表student和stu_info上创建视图stu_class,创建语句:<br> </div> ~~~ CREATE VIEW stu_class(id,name,class) AS SELECT student.s_id ,student.name,stu_info.class FROM student,stu_info WHERE student.s_id=stu_info.s_id; ~~~ <div style = color:blue>&nbsp;&nbsp;通过上述创建语句成功创建stu_class视图(可参见教材 例7-3)。</div> <div style = vertical-align:top;text-align:left><h5><b>三、归纳总结,布置作业</b></h5></div> <div style = color:black>(1)对课堂上讲解的知识点进行总结,使用随堂练习题巩固本节课的知识点。</div> <div style = color:black>(2)使用测试题给学生布置作业。</div> <div style = "vertical-align:top;text-align:center"><h4><b>第三课时</b></h4></div> <div style = "vertical-align:top;text-align:center"><h5><b>(查看视图)</b></h5></div> <div style = vertical-align:top;text-align:left><h5><b>一、回顾上节课内容,继续讲解视图的查看</b></h5></div> <div style = color:black>(1)对上节课留的作业进行答疑。</div> <div style = color:black>(2)回顾总结上节课的内容,引出本节课主题 </div> <div style = color:blue>&nbsp;&nbsp;上节课讲解了如何在单表上和多表上创建视图,视图创建好了,我们该如何查看视图的信息呢?本节将详细视图的查看。</div> <div style = color:black>(3)明确学习目标</div> <div style = color:blue>&nbsp;&nbsp;使学生掌握如何查看视图的字段信息、状态和视图的定义语句。</div> <div style = vertical-align:top;text-align:left><h5><b>二、进入重点知识点的讲解</b></h5></div> <div style = color:black>(1)如何查看视图的字段信息?</div> <div style = color:blue>&nbsp;&nbsp; 教师首先声明,查看视图必须要有SHOW VIEW的权限,在查看基本表中的字段信息时我们使用DESCRIBE 表名;的方式查看,在视图中同样也是使用DESCRIBE关键字来查看视图的字段信息,然后教师通过查看语句:DESCRIBE 视图名;的方式查看stu_class视图(可参见教材 例7-4)。 </div> <div style = color:black>(2)如何查看视图的状态信息?</div> <div style = color:blue>&nbsp;&nbsp; &nbsp;&nbsp; 教师提出问题,我们如何确定一个表是视图表呢?教师进行讲解,我们可以通过SHOW TABLE STATUS LIKE '视图名'语句查看一个表的状态信息,从查询的结果项说明(Commnet)的值以及存储引擎和数据长度等信息可以非常清楚的显示一个表的状态信息,如果这个表为视图,那么Commnet的值为VIEW,储引擎和数据长度等信息全部为NULL,说明此表为视图,是虚拟表。然后教师通过此语句查看基本表的信息,从查询结果可以看出,信息的Comment值没有显示,而储引擎和数据长度等信息全部有显示信息,足以说明此表为真实存在的基本表。(可参见教材 例7-5) </div> <div style = color:black>(3)如何查看视图的定义语句和字符编码?</div> <div style = color:blue>&nbsp;&nbsp;教师进行提问,在学习基本表时,我们是如何查看基本表的定义信息呢?引导学生思考,然后教师讲解,同样查看视图的定义语句同样也是使用SHOW CREATE语句,然后教师通过SHOW CREATE VIEW 视图名;语句查看stu_class视图的定义语句和字符编码信息。(可参见教材 例7-6) </div> <div style = vertical-align:top;text-align:left><h5><b>三、归纳总结,布置作业</b></h5></div> <div style = color:black>(1)对课堂上讲解的知识点进行总结,使用随堂练习题巩固本节课的知识点。</div> <div style = color:black>(2)使用测试题给学生布置作业。</div> <div style = "vertical-align:top;text-align:center"><h4><b>第四课时</b></h4></div> <div style = "vertical-align:top;text-align:center"><h5><b>(修改视图)</b></h5></div> <div style = vertical-align:top;text-align:left><h5><b>一、回顾上节课内容,继续讲解视图的修改和视图的更新</b></h5></div> <div style = color:black>(1)对上节课留的作业进行答疑。</div> <div style = color:black>(2)回顾总结上节课的内容,引出本节课主题</div> <div style = color:blue>&nbsp;&nbsp;当基本表中的某些字段发生时,我们可以通过修改视图的方式来保持视图与基本表的一致性。<br>&nbsp;&nbsp;当我们想对基本表中的某些数据进行更新操作时,可以通过更新视图的方式更新基本表中的数据。 </div> <div style = color:black>(3)明确学习目标</div> <div style = color:blue>&nbsp;&nbsp; 1、使学生掌握如何通过修改视图保持与基本表数据一致的两种方式</div> <div style = color:blue>&nbsp;&nbsp;2、使学生掌握更新视图的三种方式。</div> <div style = vertical-align:top;text-align:left><h5><b>二、进入重点知识点的讲解</b></h5></div> <div style = color:black>(1)如何修改视图?</div> <div style = color:blue>&nbsp;&nbsp; 教师首先进行说明,当基本表中的结构发生变化时,那么依赖于基本表创建的视图,也需要 修改。修改视图有两种方式,具体如下: <li> 使用CREATE OR REPLACE VIEW语句修改视图</li> &nbsp;&nbsp;&nbsp;&nbsp;教师首先向同学介绍修改视图的基本语句格式,然后使用CREATE OR REPLACE VIEW view_stu AS SELECT * FROM student;语句对view_stu视图进行修改。(可参见教材 例7-7) <li>使用ALTER语句修改视图</li> &nbsp;&nbsp;&nbsp;&nbsp;教师首先向同学介绍修改视图的基本语句格式,然后使用ALTER VIEW view_stu AS SELECT chinese FROM student;语句对view_stu视图进行修改。(可参见教材 例7-8) </div> <div style = color:black>(2)如何更新视图?</div> <div style = color:blue>&nbsp;&nbsp;教师首先提出问题,基本表中的数据除了通过更新基本表的数据来实现,还有其他的方式可以更新基本表中的数据吗?然后教师进行讲解,更新视图的本质,因为视图是一个虚拟表,其中没有数据,当通过视图更新数据时其实是在更新基本表中的数据,更新视图的方式有三种,具体如下: <li>使用UPDATE语句更新视图</li> &nbsp;&nbsp;&nbsp;&nbsp;教师结合案例进行演示,首先通过UPDATE view_stu SET chinese = 100;语句对view_stu视图中的chinese字段数据进行更新,然后通过查看更新后的视图数据与student表中的字段数据的变化情况,让学生明白,通过视图更新数据,其实就是在操作基本表中的数据。(可参见教材 例7-9) <li>使用INSERT语句更新视图</li> &nbsp;&nbsp;&nbsp;&nbsp;教师结合案例进行演示,首先通过INSERT INTO student VALUES(4,'Lily',100,100);语句向student表中插入一条数据,插入成功后,通过查看依据student表创建的view_stu2视图中数据的变化情况,让学生明白,也可以通过直接修改基本表中数据的方式,修改视图中的数据。(可参见教材 例7-10) <li>使用DELETE语句更新视图</li> &nbsp;&nbsp;&nbsp;&nbsp;教师结合案例进行演示,首先通过DELETE FROM view_stu2 WHERE math=70;语句对view_stu视图中math=70的整条数据进行删除,然后通过查看更新后的基本表中数据的变化情况,让学生明白,当我们通过视图删除数据时,删除的其实就是基本表中的数据(可参见教材 例7-11)。最后教师向学生介绍几种不能执行更新操作情况。 </div> </div> <div style = vertical-align:top;text-align:left><h5><b>三、归纳总结,布置作业</b></h5></div> <div style = color:black>(1)对课堂上讲解的知识点进行总结,使用随堂练习题巩固本节课的知识点。</div> <div style = color:black>让学生课下完成动手体验,如何修改视图以及更新视图。</div> <div style = "vertical-align:top;text-align:center"><h4><b>第五课时</b></h4></div> <div style = "vertical-align:top;text-align:center"><h5><b>(删除视图、视图的应用案例)</b></h5></div> <div style = vertical-align:top;text-align:left><h5><b>一、回顾上节课内容,继续讲解如何删除视图</b></h5></div> <div style = color:black>(1)对上节课留的作业进行答疑。</div> <div style = color:black>(2)回顾总结上节课的内容,引出本节课主题</div> <div style = color:blue>&nbsp;&nbsp;当视图不需要时,可以将其删除,删除视图时,只能删除视图的定义,不会删除数据。</div> <div style = color:black>(3)明确学习目标</div> <div style = color:blue>&nbsp;&nbsp;1、使学生掌握删除视图的方式</div> <div style = color:blue>&nbsp;&nbsp;2、通过应该案例的学习,掌握视图的基本操作</div> <div style = vertical-align:top;text-align:left><h5><b>二、进入重点知识点的讲解</b></h5></div> <div style = color:black>(1)如何删除视图?</div> <div style = color:blue>&nbsp;&nbsp; 教师首先讲解删除视图的基本语法格式,然后结合案例演示如何删除stu_class视图。(可参见教材 例7-12)<br> </div> <div style = color:black>(2)案例-视图的应用?</div> <div style = color:blue>&nbsp;&nbsp; 教师根据下面的步骤进行案例的讲解:<br> &nbsp;&nbsp;&nbsp;&nbsp;1、案例的背景:有来自河北和山东的3个学生报考北京大学(Peking University)和清华大学(Tsinghua University),现在需要对其考试的结果进行查询和管理。<br> &nbsp;&nbsp;&nbsp;&nbsp;2、建立的表:需要创建3个表对学生的信息进行管理,这3个表分别是学生表(stu)、报名表(sign)和成绩表(mark),其中这3个表的主键(s_id)是统一的。<br> &nbsp;&nbsp;&nbsp;&nbsp;3、表的创建:分别创建上述3个表,并向表中添加数据。<br> &nbsp;&nbsp;&nbsp;&nbsp;4、视图的创建:创建考上北京大学的学生视图,北京大学的录取分数线是720分,创建的视图包括学生的学号,姓名,成绩和报考学校名称四个字段。<br> &nbsp;&nbsp;&nbsp;&nbsp;5、创建考上清华大学的学生视图,清华大学的录取分数线是725分,创建的视图包括学生的学号,姓名,成绩和报考学校名称四个字段。<br> &nbsp;&nbsp;&nbsp;&nbsp;6、更新视图:由于某学生的成绩在录入时多录了10分,所以通过更新语句对此学生的成绩进行修改。 </div> <div style = vertical-align:top;text-align:left><h5><b>三、归纳总结,布置作业</b></h5></div> <div style = color:black>(1)对课堂上讲解的知识点进行总结,使用随堂练习题巩固本节课的知识点。</div> <div style = color:black>(2)让学生课下完成动手体验,对案例进行练习。。</div> <div style = "vertical-align:top;text-align:center"><h4><b>第六课时</b></h4></div> <div style = "vertical-align:top;text-align:center"><h5><b>(上机练习)</b></h5></div> <div style = color:blue>&nbsp;&nbsp;上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。</div> <div style = vertical-align:top;text-align:left><h5><b>上机一:(考察知识点创建和查看视图)</b></h5></div> <div style = color:black>请按照以下要求创建视图view_stu</div> <div style = color:black>要求如下:</div> <div style = color:blue>1)数据表scores创建在itcast数据库中<br> 2)数据表的字段有id、name(姓名)、math(数学成绩)、chinese(语文成绩)、english(英语成绩)等,向表中插入4天完整的数据。<br> 3)创建视图view_stu,视图的字段为id,name,total字段。<br> 4)视图创建成功后,查看表中的字段信息是否设置正确。 </div> <div style = "vertical-align:top;text-align:center"><h4><b>第七课时</b></h4></div> <div style = "vertical-align:top;text-align:center"><h5><b>(上机练习)</b></h5></div> <div style = color:blue>&nbsp;&nbsp;上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。</div> <div style = vertical-align:top;text-align:left><h5><b>上机一:(考察知识点为修改视图、更新视图)</b></h5></div> <div style = color:black>请按照以下要求操作视图view_stu。</div> <div style = color:black>要求如下:</div> <div style = color:blue>1) 查看视图view_stu。<br> 2) 向表student中增加字段class(班级)。<br> 3) 修改视图view_stu。<br> 4) 由于id值为3的学生转学,使用DELETE语句更新视图中的数据。 </div> </td> </tr> <tr> <td width = 140px align = center><b> 思考题和习题</b> </td> <td colspan = 3> </td> </tr> <tr> <td width = 140px align = center><b> 教学后记 </b> </td> <td colspan = 3></td> </tr> </tbody> </table>                   -