存储过程(Stored Procedure)是在大型数据库中,一组为了完成特定功能的SQL语句集,它存储在数据库中.
一次编译永久有效.用户通过指定的存储过程的名字,并给出参数来执行它.数据库利用存储过程能够提升效率.
总之:存储过程就是一组经过编译号的sql语句集合.它能够提高sql语句的重复利用和效率.
存储过程一般用在对数据的增删改操作.
创建语句:
delimiter 分隔标记符
create procedure 存储过程名称(参数列表)
begin
sql语句1;
sql语句2;
...
sql 语句n
end 分隔标记符
delimiter ;
创建存储过程的注意事项:
语句:
call 存储过程名称(实参);
例1:向emp表中修改某员工的工资
例2:计算两个int变量之和
例3:交换两个int变量的值
语句:
drop procedure 存储过程名称;
语句:
show create procedure 存储过程名称;
一组预先编译好的sql语句的集合.可以提高代码的重用性,减少编译次数,提高了效率.
函数和存储过程的区别:存储过程可以有0个或多个返回结果,适合做增删改.函数有且仅有一个返回值,适合做处理数据后返回一个结果.
MySQL提供了很多函数供我们使用,使用过程见第四章的常用函数部分.
有时候MySQL提供的函数不够我们使用,需要我们自定义函数,自定义函数的语句如下:
delimiter 分隔符
create function 函数名称(参数列表) returns 返回值类型
begin
sql语句1;
sql语句2;
...
sql语句n;
end 分隔符
delimiter ;
创建函数的注意事项:
例1:创建一个函数,该函数用来求两个整数相乘的结果
语句:
show create 函数名称;
语句:
drop function 函数名称;
在函数(包括存储过程)中需要书写函数体,那么有时就要有一定的流程控制,那么就需要流程控制的语句.流程总共有:顺序结构, 选择结构, 循环结构.
if elseif else语句:能够实现多选一
语句:
if 条件表达式1 then 语句1;
elseif 条件表达式2 then 语句2;
...
else 语句n;
end if;
注意:该语句只能出现在begin...end中
while语句:实现循环
语句:
while 条件表达式 do
循环体语句...
end while;
两个关键字:
iterate:类似于continue,结束本次循环,继续下次循环
leave:类似于break,结束循环.
原文:https://www.cnblogs.com/CHENFANgY/p/13085227.html