day06 MySQL数据库存储过程和函数
一、存储过程和函数的概述:
数据库的存储过程和存储函数是指在数据库中定义的一些sql语句的集合,直接调用这些存储过程的名字或存储函数的名字就可以直接使用这些sql。可以避免开发人员大量的写一些sql语句操作数据,可以减少客户端和服务器端的数据传输。所以,学好存储过程和存储函数也是很重要的哦!
二、存储过程【procedure】
1、创建存储过程createprocedure自定义一个存储名()
begin
select语句
end;
call存储名();调用存储过程
2、删除存储过程dropprocedure存储名;
3、带参数的存储过程
3.1:in参数,即输入参数createprocedure存储名(in列名数据类型)
begin
select语句
end;
call存储名(列名的值);
3.2:out参数,即输出参数createprocedure存储名(out列名数据类型)
begin
select*into列名from表名;
end;
call存储名(@列名);
3.3:inout参数,即输入输出参数createprocedure存储名(inout列名数据类型)
begin
select*into列名from表名;
end;
set@列名=某个值//定义一个变量并赋值
call存储名(@列名);
4、定义变量
4.1:定义局部变量declareaint//定义
seta=10;//赋值
selecta;//输出
4.2:定义全局变量“@作为起始符”set@b=20;//定义会话变量
select@b;//输出
三、存储函数【function】
1、创建存储函数定义的实例。createfunction函数名(aint,bint)returnsint
begin
declarecint;
setc=a+b;
returnc;
end;
select函数名(a的数值,b的数值)//调用存储函数
四、光标的运用
在MySQL查询数据库肿,存储过程和存储函数中使用光标可以实现逐条的读取结果集中的记录。主要包括以下几个步骤:
1、声明光标:declare光标名cursorselect_name
译;select_name:是一个select语句,返回一行或多行数据。
实例:declareinfo_studentcursorforselect
sid,name,age
fromstudent
wheresid=1;
2、打开光标open光标名称
3、使用光标fetch光标名称into列名;
4、关闭光标close光标名称
五、查看存储过程和函数
1、使用show status 语句查看show{procedure|function}status[like'pattern']
译:
procedure:表示查询存储过程
function:表示查询存储函数
like'pattern':用来匹配存储过程或函数名称。
2、使用show create语句查看showcreate{procedure|function}sp_name;
译;
procedure:表示查询存储过程
function:表示查询存储函数
sp_name:表示存储过程或函数名称
3、修改存储过程和存储函数alter{procedure|function}sp_name
{containssql|nosql|readssqldata|modifiessqldata}
|sqlsecurity{definer|invoker}
|comment'string'
译:
procedure|function:表示是存储过程还是存储函数
sp_name:表示名称
containssql:表示子程序包含sql语句,但是不包含读写数据的语句
nosql:表示子程序包含sql语句
readssqldata:表示子程序中包含读数据的语句
modifiessqldata:表示子程序中包含写数据的语句
definer|invoker:表示指明权限执行,前者是定义者自己能够执行,
后者是调用者可以执行
comment'string':注释信息
4、删除存储过程和存储函数drop{procedure|function}sp_name
六、结束语:
学到这里,存储过程和存储函数就已经学完了哦!好好消化一下吧!