mysql数据库之存储过程
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
存储过程大体语法结构:
delimiter //表示用//结束存储过程的声明,因为mysql默认是以分号;作为语句结束的
create procedure procedurename(in myname varchar(20),out myid int,inout sex char)存储过程包含三个参数,分别是in,out,inout分别对应输入,输出,输入输出参数
begin表示存储过程的开始
declare i.....表示声明变量,就像int i=0一样,不过存储过程是反过来的,例如声明一个默认值为0的int型变量 declare i int default 0;
set 赋值语句.....表示赋值语句,例如将i赋值为1 set i=1;
sql语句......这里就是编写你要操作的sql语句了,简单查询,多表,子查询,都是在这里写
if ...then .....[else if ..then... ] else ....end if;条件控制语句,if....else
while do..表示while条件循环,while 表达式 do 执行语句 end while;
loop....有点类似于continue,结束此次循环跳转到开头重新执行下一次,标签名称:loop 执行语句 end loop 标签名称;
end
//
整个存储过程大体结构如上,这是最基本的,还有更复杂的....
调用存储过程:
set @myname='jason';表示的是设置这个变量,格式就是这样的。。。
set @myid=1;
set @sex='男';
call procedurename(@myname,@myid,@sex);
删除存储过程:
drop procedure procedurename;
整个存储过程从创建到删除,大体流程就是这样的