#【例10.1】修改MySQL的结束符为“//”。
use stusys;
delimiter $$
delimiter ;
#【例10.2】创建一个不带参数的存储过程P_str,输出“Hello MySQL!”。
use stusys;
delimiter //
create procedure P_str()
begin
select 'Hello lihaoqing' as 问好;
select '上海立达学院数字科学学院大数据2班202109204_李昊卿' as 简介;
end //
delimiter ;
call P_str();
delimiter //
create procedure P_str()
begin
select 'Hello liyang' as 李阳;
end //
delimiter ;
call P_str();
#【例10.3】创建一个带参数的存储过程P_maxGrade,查询指定学号学生的最高分。
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('191002');
#【例10.4】创建存储过程P_math,如果”高等数学”课程的平均成绩大于80分,则显示”高等数学成绩良好”,否则显示”高等数学成绩一般”。
use stusys;
delimiter //
create procedure P_math()
begin
select avg('高等数学');
end //
delimiter ;
#【例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;
delimiter //
create procedure P_insertStudent()
begin
insert into student value('191005','李昊卿','男','2001-10-08',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,由课程号查课程名。
use stusys;
select cname from course;
set global log_bin_trust_function_creators=1;
delimiter \\
create function F_courseName(v_cno char(10))
returns char(10) #返回参数数据类型用returns
#声明函数的确定性
deterministic
begin #返回函数值用return
return (select cname from course where cno=v_cno);
end //
delimiter ;
#【例10.15】调用存储函数F_courseName。
select F_courseName('1004');
#【例10.16】删除存储函数F_courseName。
drop function F_courseName;
#【例10.16】删除存储函数F_courseName。