项目九 任务三 存储过程(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂

2025-01-21
| 31页
| 528人阅读
| 3人下载
精品

内容正文:

9.3 MySQL的数据库编程 ----存储过程 数据库原理与应用技术--MySQL 同步精品课堂 河北科学技术出版社 教学目标 一 了解存储过程的概念 教学目标 掌握存储过程的调用、删除命令 掌握存储过程的创建与修改命令 了解存储过程的作用及特点 掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。 教学重难点 二 教学难点 1、存储过程的特点 2、存储过程相关命令 教学重点 存储过程的相关命令的应用 教学难点 导入新课 三 讨论: 存储过程是一组为了完成特定功能的SQL语句集合。存储过程将SQL语句存储起来,存储在服务器中等待调用,那么我们用怎么来调用存储过程执行相应的操作呢? 任务一 1 认识存储过程 新知讲授 四 ⊙存储过程 存储过程是一组为了完成特定功能的SQL语句集合。使用存储过程的目的是将常用或复杂的工作预先用SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储在数据库服务器中,因此称为存储过程。存储过程就像是程序中的子程序,存储在数据库中。 ➽ 存储过程概述 1、封装性; 2、执行效率高; 3、可重用性; 4、功能强大; ➽ 存储过程的特点 新知讲授 四 ⊙创建存储过程 ➽ 创建存储过程 基本语法形式如下: CREATE PROCEDURE <过程名> ([[IN | OUT | INOUT ] 参数名 数据类型[,[IN | OUT | INOUT ] 参数名 数据类型....]])[特性....] BEGIN <过程体> END 新知讲授 四 ⊙创建存储过程 ➽ 创建存储过程 说明: 1、IN:表示调用者向过程传入值(传入值可以是字面量或变量); 2、OUT : 表示过程向调用者传出值(可以返回多个值)(传出值只能是变量); 3、INOUT:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量); ➽ 流程控制语句 MySQL中用来构造流程控制语句的有:IF语句、CASE语句、LOOP语句、LEAVE语句、ITEARTE语句、REPEAT语句和WHILE语句。 新知讲授 四 ⊙创建存储过程 ➽ IF语句 基本语法形式如下: IF expr_condition THEN statement_list [ELSEIF expr_condition THEN statement_list] [ELSE statement_list] END IF 说明: 1、expr_condition:条件判断表达式; 2、statement_list:表示满足判定式后的执行语句; 3、所有IF语句都需要用END IF来结束,在THEN中执行,ELSE IF和ELSE是可选的。 新知讲授 四 ⊙创建存储过程 ➽ 实例:有一个变量val,判断变量是否为空,若为空,输入“val is NULL”,否则输入“val is not NULL” MySQL语句如下: IF val IS NULL THEN SELECT ’val is NULL’ ELSE SELECT ’val is not NULL’ END IF; 新知讲授 四 ⊙创建存储过程 ➽ CASE语句 基本语法形式如下: CASE case_expr WHEN when_value THEN statement_list [WHEN when_value THEN statement_list]..... [ELSE statement_list ] END CASE 说明: 1、case_expr:表示条件判断的表达式; 2、when_value:表示表达式可能的值;3、statement_list,表示不同when_value值的执行语句; 新知讲授 四 ⊙创建存储过程 ➽ 实例:使用CASE语句的第一种格式,判断val的值,若等于1则输出“val is 1”,若等于2则输出”val is 2”,或者两者都不等于则输出“val is not 1 or 2” MySQL语句如下: CASE val WHEN 1 THEN SELECT ‘val is 1’; WHEN 2 THEN SELECT ‘val is 2’; ELSE SELECT ‘val is not 1 or 2’; END CASE; 新知讲授 四 ⊙创建存储过程 ➽ LOOP语句与LEAVE语句 基本语法形式如下: [loop_lable:] LOOP statement_list END LOOP [loop_lable] 说明: 1、loop_lable:表示LOOP语句的标注名称; 2、statement_list,表示循环执行的语句 新知讲授 四 ⊙创建存储过程 ➽ 实例:定义一个变量id,初始值为0,循环执行id加1的操作,当id值小于10时,循环重复执行,当id值大于或等于10时,使用LEAVE语句退出循环。 MySQL语句如下: DECLARE id INT DEFAULT 0; add_loop:LOOP SET id=id+1; IF id>=10 THEN LEAVE add_loop; END IF; END LOOP add_loop; 新知讲授 四 ⊙创建存储过程 ➽ ITERATE语句 基本语法形式如下: ITEARTE lable 说明: 1、lable:表示循环的标志; 2、ITEARTE语句只可以出现在LOOP、REPEAT和WHILE语句中 新知讲授 四 ⊙创建存储过程 ➽ REPEAT语句 说明: 1、repeat_lable为REPEAT语句的标注名称,该参数是可选的; 2、REPEAT语句内的语句或语句群被重复,直至expr_condition为真; 基本语法形式如下: [repeat_lable:] REPEAT statement_list UNTIL expr_condition END REPEAT [repeat_lable] 新知讲授 四 ⊙创建存储过程 ➽ 实例:当id值未达到10时,重复循环让id值加1。 MySQL语句如下: DECLARE id INT DEFAULT 0; REPEAT SET id=id+1; UNTIL id>=10; END REPEAT; 新知讲授 四 ⊙创建存储过程 ➽ WHILE语句 说明: 1、while_lable为WHILE语句的标注名称,可省略; 2、expr_condition为进行判断的表达式,如果表达式为真,WHILE语句内的语句或语句群被执行,直至expr_condition为假,退出循环; 基本语法形式如下: [while_lable:] WHILE expr_condition DO Statement_list END WHILE [while_lable] 新知讲授 四 ⊙创建存储过程 ➽ 实例:创建一个变量i,初始值为0,当i小于10时重复执行加1. MySQL语句如下: DECLARE i INT DEFAULT 0; WHILE i <10 DO SET i=i+1; END WHILE; 新知讲授 四 ⊙调用、修改存储过程 ➽ 调用存储过程 基本语法形式如下: CALL <存储过程名(实参列表)> ➽修改存储过程 基本语法形式如下: ALTER PROCEDURE <过程名> [characteristic .....] 新知讲授 四 ⊙调用、修改存储过程 ➽ 实例:将存储过程param_pro的读写权限改为MODIFIES SQL DATA,并指定调用者可以执行。 MySQL语句如下: ALTER PROCEDURE param_pro MODIFIES SQL DATA SQL SECURITY INVOKER; 新知讲授 四 ⊙查看存储过程 ➽ 显示存储过程 基本语法形式如下: SHOW PROCEDURE STATUS ➽显示特定数据库的存储过程 基本语法形式如下: SHOW PROCEDURE STATUS WHERE DB=‘数据库名’ 新知讲授 四 ⊙查看存储过程 ➽ 显示特定模式的存储过程,要求显示名称中包含某字符的存储过程 基本语法形式如下: SHOW PROCEDURE STATUS WHERE NAME LIKE 通配符表达式 ➽显示存储过程的源码 基本语法形式如下: SHOW CREATE PROCEDURE <存储过程名> 新知讲授 四 ⊙删除存储过程 ➽删除存储过程 基本语法形式如下: DROP PROCEDURE [IF EXISTS] <存储过程名> 师生互动 五 1、总结存储过程的概念、特点和作用。 2、总结存储过程的创建、调用、查看等命令。 讨论 随堂练习 六 1、 关于存储过程的说法,下列说法错误的是( ) A.存储过程是一组为了完成特定功能的SQL语句集合 B.存储过程像是程序中的子程序,存储在数据库中 C.存储过程不能被调用 D.存储过程的功能强大,可以实现数据库的复杂操作 【答案】C 【解析】存储过程可以被多次调用,增加了可重用性。 随堂练习 六 2、下列选项中,创建存储过程的命令是( ) A.CREATE PROCEDURE B.CREATE FUNCTION C.CREATE TRIGGER D.REMOVE PROCEDURE 【答案】A 【解析】CREATE PROCEDURE命令用于创建存储过程。 随堂练习 六 3、 在MySQL存储过程中,ITERATE语句不能出现在以下哪个语句中( )。 A. LOOP B. REPEAT C.WHILE D. IF 【答案】D 【解析】ITERATE语句只能出现在LOOP,REPEAT,WHILE语句中。 随堂练习 六 4、 存储过程的CASE语句,与控制流程函数中的SQL CASE表达式中的CASE语句相同。( ) 【答案】错。存储过程的CASE语句,与控制流程函数中的SQL CASE表达式中的CASE语句不同,存储过程中,CASE语句不能有ELSE NULL子句,并且用END CASE代替END来终止。 5、 存储过程的使用降低了SQL语句功能的灵活性。( ) 【答案】错。存储过程的使用增强了SQL语句功能的灵活性。 课堂小结 七 谢谢 $$

资源预览图

项目九 任务三 存储过程(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
1
项目九 任务三 存储过程(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
2
项目九 任务三 存储过程(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
3
项目九 任务三 存储过程(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
4
项目九 任务三 存储过程(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
5
项目九 任务三 存储过程(课件)-《数据库原理与应用技术--MySQL》(河北科学技术出版社)同步精品课堂
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。