目录
1.写一个完整的包括参数,变量,变量赋值,条件判断,UPDATE语句,SELECT返回结果集的存储过程
3.创建实现功能相同的存储函数,比较他们之间的不同点在什么地方
1.写一个完整的包括参数,变量,变量赋值,条件判断,UPDATE语句,SELECT返回结果集的存储过程
DELIMITER //
CREATE PROCEDURE count1 (IN sid INT,out num int)
BEGIN
declare a int;
declare b int;
set a=0,b=1;
SELECT COUNT(*) INTO num FROM fruits WHERE s_id = sid;
if a <=0 then
select a;
else
select b;
end if;
update fruits set f_name = 'aaaa' where f_name = 'xxxx';
END //
DELIMITER ;
先查看运行前,fruits表的内容
运行代码
查看结果
原本的名字xxxx已经更改为aaaa,update代码生效
2.创建一个执行动态SQL的存储过程
DELIMITER //
CREATE PROCEDURE count2 (IN sid INT, OUT num INT)
BEGIN
SELECT COUNT(*) INTO num FROM fruits WHERE s_id = sid;
select num;
END //
DELIMITER ;
动态功能在第一问中已经实现,这里稍作修改
3.创建实现功能相同的存储函数,比较他们之间的不同点在什么地方
DELIMITER //
CREATE function count3( sid int)
returns char(50)
begin
DECLARE a int;
select count(*) into a from fruits where s_id = sid;
return(select a);
end //
DELIMITER ;
不同:
1.声明输入变量时,如果存储函数声明in输入会报错(默认为in),去掉in则不会
2.存储函数有returns和return两个必须存在的关键字
3.调用的方式不同一个是select另一个是call