MySQL-存储过程
存储过程和存储函数
类似于java中的方法
好处:提高代码重用性 简化操作
存储过程
含义:一组预先编译好的sql语句的集合,批处理语句
提高代码重用性 简化操作 减少了编译次数、与数据库连接次数
一、创建语法
create procedure 存储过程名(参数列表)
begin
存储过程体
end
/*
注意:
1.
参数列表包含三部分
参数模式 参数名 参数类型
in stuname varchar(20)
参数模式:
in:该参数可以作为输入,调用方传入值
out:该参数可以作为输出,返回值
inout:既可以输入又可以输出,需要传入值又可返回值
2.存储过程体的每条sql语句结尾要求必须加分号
存储过程结尾可以用delimiter重新设置
delimiter $
*/
二、调用
call 存储过程名(实参列表)
三、删除存储过程
drop procedure 存储过程名
四、查看存储过程信息
show create procedure 存储过程名
存储过程:可以有0个返回,多个返回,适合做批量插入、批量更新
函数:有且只有一个返回,适合做处理数据后返回一个结果
函数
一、创建语法:
create function 函数名(参数列表) returns 返回类型
begin
函数体
end
参数列表
参数名+参数类型
加上returns
分支结构
1.if函数
语法:
if(表达式1,表达式2,表达式3)
执行顺序
如果表达式1成立,则if函数返回表达式2的值,否则返回表达式3的值
2.case
情况一:类似于switch语句,等值判断
case 变量|表达式|字段
when 要判断的值 then 返回的值
when ................. then ............
......
else 要返回的值
end
情况二:类似于if,区间判断
case
when 要判断的条件1 then 返回的值
when 判断条件2 then 返回的值
。。。
else 要返回的值
end
表达式可以放任何地方
独立语句只能放在begin end中
3.if结构
if 条件1 then 语句1;
elseif 条件2 then 语句2;
。。
end if
应用在begin end中
二、循环控制
while、loop、repeat
iterate == continue
leave == break
while
while 循环条件 do
循环体;
end while;
loop
loop
循环体
end loop;
repeat
repeat
循环体;
until 结束循环的条件
end repeat ;

浙公网安备 33010602011771号