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 ;

posted @ 2020-09-25 22:46  LongSL  阅读(122)  评论(0)    收藏  举报