存储过程: procedure,大型数据库中一组为了完成特定功能的sql语句的集合。存储在数据库中,一次编译永久有效。
优点
1.减少网络流量
2.增强代码的重用性和共享性
3.加快系统运行速度
4.使用灵活
创建存储过程语法
delimiter //
create procedure 过程名(变量名 类型,变量名 类型)
begin
sql语句;
sql语句;
end //
delimiter ;
drop procedure if exists mypro;
delimiter//
create procedure mypro()
begin
select student.*
from student
inner join sc on student.s = sc.s
where c = '01';
end //
delimiter;
存储过程没有返回值,但是可以通过定义参数的类型,IN|OUT|INOUT三种参数类型,不定义默认是输入类型参数。
调用存储过程
call 存储过程名(参数列表);
call mypro();
删除存储过程
drop procedure 过程名;
drop procedure if exists 过程名:
他俩的区别是,如果删除不存在存储过程 加 if exists 不报错。
函数和存储过程的区别
1、函数中不能写sql语句,存储过程中可以写sql语句,存储过程中可以调用函数。
2、函数有返回值,存储过程没有返回值,但是可以声明参数为OUT|INOUT类型来返回数据。