MySQL存储过程与函数

存储过程

存储过程的概念

存储过程(Stored Procedure)是在大型数据库中,一组为了完成特定功能的SQL语句集,它存储在数据库中.
一次编译永久有效.用户通过指定的存储过程的名字,并给出参数来执行它.数据库利用存储过程能够提升效率.
总之:存储过程就是一组经过编译号的sql语句集合.它能够提高sql语句的重复利用和效率.
存储过程一般用在对数据的增删改操作.

存储过程的创建

创建语句:

delimiter 分隔标记符
create procedure 存储过程名称(参数列表)
begin
sql语句1;
sql语句2;
...
sql 语句n
end 分隔标记符
delimiter ;

创建存储过程的注意事项:

  • 1.参数列表包含三个部分:参数模式, 参数名称, 参数类型.其中参数模式有:in, out, inout三种.in:代表该参数可以接收输入数据(类似java中方法的形参).out:代表该参数可以返回输出结果(类似java中方法的返回值).inout:代表该参数既能接收数据,又可以返回输出结果.
  • 2.如果存储过程的sql语句仅有一句,那么begin和end关键字可以省略.
  • 3.因为存储过程体中的sql语句必须要加分号结尾,所有为了不产生结束语句的歧义,可以使用关键字:delimiter用来重新定义mysql的分隔符.

存储过程的调用

语句:

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.参数列表包含两部分:参数名称和参数类型
  • 2.函数体必须要有return语句.
  • 3.函数体中只有一条sql,begin和end关键字可以不需要写
  • 4.delimiter定义分隔符
  • 5.函数一般用来做查询使用,insert, delete, update不要出现在函数体中.

例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,结束循环.

posted @ 2020-06-10 15:01  CHENFANgY  阅读(368)  评论(0编辑  收藏  举报