<table>
<tbody>
<tr>
<td width = 140px align = center><b>课题<br>名称</b></td>
<td >第8章 数据库的高级操作</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> 通过前几章的学习,大家对数据库的概念以及数据库的基本操作有了一定的了解,在数据库中还有一些高级的操作,如数据的备份、还原,用户管理、权限管理、事务管理等,本章将针对这些知识进行详细地讲解。</td>
</tr>
<tr>
<td width = 140px align = center ><b>教学目标<br>基本要求</b></td>
<td colspan = 3>
1、学会对数据库中的数据进行备份和还原操作<br>
2、学会在数据库中创建、删除用户<br>
3、学会对数据库中的权限进行授予、查看和收回
</td>
</tr>
<tr>
<td width = 140px align = center><b>教学重点</b></td>
<td colspan = 3>
1、数据的备份和还原<br>
2、普通用户的创建、删除和修改用户密码<br>
3、如何为用户授予权限
</td>
</tr>
<tr>
<td width = 140px align = center><b>难点及措施</b></td>
<td colspan = 3>
数据的备份、用户的创建、修改用户密码、授予权限
</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>
<!======================201706291530=======================>
<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> 在操作数据库时,难免会发生一些意外造成数据丢失。例如,突然停电、管理员的操作失误都可能导致数据的丢失,那么为了确保数据的安全,需要定期对数据库进行备份,这样,当遇到数据库中数据丢失或者出错的状况时,就可以将备份的数据进行还原,从而最大限度地降低损失。</div>
<div style= color:black>(2)明确学习目标</div>
<div style = color:blue>
1、要求学生掌握如何使用mysqldump命令备份单个数据库、多个数据库以及备份所有数据库。<br>
2、要求学生掌握还原数据的方式。
</div>
<div style = vertical-align:top;text-align:left><h5><b>二、进行重点知识的讲解</b></h5></div>
<div style= color:black>(1)如何使用mysqldump命令备份数据库?</div>
<div style = color:blue> 教师首先进行举例,例如在日常生活中,我们经常需要为自己家的门,多配几把钥匙,为自己的爱车准备一个备胎,其实这些行为其实都是在做备份,在数据库的维护过程中,数据也经常需要备份,以便在系统遭到破坏或其它情况下重新加以利用, MySQL提供了一个mysqldump命令,用于实现数据的备份,mysqldump命令可以备份单个数据库、多个数据库和所有数据库,具体如下:<br>
<li>备份单个数据库</li>
教师首先讲解备份单个数据库的语法格式,并对语法中的每个参数所表示的意义进行详细介绍,然后进行案例演示,首先创建一个数据库chapter08,在数据库中创建数据表student,并向表中插入3条数据,然后在C盘创建一个名为backup的文件夹,再重新开启一个DOS命令行窗口(不用登陆到MySQL数据库),使用mysqldump命令备份chapter08数据库,如:mysqldump -uroot -pitcast chapter08>C:/backup/chapter08_20140305.sql,此语句执行成功后,在backup文件夹中生成一个名为chapter08_20140305.sql的备份文件,至此数据的备份方式演示完毕。最后教师打开备份的文件并对文件中的一些字段信息进行解释说明。(可参见教材 例8-1)
<li>备份多个数据库</li>
教师对该备份方式的语法进行简单介绍即可。
<li>备份所有数据库</li>
教师对该备份方式的语法进行简单介绍即可。
由于三种备份数据的方式比较类似,所以教师只需对备份单个数据库的步骤进行详细讲解即可,备份多个数据库和备份所有数据库的方式学生可根据语法提示课下自行练习。
<br>
</div>
<div style= color:black>(3)如何对数据进行还原?</div>
<div style = color:blue> 教师带着学生一同查看备份的文件,会发现备份文件实际就是由多个CREATE、INSERT和DROP语句组成,那么我们如果想恢复备份文件中的数据该如何做呢?让学生进行思考。教师根据以下两种还原数据的方式进行讲解。
<li>使用mysql命令还原数据</li>
教师对使用mysql命令还原数据的语法格式进行讲解,然后讲解由于数据库中的库是不能被还原的,因此在还原数据之前我们必须创建数据库,并以还原chapter08_20140305.sql文件为例,分步骤讲解还原数据的方式:<br>
1、 首先使用DROP语句删除数据库chapter08。<br>
2、 新建数据库chapter08。<br>
3、 另外开启一个DOS窗口。<br>
4、 使用mysql语句还原C:/backup目录下的chapter08_20140305.sql文件,还原语句如下:<br>
~~~
mysql -uroot -pitcast chapter08 <C:/backup/chapter08_20140305.sql
~~~
5、为了验证数据还原成功,使用SELECT语句查看chapter08中的数据。(可参见教材对应知识点)<br>
<li>使用source命令还原数据</li>
教师对比使用mysql命令还原数据的方式讲解,使用source命令还原数据需要登陆到MySQL数据库,还原步骤如下所示:<br>
1、 首先使用DROP语句删除数据库chapter08。<br>
2、 新建数据库chapter08。<br>
3、 USE chapter08。<br>
4、 使用source语句还原C:/backup目录下的chapter08_20140305.sql文件,还原语句如下:<br>
source C:/backup/chapter08_20140305.sql<br>
5、为了验证数据还原成功,使用SELECT语句查看chapter08中的数据。至此,还原数据的两种方式介绍完毕。
</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>(用户管理—user表、创建普通用户)</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> 每个软件都会对用户信息进行管理,MySQL也不例外,在安装MySQL时,会自动安装一个名为mysql的数据库,该数据库中的表都是权限表,其中user表是最重要的一个权限表,本节将针对user表的作用以及如何创建普通用户进行详细讲解。 </div>
<div style = color:black>(3)明确学习目标</div>
<div style = color:blue>
1、使学生熟悉user表中字段的分类以及各字段的作用<br>
2、使学生掌握创建普通用户的三种方式。
</div>
<div style = vertical-align:top;text-align:left><h5><b>二、进入重点知识点的讲解 </b></h5></div>
<div style = color:black>(1)user表的作用是什么?</div>
<div style = color:blue> 教师首先提出问题,在我们安装MySQL数据库时,我们的权限是root用户,那么这个权限是在哪个表中设置的呢?然后教师对mysql数据库以及该库中的权限表进行简单介绍,由于user表是最重要的权限表,所以教师要对user表的作用以及表中的字段进行详细阐述,并通过绘表的方式向学生介绍user表中的一些常用字段(可参见教材 表6-1),最后根据字段的4类用途详细介绍各字段的作用。(可参见教材对应知识点)。
</div>
<div style = color:black>(2)如何创建普通用户?</div>
<div style = color:blue>
教师提出问题,由于数据库中的众多数据对,而一个root用户是无法管理这些数据的,那么我们是否还需要创建一些普通用户来管理这些数据呢?学生进行思考,然后教师进行讲解创建普通用户有三种方式,具体如下:
<li> 使用GRANT语句创建用户 </li>
教师首先讲解GRANT语句的特点,让学生知道GRANT语句是创建用户最常用的方法,然后讲解GRANT语句创建用户的语法格式,最后教师向学生演示,创建一个新用户的过程。例如创建一个用户名为user1、密码为123,并授予该用户对chapter08.student表有查询权限,其创建语句如下所示:
~~~
GRANT SELECT ON chapter08.student TO 'user1'@'localhost' IDENTIFIED BY '123';
~~~
创建完成后,通过查询语句查看user表中用户user1是否创建成功。(可参见教材对应知识点)
<li>使用CREATE USER语句创建用户</li>
教师首先讲解CREATE USER语句的特点,然后讲解CREATE USER语句创建用户的语法格式,最后教师向学生演示使用CREATE USER语句创建用户的过程,例如创建一个用户名为user2、密码为123的用户,创建语句如下:<br>
~~~
CREATE USER 'user2'@'localhost' IDENTIFIED BY '123';
~~~
<li> 使用INSERT语句创建用户</li>
通过前两个创建用户的方式,我们知道,无论是CREATE USER语句还是GRANT语句,在创建用户时,实际上都是在user表中添加一条新的记录,因此,也可以使用INSERT语句直接在该表中添加一个用户。然后教师向学生演示使用INSERT语句创建用户的过程,例如创建一个用户名为user3、密码为123的用户,创建语句如下:
~~~
INSERT INTO mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject)
VALUES('localhost','user3',PASSWORD('123'),'','','');
~~~
创建完成后,通过查询语句查看user表中用户user3是否创建成功。(可参见教材对应知识点)
<br>
</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> 1、使学生掌握删除普通用户的两种方式<br>
2、使学生掌握root用户修改密码的三种方式<br>
3、使学生熟悉root用户修改普通用户密码的三种方式<br>
4、使学生了解普通用户修改自己密码的方式
</div>
<div style = vertical-align:top;text-align:left><h5><b>二、进入重点知识点的讲解</b></h5></div>
<div style = color:black>(1)如何删除普通用户?</div>
<div style = color:blue>
由于在MySQL中我们通常会创建多个普通用户来管理数据库,当我们想收回所授予的用户权限时,就可以将这个用户删除,删除用户有两种方式,具体如下:
<li>使用DROP USER语句删除用户</li>
教师首先讲解DROP USER语句的语法格式,然后教师结合案例向学生演示,如何通过DROP USER语句删除用户user1,SQL语句如下:
~~~
DROP USER 'user1'@'localhost';
~~~
最后通过SELECT语句查看用户是否被删除(可参见教材对应知识点),需要注意的是,使用DROP USER语句删除用户,必须拥有DROP USER的权限。
<li>使用DELETE语句删除用户</li>
DELETE语句不仅可以删除普通表中的数据,还可以删除user表中的数据,教师向学生讲解使用DELETE语句删除用户的语法格式,然后结合案例向学生演示如何通过DELETE语句删除用户user2,SQL语句如下:
~~~
DELETE FROM mysql.user WHERE Host='localhost' AND User='user2';
~~~
最后通过SELECT语句查看用户是否被删除(可参见教材对应知识点),需要注意的是,使用DELETE语句删除用户,必须拥有DELETE的权限,而且执行完命令后需要使用“FLUSH PRIVILEGES;”语句重新加载用户权限
<!-20170629->
</div>
<div style = color:black>(2)如何修改root用户密码?</div>
<div style = color:blue>
教师提出问题,数据库中无论是root用户还是普通用户,都有自己的密码,可是如果密码丢失了,我们该如何处理呢?学生思考,然后教师进行讲解,因为root用户具有最高的权限,root用户可以修改自己的密码,修改root用户密码有三种方式,具体如下:<br>
<li>使用mysqladmin命令修改root用户密码 </li>
教师首先讲解使用mysqladmin命令修改root用户密码的语法,然后教师演示在C:\Documents and Settings\Administrator>目录下使用mysqladmin命令将root用户的密码修改为mypwd1的全部过程。(可参见教材对应知识点)
<li>使用UPDATE语句修改root用户密码</li>
由于所有的用户信息都存放在mysql.user表中,因此,只要root用户登录到MySQL服务器,使用UPDATE语句就可以直接修改自己的密码。然后教师讲解使用UPDATE语句修改密码的语法格式,最后教师向学生演示使用
<li>使用SET语句修改root用户的密码</li>
root用户登录到MySQL服务器后,还可以通过SET语句修改root用户的密码。然后教师讲解使用SET语句修改密码的语法格式,并着重介绍S PASSWORD()函数的使用方法, 最后教师向学生演示使用SET语句将root用户密码修改为mypwd3的全过程(可参见教材对应知识点)。
</div>
<div style = color:black>(3)如何通过root用户修改普通用户的密码?</div>
<div style = color:blue> 教师进行提问,如果普通用户的密码丢失了,我们应该如何修改呢?让学生进行讨论,教师可以给予提醒,由于root用户具有最高的权限,它是否能修改普通用户的密码呢,然后教师进行讲解,root用户的确可以修改普通用户的密码,由于root用户和普通用户修改密码的方式比较类似,教师只需要简单介绍一下root用户修改普通用户密码的语法即可,学生可课下自行练习。root用户修改普通用户密码的三种方式,具体如下:
<li>使用GRANT语句修改密码</li>
<li>使用UPDATE语句修改密码</li>
<li>使用SET语句修改密码</li>
</div>
<div style = color:black>(4)普通用户如何修改自己的密码?</div>
<div style = color:blue> 教师首先提出问题,普通用户是否可以自己修改自己的密码呢?让学生进行思考,教师讲解,普通用户也可以修改自己的密码,并且这种方式可以避免每次修改密码通知管理员,然后教师讲解SET语句的基本语法格式。</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)让学生课下完成动手体验,root用户修改root用户密码的三种方式。</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>一、回顾上节课内容,继续讲解MySQL的权限管理</b></h5></div>
<div style = color:black>(1)对上节课留的作业进行答疑。</div>
<div style = color:black>(2)回顾总结上节课的内容,引出本节课主题</div>
<div style = color:blue> 在MySQL数据库中,为了保证数据的安全性,数据管理员需要为每个用户赋予不同的权限,以满足不同用户的需求,本节将针对MySQL的权限管理进行详细地讲解。<br>
</div>
<div style = color:black>(3)明确学习目标</div>
<div style = color:blue> 1、使学生明确使用权限的目的。</div>
<div style = color:blue> 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> 教师首先提出问题,数据库中是不是哪个用户都可以对数据进行任意的操作呢?请学生进行思考。然后教师进行解释,为了保证数据的安全性,数据库管理员需要为每个用户赋予不同的权限,以满足不同用户的需求,最后教师向学生介绍MySQL中用于存储权限信息的表,并通过列表的形式向学生展示user表中对应的列和权限范围(可参见教材 表6-2)。
</div>
<div style = color:black>(2)如何对用户授予权限?</div>
<div style = color:blue> 教师首先提出问题,在前面的章节中,我们为什么可以对数据进行增删改查的操作呢?然后教师进行讲解,之所以能对数据进行不同的操作,是因为我们拥有的权限所决定的,数据库中不同的用户拥有不同的权限,合理的授权可以保证数据库的安全。教师讲完用户权限的作用后,再讲解使用GRANT语句为用户授权的语法格式,并详细介绍语法格式中每个字段所表示的意义(可参见教材对应知识点),最后教师向学生演示如何使用GRANT语句创建一个用户名为user4、密码为123,且对数据库有INSERT、SELECT、GRANT OPTION权限的用户,创建成功后使用SELECT语句来查看user表中用户的权限是否赋予成功。使学生学会如何为用户授权,以及查看所授权用户是否已经具有这个权限。(可参见教材对应知识点)
<div style = color:black>(3)如何查看某个用户所具有的权限?</div>
<div style = color:blue> 教师首先提出问题,让学生回答之前使用的查看user表中用户权限的SQL语句的语法格式,教师针对此SQL语句进行说明,使用SELECT语句查询权限信息,不仅需要指定用户,还需要指定查询的权限,这种方式显然比较麻烦。然后教师向学生介绍,为了方便查询用户的权限信息,MySQL还提供了一个SHOW GRANTS语句,并对该语句的语法格式进行讲解,最后教师通过查看root用户权限和查看普通用户权限的例子向学生演示SHOW GRANTS语句的用法。(可参见教材对应知识点)</div>
<div style = color:black>(4)如何收回权限?</div>
<div style = color:blue> 教师提出问题,当数据管理员发现某个用户不应该具有DELETE权限时,该如何收回这个用户的权限呢?然后教师进行讲解,MySQ中收回权限使用REVOKE语句,收回权限有两种情况,具体如下:
<li>收回具体权限</li>
教师首先讲解,REVOKE语句的语法格式,然后教师通过收回user4用户的INSERT权限,演示REVOKE语句的使用方式,演示完毕,通过SELECT语句查看用户权限是否被收回。(可参见教材对应知识点)
<li>收回所有权限</li>
教师进行讲解,如果用户的权限比较多,我们需要使用 REVOKE语句提供的收回用户所有权限的语句,然后教师对该语法格式进行讲解,最后教师通过收回user4用户的所有权限,演示该语句的使用方式,演示完毕,通过SELECT语句查看用户权限信息的显示情况。(可参见教材对应知识点)
</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>(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> 上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察学生对知识点的掌握情况,对代码的熟练程度。</div>
<div style = vertical-align:top;text-align:left><h5><b>上机一:(考察知识点备份数据和还原数据)</b></h5></div>
<div style = color:black>请按照以下要求操作数据库student</div>
<div style = color:black>要求如下:</div>
<div style = color:blue>1) 在chapter08数据库中创建表student,设置id(int),name(varchar),age(int)三个字段,并插入3条数据。<br>
2) 将数据备份至C盘的backup文件夹下,文件名为chapter08_20150102.sql。<br>
3) 还原文件chapter08_20150102.sql中的数据。<br>
</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> 上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。</div>
<div style = vertical-align:top;text-align:left><h5><b>上机一:(考察知识点为创建普通用户、删除普通用户和修改用户密码)</b></h5></div>
<div style = color:black>请按照以下要求操作用户user1。</div>
<div style = color:black>要求如下:</div>
<div style = color:blue>1) 在chapter08数据库中创建表student,设置id(int),name(varchar),age(int)三个字段,并插入3条数据。<br>
2) 使用GRANT USAGE语句将用户user1的密码修改为‘456'。<br>
3) 使用DROP USER语句删除用户user1。<br>
</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> 上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察学生对知识点的掌握情况,对代码的熟练程度。</div>
<div style = vertical-align:top;text-align:left><h5><b>上机一:(考察知识点备份数据和还原数据)</b></h5></div>
<div style = color:black>请按照以下要求操作数据库student</div>
<div style = color:black>要求如下:</div>
<div style = color:blue>1) 在chapter08数据库中创建表student,设置id(int),name(varchar),age(int)三个字段,并插入3条数据。<br>
2) 将数据备份至C盘的backup文件夹下,文件名为chapter08_20150102.sql。<br>
3) 还原文件chapter08_20150102.sql中的数据。<br>
</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> 上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。</div>
<div style = vertical-align:top;text-align:left><h5><b>上机一:(考察知识点为授予权限、查看权限、收回权限)</b></h5></div>
<div style = color:black>请按照以下要求操作用户user2。</div>
<div style = color:black>要求如下:</div>
<div style = color:blue>1) 使用GRANT语句创建一个新用户user2,其秘密为‘123’,并为user2用户授权,使user2用户对所有数据库有INSERT、SELECT权限,并使用WITH GRANT OPTION子句。<br>
2) 使用SHOW GRANTS语句查看user2用户的权限信息。<br>
3) 使用REVOKE ALL PRIVILEGES语句收回user2用户的全部权限。<br>
</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>
-