普通的存储过程
需求
定义一个存储过程,查询所有老师的数据
DELIMITER !
CREATE PROCEDURE p1()
BEGIN
SELECT * FROM teacher;
END !
DELIMITER ;
CALL p1();
带in参数的存储过程
需求
根据提供的id查询对应老师的数据
DELIMITER !
CREATE PROCEDURE p2(IN teacherid INT)
BEGIN
SELECT * FROM teacher WHERE id = teacherid;
END !
DELIMITER ;
CALL p2(1);
带out参数的存储过程
提供一个老师id给存储过程 需要返回老师的名字 当我们拿到返回的名字时 再进行一个输出
DELIMITER !
CREATE PROCEDURE p3(IN teacherid INT, OUT teachername VARCHAR(11))
BEGIN
SELECT NAME INTO teachername FROM teacher WHERE id = teacherid;
END !
DELIMITER ;
CALL p3(2,@myteacher);
SELECT @myteacher;
inout类型的参数
需求 接收一个数字 返回它的100倍
DELIMITER !
CREATE PROCEDURE p4(INOUT num INT)
BEGIN
SET num = num * 100;
END !
DELIMITER ;
SET @mynum = 5;
CALL p4(@mynum);
SELECT @mynum;