存储过程
类似Java中的“方法”
好处:
1、 代码复用
2、 简化操作
存储过程:一组预先编译的SQL语句的集合,理解成批处理语句
减少编译过程,减少连接数据库次数,提高效率
一、 创建
Create procedure 存储过程名(参数列表)
Begin
存储存储体/方法体(SQL语句)
End
注意:
1、参数列表
参数模式 参数名 参数类型
例如: In stuname varchar(20)
参数模式:
In:参数可作为输入,调用方需要传入值
Out:参数可作为输出,参数可作为返回值
Inout:参数可做输入输出,该参数需要传入值,又可以返回值
2、begin end
如果存储过程只有一句话,begin end 可以不写
存储过程每条SQL语句结尾都要加分号
存储过程结尾使用delimiter重新设置:delimiter 结束标记
例如:delimiter $
二、 调用
Call 存储过程名(实参列表);
1、 空参列表
例如:
创建:
Delimiter 为结束标记
Create procedure mycc()
Begin
Sql语句
End $
调用:
Call mycc()$
2、 in模式过程存储过程
create procedure mycd(IN username varchar(20),IN userage int,…)
begin
declare result int dafault 0; 声明并初始化
sql语句(IN中的username是局部变量可直接用于where筛选条件)
select if (result>0,’成功’,’失败’); 使用变量
end $
调用:(字符集错误更换字符集即可(set names gbk 等))
Call mycc(‘lgh’) $
3、 out模式存储过程
创建:
create procedure myce(IN username varcher(10),OUT name varchar(20))
begin
select 表.name into name
sql语句
end $
调用:
Set @name
Select @name $
4、 inout模式存储过程
创建:
create procedure mycf(INOUT a int,INOUT b int)
begin
set a= a2;
set b=b2;
end $
调用:
Set @a=10
Call mycf(@a,@b)
三、 删除存储过程
Drop procedure 单个存储过程名;
四、 查看存储过程名
Show create procedure 存储过程名;
函数
区别:
存储过程可有若干返回,适合批量插入和更新
函数有且仅一个返回,适合做数据处理
一、创建语法
Create function 函数名(参数列表) returns 返回类型
Begin
函数体(最后要有return 语句)
End
参数列表可为空
例如:
Create function myf1(num1 float,num2 float) returns float
Begin
declear
仅有一句话时可省略begin and
使用delimiter语句设置结束标记
二、调用语法
Select 函数名(参数列表)
三、查看函数
Show create function 函数名;
四、删除
Drop function 函数名;
网友评论