1. 写一个完整的包括参数、变量、变量赋值、条件判断、UPDATE语句、SELECT返回结果集的存储过程。
创建一个判断学生成绩等级的存储过程,并且将name为wang的同学改为zhen
首先创建一个学生name的表,并且插入一些数据
create table stud_name(name varchar(20));
insert into stud_name values('wang'),('zhang'),('li');
delimiter //
create procedure per(in score int)
begin
declare compare int;
set compare := 60;
if score >= compare then
select '合格';
else
select '不合格';
end if;
update stud_name set name = 'zhen' where name = 'wang';
end //
delimiter ;
2.创建一个执行动态SQL的存储过程。
写一个从1加到n的存储过程
create proceduer p1(in n int)
begin
declare total int default 0;
while n>0 do
set total := total + n;
set n := n-1;
end while;
select total;
end;
3.创建实现功能相同的存储函数,比较他们之间的不同点在什么地方?
创建一个判断学生成绩等级的存储过程
delimiter //
create procedure per1(in score int)
begin
if score >= 60 then
select '合格';
else
select '不合格';
end if;
end //
delimiter ;
创建一个判断学生成绩等级的存储函数
delimiter //
create function fun(score int)
returns varchar(20)
begin
declare per varchar(20);
if score < 60 then
set per = 'buheige';
else
set per = 'hege';
end if;
return per;
end //delimiter ;
总结:函数和存储过程的关键字不同,一个为procedure,一个为function。函数只有输入参数没有输出参数,但是函数通过return返回参数值,存储过程既能设置输入参数也能设置输出参数,通过call关键字来调用