版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电子课件MySQL数据库应用4.6 创建和使用存储过程2项目4:创建数据库对象数据库应用任务2 创建存储过程和函数 创建和使用存储过程(2) 教学目标 素质目标 知识目标1.培养学生温故知新的学习习惯;2.培养学生对前后知识综合应用的能力;3.思政融入点:使用存储过程与提高工作效率的关系,强调工作效率的重要性。1.掌握MySQL中的 IF条件控制语句使用方法;2.掌握 CASE分支结构使用方法;3.掌握LOOP循环控制语句使用方法;4.掌握WHILE循环控制语句使用方法; 5.掌握在工具软件SQLyog中创建和管理存储过程的方法 能力目标1.具有在存储过程中使用各种流程控制方法的能力。2.具备
2、使用存储过程来进行数据查询的能力; 教学重点在存储过程中如何应用IF判断语句和while循环控制语句的语法。 教学难点各种流程控制结构的语法规则。教学重难点1.抽查与评讲作业;2.复习存储过程的创建及调用方法;3.检查课程预习情况:“你们在C语言中,学过有哪些程序设计结构?” 创建和使用存储过程5知识储备在MySQL语言中,可以使用流程控制语句进行来控制语句的执行,但是只能在存储过程或函数、触发器或事务中定义使用。(一)IF条件控制语句 IF条件结构的语法格式:IF 条件表达式THEN 语句块1ELSEIF 条件表达式2 THEN 语句块2ELSE 语句块nEND IF;创建和使用存储过程 6
3、知识储备【IF条件控制语句示例】在存储过程proc1中使用IF条件语句。mysql delimiter /mysql create procedure proc1(in xh char(10) - reads sql data 调用存储过程proc1 - begin - if(select 学号 from xsqk where xsqk.学号=xh) is null then - select 无此学生信息 as 学生信息; - else - select 学号,姓名,性别,专业名 from xsqk where xsqk.学号=xh; - end if; - end /创建和使用存储过程 7
4、知识储备互动:1讲述存储过程proc1的程序设计思路。8创建和使用存储过程知识储备(二)CASE分支结构 CASE分支结构可以提供多个条件进行选择,其效果与IF语句类似。CASE分支结构的语法规则:CASE case_值 WHEN when_值1 THEN 语句1 WHEN when_值2 THEN 语句2 ELSE 语句nEND CASE 创建和使用存储过程 9知识储备【CASE分支结构示例】使用CASE结构判断学生成绩等级。mysql delimiter /mysql create procedure proc2(in xh char(10),in kch char(3) - begin
5、- declare fs tinyint; - if(select 学号 from cj where 学号=xh and 课程号=kch) is null then - select 无此学生成绩 as 学生成绩; - else - select 成绩 into fs from cj where 学号=xh and 课程号=kch; - set fs=floor(fs/10); #floor是MySQL的一个取整函数 - case fs创建和使用存储过程 10知识储备【CASE分支结构示例】使用CASE结构判断学生成绩等级。 续: - when 9 | 10 then select 优秀 as
6、 成绩等级; 调用存储过程proc2 - when 8 then select 良好 as 成绩等级; - when 7 then select 中等 as 成绩等级; - when 6 then select 及格 as 成绩等级; - else - select 不及格 as 成绩等级; - end case; - end if; - end /创建和使用存储过程 11知识储备互动:讲述使用CASE结构判断学生成绩等级的程序设计思路。12创建和使用存储过程知识储备(三)LOOP循环控制语句 LOOP的循环语句的语法规则:begin_lable:LOOP 语句序列; ITERATE begi
7、n_lable; LEAVE begin_lable1;END LOOP;创建和使用存储过程 13知识储备【LOOP循环示例】使用LOOP循环语句,用于完成输入一个正整数并求从1到该数的累加和。 mysql delimiter /mysql create procedure addsum(in x int) - begin - set i=1,sum=0; - add_sum:loop - begin - set sum=sum+i; - set i=i+1; - end;创建和使用存储过程 14DELIMITER /CREATE PROCEDURE addsum1(IN X INT)BEGI
8、NDECLARE i INT DEFAULT 1;DECLARE sum1 INT DEFAULT 0; add_sum: LOOP BEGIN SET sum1=sum1+i; SET i=i+1; END;IF iX THEN LEAVE add_sum; END IF; END LOOP; SELECT sum1 AS 累加和; END / DELIMITER ;知识储备【LOOP循环示例】使用LOOP循环语句,用于完成输入一个正整数并求从1到该数的累加和。 续: - if ix then - leave add_sum; - end if; - end loop; loop循环语句执行
9、结果 - select sum as 累加和; - end /mysql delimiter ;创建和使用存储过程 15知识储备互动:讲述使用LOOP循环语句求累加和的程序设计思路。16创建和使用存储过程知识储备(四) WHILE循环控制语句 WHILE循环控制语句语法规则:begin_label:WHILE 布尔表达式 DO语句序列; ITERATE begin_lable; LEAVE begin_lable1;END WHILE;创建和使用存储过程 17知识储备【WHILE循环示例】使用WHILE循环语句求1+2+100的和。mysql delimiter /mysql create p
10、rocedure addsum1() - begin - declare i int default 1; - declare sum int default 0; - while i set sum=sum+i; - set i=i+1; - end while; - select sum; - end /mysql delimiter ;创建和使用存储过程 18知识储备互动:讲述使用WHILE循环语句求累加和程序设计思路。19创建和使用存储过程任务实施1.创建不带参数的存储过程并调用【任务1】创建一个存储过程proc_xsqk,从数据库XSCJ的XSQK表中查询出所有专业名为“信息安全”的
11、人数。mysql delimiter / #改变MySQL语句结束标志为/mysql create procedure proc_xsqk() - reads sql data - begin - select count(*) 信息安全专业人数 from xsqk - where 专业名=信息安全% ; - end /mysql delimiter ; #把MySQL语句结束标志还原为默认的“;”【任务2】调用存储过程proc_xsqk()。mysql call proc_xsqk();创建和使用存储过程 20知识储备互动:讲述创建存储过程proc_xsqk的思路。21创建和使用存储过程任务
12、实施2.创建带参数的存储过程并调用【任务3】创建一个存储过程proc_drop_cj,用于删除成绩表CJ中某个学生的所有成绩信息。mysql delimiter / mysql create procedure proc_drop_cj(in xh char(10) - begin - delete from cj - where 学号=xh; - end/mysql delimiter ;【任务4】调用存储过程proc_drop_cj。mysql call proc_drop_cj(2020110401);创建和使用存储过程 22知识储备互动:讲述创建存储过程proc_drop_cj的思路。
13、23创建和使用存储过程任务实施2.创建带参数的存储过程并调用【任务5】创建一个带有输入输出参数的存储过程proc_count,用于统计xsqk表中某个指定专业名的学生人数。mysql delimiter /mysql create procedure proc_count(in ZYM varchar(20),out count_num int) - reads sql data - begin - select count(*) into count_num from xsqk - where 专业名=ZYM; - end /Query OK, 0 rows affected (0.01 sec)mysql delimiter ;【任务6】调用存储过程proc_count,并显示指定专业名的学生人数。mysql call proc_count(信息安全,num);创建和使用存储过程 24知识储备互动:讲述创建存储过程proc_count的思路。25创建和使用存储过程任务拓展【拓展1】使用工具软件SQLyog来创建一个存储过程,用于查询选修了某门课程号的男生人数。创建和使用存储过程 26任务拓展【拓展2】调用存储过程count_kch。创建和使用存储过程 27知识储备互动:使用工具软件SQLyog来创建一个存储过程,用于查询选修了某门课
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年老年主动脉瓣狭窄查房课件
- 低层酒店设计案例
- 健康管理对患者评估干预
- 煤矿安全教育
- 豪斯翻译质量评估模式
- 科学教育活动的意义
- 罗伊模式护理颅脑损伤血钠紊乱
- 产品设计核心要素解析
- 美丽拼音教学课件
- 酒店节日活动策划方案
- 2026云南玉溪通海县供销合作社社有企业招聘4人考试参考题库及答案解析
- 五月志愿服务课件:青春建功新时代 志愿奉献谱华章
- 堆与堆排序课件
- 破碎岩石施工方案(3篇)
- GB/T 17889.7-2026梯子第7部分:可分离式平台梯
- 建筑工程进场材料、构配件和设备质量控制工作标准
- JCT908-2013 人造石的标准
- GB/T 10857-2005S型和C型钢制滚子链条、附件和链轮
- 高大支模架工程监理实施细则
- 科技论文写作与学术规范
- 第6章-马尔可夫预测方法课件
评论
0/150
提交评论