4,循环
LOOP、END LOOP
drop procedure if exists _loop;
create procedure _loop(out counter int)
BEGIN
declare temp int default 0;
set counter=0;
my_loop:LOOP
set counter=counter+1;
set temp=temp+1;
if counter=10 THEN
leave my_loop;
end if;
end loop my_loop;
select temp as result;
end;
call _loop(@a);
5、WHILE DO、END WHILE
DROP PROCEDURE IF EXISTS _while;
CREATE PROCEDURE _while(OUT counter INT)
BEGIN
declare temp int default 0;
SET counter =0;
WHILE counter != 10 DO
SET counter =counter+1;
set temp =temp+1;
END WHILE;
select counter as temp1;
END;
call _while(@a);
6、REPEAT、UNTILL
drop PROCEDURE if exists _repeat;
create procedure _repeat(out counter int)
BEGIN
set counter=0;
REPEAT
set counter=counter+1;
until counter=10 end repeat;
select counter as temp;
end;
call _repeat(@q);
7,存储方法
存储方法与存储过程的区别
1,存储方法的参数列表只允许IN类型的参数,而且没必要也不允许指定IN关键字
2,存储方法返回一个单一的值,值的类型在存储方法的头部定义
3,存储方法可以在SQL语句内部调用
4,存储方法不能返回结果集
语法:
create function 函数([函数参数[,….]]) Returns 返回类型
Begin
If
Return (返回的数据)
Else
Return (返回的数据)
end if;
end;
一个简单的存储函数实例
drop function if exists purchase_and_redeem_function;
CREATE function purchase_and_redeem_function(date int)
returns varchar(80)
BEGIN
return (SELECT tbalance
FROM user_purchase_and_redeem
WHERE report_date=date); //这里面的SQL语句根据自己表编写
END;
select purchase_and_redeem_function(20140501);//这是调用存储函数
8,触发器
触发器在INSERT、UPDATE或DELETE等DML语句修改表时触发
触发器的典型应用场景是重要的业务逻辑、提高性能、监控表的修改等
触发器可以在DML语句执行前或后触发
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-40521-3.html
几个男人娶一个老婆显然不是谢教授要表达的真实内容