数据库的存储过程

一、定义

存储过程是一种数据库对象,它封装了一组 SQL 语句和逻辑操作,可以通过调用存储过程来执行这些操作。

理解:类似于函数

注意:存储过程必须调用,才有用!!!

好处:减少代码的冗余

二、最简单的存储过程(无传入参数无返回参数的存储过程)

delimiter xx
CREATE PROCEDURE pro01()
	BEGIN
		SELECT * FROM student;
		SELECT * FROM course;
		SELECT * FROM class;
	END xx
delimiter ;

# 调用存储过程
CALL pro01();

参数类别:in – 传入参数, out – 传出参数, inout – 传入传出参数

三、需求一

需求:创建存储过程,传入id,查询出该学生的信息

delimiter xx
CREATE PROCEDURE pro02(IN s_id INT) # s_id叫做形式参数(形参) ,形参必须规定类型
	BEGIN
		SELECT * FROM student WHERE id=s_id;
	END xx
delimiter ;
# 调用存储过程
CALL pro02(1); # 2叫做实际参数(实参),实参表示传入的具体数据,实参最好和形参的类型一致

四、需求二

需求:创建存储过程,传入id,传出学生的姓名

delimiter xx
CREATE PROCEDURE pro03(IN s_id INT,OUT s_name VARCHAR(32))
	BEGIN
		SELECT name INTO s_name FROM student WHERE id=s_id;
	END xx
delimiter ;

# 调用存储过程
CALL pro03(1,@s_name);
SELECT @s_name;

五、需求三

需求:创建存储过程,传入id,传出学生的年龄

注意:传入参数和传出参数的类型是一样的,就可以将二者合并(INOUT)

delimiter xx
CREATE PROCEDURE pro04(INOUT param INT)
	BEGIN
		SELECT age INTO param FROM student WHERE id=param;
	END xx
delimiter ;

# 调用存储过程
set @param = 2; # 声明一个变量
CALL pro04(@param);
SELECT @param;

六、删除存储过程

DROP PROCEDURE pro01;
DROP PROCEDURE pro02;
DROP PROCEDURE pro03;
DROP PROCEDURE pro04;

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部