存储过程
    存储过程就是在sql里面定义条件判断各种函数执行的一系列操作。
 
定义存储过程:
    create  procedure proc_p1()
    begin
        select * from     man;
    end
 
调用存储过程:
    call proc_p1()
 
删除存储过程:
drop procedure proc_p1; / dro procedure if exists proc_p1;
 
定义带参数的存储过程:
set @o = 5;
create procedure proc_p1(
in i1 int,//in i1 int 定义参数
out i2 int,  //out i2 int定义输出参数
inout ii int) //
begin
    declare d1 int;  declare 定义变量关键字
    declare d2 int default 3; 定义变量并制定默认值
    set d1 =i1+d2;  设置变量
    select * from man_to_women where nid > d1;
 
    if i1 =1 then
        set i2 = 100+d2;
    elseif i1 =2 then
        ...
    else
        set i2 = 1000 +d2;
    end if; 
end
 
delimiter xx  指定终端的结束符
call proc_p1(1,@o,@u); 这里的@u是吧变量当作引用传递进去。
select @u;
 
想要获取存储过程调用的参数的值,可以这样:
ffect_row = cursor.execute("select @_proc_p1_0,@_proc_p1_1,@_proc_p1_2")
result = cursor.fetchone();
 
我们也可以在存储过程中将select获取的结果不返回给用户,而是在内部再一次处理:
begin
    declare d2 int 0;
    select man into d2 from man where man_id=d2;
    select name from man where nid = d2;
end