存储过程、函数和事件

存储过程、存储函数、事件

函数就是一些功能模块,当想要完成某个功能,就可以调用该函数来实现。

存储过程:

一个存储过程就是一个功能模块。

语法:创建:

delimiter

create procedure 名字(参数列表)

begin

sql语句;

end

delimiter;

调用:call 名字();

参数列表:参数模式;参数名;参数类型

参数模式:

in:改参数可以作为输入

out:改参数可以作为输出

inout:又可以作为输入又可以作为输出

删除存储过程:drop procedure 存储过程名;

查看存储过程:show create procedure 存储过程名;

存储函数

区别:

存储过程:可以有0个返回值,也可以有多个返回值

函数:有且只有一个返回值

语法:

create function 函数名(参数列表) returns 返回类型

begin

函数体

end

参数列表包含两部分:参数名和参数列表

函数体一定有return语句,没有放在函数体最后也不报错,但是不建议。

调用语法:select 函数名(参数列表)

例子:

DELIMITER $; CREATE FUNCTION myf1() RETURNS INT BEGIN DECLARE c INT DEFAULT 0; SELECT COUNT(*) INTO c FROM emp; RETURN c; END $;

查看函数: show create function 函数名;

删除函数:drop function 函数名;

判断与循环语句

if语句:

if 判断 then sql语句1;

else if 判断2 then sql语句2;

.....

else sql语句n;

end if;

 

case语句:

case xx

when 值1 then sql语句1;

when 值n then sql语句n;

else sql语句;

end case;

 

循环:

1.while 条件 do

SQL语句;

end while;

如果条件为真,循环执行do和end while语句之间的语句

 

2.repeat

SQL语句;

until 条件(没有分号)

end repaat;

until后面的条件不成立就不断循环

 

3.标签:loop

sql语句;

if 条件 then leave 标签;

end if;

end loop 标签;

自身没有退出循环的条件,如果想要跳出循环,需要借助if语句,满足某种条件利用leave跳出;

 

查看存储过程:show procedure status;

查看存储过程具体内容:show create procedure 存储过程名;

删除存储过程:drop procedure 名字;

事件

计划任务

首次查看是否开起了事件任务:show variables like ‘%event_sch%’;

开启事件:set global event_scheduler=1;

创建事件的语法:

create event 事件名 on schedule 间隔(例如:every 10 minutes(每隔十分钟))

starts ‘时间’

ends ‘时间’

do sql语句;

从开始时间到结束时间,每间隔多次长时间,执行一吃sql语句。

当前时间:current_timestamp+interval 时间;什么时间以后开始执行;

查看当前系统有哪些事件:show events;

查看事件具体信息:show create event 事件名;

删除一个事件:drop event 事件名;

原文地址:https://www.cnblogs.com/susexuexi011/p/14483077.html