#第10章 存储过程与存储函数
#【例10.1】修改MySQL的结束符为“//”。
delimiter //
delimiter ;
#【例10.2】创建一个不带参数的存储过程P_str,输出“Hello MySQL!”。
#(1)选择数据库
use stusys;
#(2)设置结束符号
delimiter //
#(3)创建
create procedure P_str()
#存储过程主体部分
begin
select 'Helle Mysql' as 课程名称;
select '上海立达学院数字科学学院_202109124窦子涵' as 个人简介;
end //
delimiter ;
#(4)调用存储过程
call P_pic;
#(5)删除存储过程
drop procedure P_str;
#【例10.3】创建一个带参数的存储过程P_maxGrade,查询指定学号学生的最高分。
use stusys;
delimiter //
create procedure P_maxGrade(in v_sno char(10))
begin
select max(Grade) from score
where v_sno=sno;
end //
delimiter ;
call P_maxGrade('191003');
use stusys;
select * from score;
delimiter //
create procedure P_maxGrade(in v_sno char(10))
begin
select max(Grade) from score
where v_sno=sno;
end //
delimiter ;
call P_maxGrade('191003');
#【例10.4】创建存储过程P_math,如果”高等数学”课程的平均成绩大于80分,则显示”高等数学成绩良好”,否则显示”高等数学成绩一般”。
#【例10.5】创建存储过程P_title,将教师职称转变为职称类型。
#【例10.6】创建存储过程P_integerSum,计算1~100的整数和。
#【例10.7】创建存储过程P_oddSum,计算1~100的奇数和。
#【例10.8】创建存储过程P_factorial,计算10的阶乘。
#【例10.9】创建一个存储过程,计算student表中行的数目。
#【例10.10】创建向学生表插入一条记录的过程P_insertStudent,并调用该过程。
use stusys;
select * from student;
delimiter //
create procedure P_insertStudent()
begin
insert into student
values('90090','窦子涵','男','2001-03-18',null,null);
select * from student
where sno='90090';
end //
delimiter ;
call P_insertStudent();
use stusys;
select * from student;
delimiter //
create procedure P_insertStudent()
begin
insert into student
values('191005','王燕','女','1999-04-14',null,null);
select * from student
where sno='191005';
end //
delimiter ;
call P_insertStudent();
#【例10.11】创建修改学生专业和总学分的过程P_updateSpecGrade,并调用该过程。
#【例10.12】创建删除学生记录的过程P_deleteStudent,并调用该过程。
#【例10.13】删除存储过程P_insertStudent。
#【例10.14】创建一个存储函数F_courseName,由课程号查课程名。
#【例10.15】调用存储函数F_courseName。
#【例10.16】删除存储函数F_courseName。
#注意:请同学们课外再把上面例题项目在课堂上已经操作的内容独立(不看书)再操作一遍,没有操作的对照课本运行,将过程截图写文案于CSDN。