当前位置:文档之家› MySQL存储过程简单入门

MySQL存储过程简单入门

MySQL存储过程语法
1、概念
存储过程就是能完成一定操作的一组SQL语句。

2、作用
大大提高效率(存储过程本身执行速度非常快,而且,调用存储过程大大减少数据库交互次数);提高重用性。

3、使用方法
1、创建:
create procedure sp_name()
begin
……
end
注意:可能有参数。

2、调用:
call sp_name()
注意:括号不能省略。

3、删除:
drop procedure sp_name
注意:没有括号,不能在一个存储过程中删除另一个存储过程,只能调用。

4、语句:
条件语句,
if 条件then
statement
else
statement
end if
while循环语句,
[label:] while expression do
statement
end while [label];
loop循环语句,
[label:] loop
statement
end loop [label];
repeat until循环语句,
[label] repeat
statement
until expression
end repeat [label];
5、常用命令:
show procedure status:显示数据库所有存储过程基本信息。

show create procedure sp_name:显示一个存储过程详细信息。

关于运算符和基本函数与Java有些区别,用时注意就行。

4、实例
1、创建:
create procedure proc_name (in parameter integer)
begin
declare variable varchar(20);
if parameter=1 then
set variable='MySQL';
else
set variable='PHP';
end if;
insert into tb (name) values (variable);
end;
注意:代码不区分大小写;存储过程之间以及存储过程与内建函数不能同名;
存储过程参数(in传入,out传出,inout可传入,修改后传出,缺省是in);
由于存储过程内部要以分号结束,需要delimiter进行更改。

2、实现:
⑴、mysql –u用户名–p用户密码
⑵、delimiter //(将结束符号“;”改成“//”,避免与存储过程冲突)
⑶、use 数据库名
⑷、……(创建存储过程)
⑸、call proc_name(5)//(调用存储过程)
--------------------------------------------
call proc_name(@para)//(对应存储过程定义中out的输出)
select @para//
⑹、show procedure status//与show create procedure proc_name//
3、程序代码调用:(out型的部分代码)
try{
//调取out型的存储过程P(计算记录总数)
stmt = conn.prepareCall("{call p(?)}");
//读取所有OUT型的存储过程的返回参数数据
stmt.registerOutParameter(1, Types.INTEGER);
stmt.execute();
int i= stmt.getInt(1);
System.out.println("count = " + i); }…。

相关主题