写一个完整的包括参数、变量、变量赋值、条件判断、UPDATE语句、SELECT返回结果集的存储过程。创建一个执行动态SQL的存储过程。
创建实现功能相同的存储函数,比较他们之间的不同点在什么地方?
1.先编写一个表,并添加数据,查看成功创建
CREATE TABLE dome_3
(
id INT(10) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
age INT(10)
);
INSERT into dome_3 values
(1,'zhangsan',18),
(2,'lisi',19),
(3,'wangwu',20);
select * from dome_3;
2.编写存储过程
delimiter //
create procedure view1(in id_s1 int(10),id_s2 int(10),name_s varchar(20),age_s int(10))
begin
if id_s1 is null then select 'id不能输入空';
else update demo_3 set id= id_s2,name=name_s,age=age_s where id=id_s1;
end if;
select * from demo_3;
end//
delimiter ;
3.调用
call view1(1,4,'joker',17);
上述包括了参数、变量、变量赋值、条件判断、UPDATE语句、SELECT返回结果集的存储过程。是一个执行动态SQL的存储过程。
4.存储过程和存储函数的不同点:
关键字不同,调用语法不同,存储过程不需要返回类型,而函数则必须要返回类型,储过程可以看做就是一组封装好的sql语句,而存储函数是为了完成某种功能.故存储过程不可应用在查询语句中,存储函数反之。