《MySQL数据库项目实战教案项目5、6“天意书屋”数据库中程序的设计、“天意书屋”数据库的用户权限和安全.docx》由会员分享,可在线阅读,更多相关《MySQL数据库项目实战教案项目5、6“天意书屋”数据库中程序的设计、“天意书屋”数据库的用户权限和安全.docx(23页珍藏版)》请在优知文库上搜索。
1、MySQL数据库项目实收教嗓课程名称:XXXX授课年级:XXXX&投课学期:XXXX-教师城名:XXXX&项目名称项目5“天意书屋”数据库中程序的设计计划学时18学时内容导览在前面项目的学习中,我们已经学会了数据库中视图和索引的使用。有时候需要执行一段SQL语句组成的程序代码。其中,存储过程是将一组SQL语句代码当作一个整体来调用执行。触发器是由事件触发,当表中出现特定事件时,就会激发该对象。事务是一组有着内在逻辑联系的SQL语句,它们要么都执行成功,要么什么都不做。本项目将针对存储过程、触发器和事务进行详细讲解。学标教目L了解存储过程的概念、优点。2 .掌握存储过程的创建、调用、维护。3 .
2、掌握条件分支语句、循环语句、游标。4 .了解触发器的概念,掌握触发器的创建、维护。5 .了解事务的概念,掌握事务的基本操作。教学重点1 .存储过程的创建、调用、维护。2 .触发器的创建、维护。3 .事务的基本操作。教学难点L存储过程的创建、调用。2 .触发器的创建。3 .事务的基本操作。教学过程第1-2学时(创建存储过程)知识目标:了解存储过程的概念和优点,掌握创建、调用存储过程的方法。能力目标:具备创建、调用存储过程的能力。素质目标:严格要求自己,不断进步。一、温故知新,情境导入1.回顾项目四中创建视图和索引的相关知识,引出本节内容:创建存储过程。2.动画引入存储过程的概念,了解学习内容。二
3、、知识讲解,实操演示1.存储过程概述存储过程是一组经过编译并保存在数据库中的SQL语句集,可以随时被调用。使用存储过程具有如下5个优点:(1)执行速度快:存储过程是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输。(2)系统性能高:存储过程执行一次后,就驻留在高速缓冲存储器。在以后的操作中,只需从高速缓冲存储器中调用已编译好的存储过程,提高了系统性能。(3)允许标准组件式编程:存储过程在被创建后,可以在程序中多次调用,有效提高了SQL语句的重用性、共享性和可移植性。(4)灵活性强:存储过程可以使用流程控制语句,有很强的灵活性,完成复杂的逻辑。(5)安全:系统管理员通过对某一
4、存储过程的权限进行限制,从而限制相应数据的访问权限,避免非授权用户对数据的访问,保证数据安全。2.存储过程的创建及调用(1)创建存储过程语法格式:CREATEPROCEDURE存储过程名称(参数列表)SQL语句集; CREATEPROCEDURE:表示创建存储过程。 存储过程名称:必须符合标识符命名规则,且对于数据库及其所有者必须唯一的。 参数列表:是可选项,不省略为有参数存储过程,省略为无参数存储过程。 SQL语句集:使用BEGlN表示开始,使用END表示结束。(2)调用存储过程MySQL中使用CALL语句来调用存储过程。调用存储过程后,数据库系统将执行存储过程中的语句,执行结果返回给输出值
5、。语法格式:CALL存储过程名称(参数列表,); CALL:关键字,表示调用存储过程,后面加要调用的存储过程名称。 参数列表:可选项,调用带有参数的存储过程,给出参数的具体的值。(3)有参数存储过程在实际应用中,为了满足不同查询的需要,通常需要为存储过程指定参数,来实现通用的数据访问模块。存储过程可以指定一个或多个参数,参数的声明由参数方向、参数名称和参数类型3部分构成,一般至少提供参数名称和参数类型。语句格式:CREATEPROCEDURE存储过程名称(INOUTINOUT参数名称参数类型)SQL语句集; IN:表示输入参数,可把外界的数据传递到存储过程当中。 OUT:表示输出参数,可把存储
6、过程的运算结果传递到外界。 INOUT:表示输入输出参数,既可以把外界的数据传递给存储过程当中,又可以把存储过程的运算结果传递到外界。 在没有指定参数方向的情况下,系统默认是输入参数IN。三、任务评测,汇报展示(1)发布课堂在线测试。(2)学生分小组完成项目需求,并进行汇报展示。第3-4学时(维护存储过程)知识目标:掌握维护存储过程的方法,掌握变量的使用方法。能力目标:具备维护存储过程的能力。素质目标:脚踏实地,严格要求自己。一、温故知新,情境导入1 .回顾上节课学习的创建存储过程,引出本节的内容:维护存储过程。2 .动画引入维护存储过程,明确学习目标。二、知识讲解,实操演示1 .查看存储过程
7、创建完存储过程后,MySQL存储了其状态信息和定义语句,用户可以分别使用SHOWSTATUS和SHOWCREATE语句进行查看。(1)查看存储过程的状态语法格式:SHOWPROCEDURESTATUSLIKE存储过程名称;(2)查看存储过程的定义语法格式:SHOWCREATEPROCEDURE存储过程名称;2 .修改存储过程语法格式:ALTERPROCEDURE存储过程名称MODIFIESSQLDATASQLSECURITYDEFINERIINVOKER; ALTERPROCEDURE:关键字,表示修改存储过程。 MODIFIESSQLDATA:表示子程序中包含写数据的语句。 DEFINER:
8、表示只有定义者自己才能执行。 INVOKER:表示调用者可以执行。3 .删除存储过程语法格式:DROPPROCEDUREIFEXISTS存储过程名称;4 .变量(1)变量的分类用户变量(USeLDefinedVariables):带有前缀,只能被定义它的用户使用,作用于当前整个连接,当前连接断开后,所定义的用户变量会被全部释放。用户变量不用提前定义就可以直接使用。局部变量(LOCalVariables):没有前缀,一般用于SQL语句块的BEGlN.END中。其作用范围仅限于该语句块,在语句块执行完毕后,局部变量就会被释放。局部变量使用前需要先通过DECLARE声明,如没有声明,则初始值为NUL
9、Lo系统变量(ServerSystemVariables):带有前缀,MySQL有许多已经设置默认值的系统变量。系统变量包含全局(GLOBAL)变量和会话(SESSlON)变量。全局变量会影响整个服务器,而会话变量只对当前会话(当前连接)有效。(2)局部变量的定义在存储过程中使用DECLARE语句定义局部变量,作用范围是BEGlN.END语句块。语法格式:DECLARE变量名数据类型DEFAULT默认值;(3)变量赋值变量定义之后,可以使用SET关键字为变量赋值。语法格式:SET变量名二变量值;使用SELECT.INTO.查询语句将查询结果赋值给变量。语法格式:SELECT列名INTO变量名F
10、ROM表名;三、任务评测,汇报展示(1)发布课堂在线测试。(2)学生分小组完成项目需求,并进行汇报展示。第5-6学时(条件分支语句)知识目标:掌握条件分支语句的使用方法。能力目标:具备条件分支语句的应用能力。素质目标:遵从内心,合理选择。一、温故知新,情境导入1.回顾上节课学习的维护存储过程,引出本节的内容:条件分支语句。2.动画引入IF语句,明确学习目标。二、知识讲解,实操演示1 .条件分支语句条件分支语句是通过对特定条件的判断,选择一个分支的语句执行。在MySQL中可以实现条件分支的语句有IF语句、IFNULL语句、IF.ELSE语句和CASE语句共4种。(1) IF语句语法格式:IF(条
11、件表达式,结果1,结果2);当“条件表达式”的值为TRUE时,返回“结果1”,否则返回“结果2”。(2) IFNULL语句语法格式:IFNULL(结果1,结果2);若结果1的值不为空,则返回结果1,否则返回结果2。(3) IF.ELSE语句语法格式:IF条件表达式1THEN语句块1;ELSE语句块2;ENDIF; 当“条件表达式1”的值为TRUE时,“语句块1”将被执行。 当“条件表达式1”的值都为FALSE,则执行“语句块2”。 每个语句块都可以包含一个或多个语句。(4) CASE语句CASE语句在MySQL中用于实现分支处理,能够根据表达式的不同取值,转向不同的计算或处理,类似高级程序语言
12、中的SWITCH.CASE语句。当判断条件的范围较大时,使用CASE会使得程序的结构更为简洁。适用于需要根据同一个表达式的不同取值来决定将执行哪一个分支的场合。CASE语句具有简单结构和搜索结构两种语法。简单CASE结构简单CASE结构将表达式与一组简单表达式进行比较以确定结果。语法格式:CASE表达式WHEN数值1THEN语句1;WHEN数值2THEN语句2;ELSE语句n+1;ENDCASE; “表达式”的值与WHEN子句后的“数值”比较,找到完全相同的项时,则执行对应的“语句”,若未找到匹配项,则执行ELSE后的“语句”。CASE搜索结构CASE搜索结构用于搜索条件表达式以确定相应的操作
13、。语法格式:CASEWHEN条件表达式1THEN语句1;WHEN条件表达式2THEN语句2;ELSE语句nl;ENDCASE; 该结构判断WHEN子句后的“条件表达式”的值是否为TRUE,若为TRUE,则执行对应的“语句”。 若所有的“条件表达式”的值均为FALSE,则执行ELSE后的“语句”。若无ELSE子句,则返回NULL三、任务评测,汇报展示(1)发布课堂在线测试。(2)学生分小组完成项目需求,并进行汇报展示。第7-8学时(循环语句)知识目标:掌握循环语句的使用方法。能力目标:具备循环语句的应用能力。素质目标:坚持不懈。一、温故知新,情境导入1.回顾上节课学习的条件分支语句,引出本节的内
14、容:循环语句。2.动画引入循环语句,明确学习目标。二、知识讲解,实操演示1 .循环语句除了条件语句之外,在MySQL中还经常会用到循环语句,循环语句可以在存储过程或者触发器等内容中使用。每一种循环都是重复执行的一个语句块,该语句块可包括一条或多条语句。循环语句在其他程序设计语言中有多种形式,MySQL中只有WHILE语句、LOOP语句和REPEAT语句三种。(1) WHILE语句WHILE循环语句以WHILE关键字开始,以ENDWHlLE语句结束。语法格式:开始标签:WHILE条件表达式DO语句块;ENDWHILE结束标签;WHlLE语句是先判断“条件表达式”的值是否为TRUE,当“条件表达式
15、”的值为TRUE时,语句块被重复执行,直至“条件表达式”的值为FALSE,才会结束循环。只要“开始标签”语句存在,则“结束标签”语句才能被使用;若两者都存在,它们的名称必须相同。1.oOP语句1.OOP语句可以使某些特定的语句重复执行,实现一个简单的循环。但是LOOP本身没有停止循环的语句,必须和LEAVE语句结合使用来停止循环。语法格式:开始标签:LOOP语句块;ENDLOOP结束标签; “开始标签”和“结束标签”分别表示循环开始和结束的标识,这两个标识必须相同,可以省略。(2) “语句块”表示需要循环执行的语句。(3) 1.EAVE语句语法格式:LEAVE标签名;LEAVE语句主要用于跳出循环控制,与高级语言中的BRE