Mysql—存储过程和UDF函数

一、存储过程和UDF函数的区别

在这里插入图片描述

二、存储过程的定义

在这里插入图片描述
存储过程定义示例

获得大一成绩最大值和对应的学员名称
delimiter $$
create procedure getMaxScoreAndName
	(in gradeName varchar(50),out maxScore decimal(5,2),out topstudent varchar(20))
begin
	select max(score) from result r join subject s on subNO=subjectNo
	join grade g on g.gradeId=s.gradeId 
	where g.gradeName=gradeName into maxScore;
	select stu_name from student join result on stu_id=stuNo 
	where score=maxScore into topstudent;
	if @RETURNED_SQLSTATE!=null
		then select 1 incrrect;
	else select 2 correct;
	end if;
end$$
delimiter ;
call getMaxScoreAndName('大一',@max,@student);
select @max,@student;

三、UDF函数的定义

在这里插入图片描述
UDF函数的定义示例:

delimiter $$
create function func_sum(num int(3)) returns int
begin 
declare n int(11) default 1;
declare sum int(11) default 0;
 	while n<=num do
	set sum=sum+n;
	set n=n+1;
	end while;
	return sum;
end$$
delimiter ;
select func_sum(50);

猜你喜欢

转载自blog.csdn.net/wl20040124/article/details/114299566
今日推荐