mysql存储过程/存储函数/触发器/事件

前言

数据库本身支持存储过程,不同的数据库管理系统对存储过程的支持都不尽相同

从mysql5.0开始,mysql支持存储过程/存储函数/触发器/事件

使用存储过程的优点

存储过程执行一次后,其执行的规划就驻留在高速缓冲存储器上,以后再次调用存储过程时,只需从高速缓冲存储器中调用以编译好的二进制代码执行,提高系统性能

(也就是说,sql本质上是编译型语言,存储过程这个程序用sql语句写好之后,将sql语句进行编译,编译得到二进制代码可以直接运行在机器上,无需再次编译,一次编译就可以在机器上无数次运行,这就是存储过程的优点)

对存储过程的理解?

sql语句能在计算机上运行,本质上也是转换成机器码了,sql是一门编译型语言

存储过程就像是一个函数,有输入参数,有返回值

如何使用存储过程?

delimiter //

show procedure status

create procedure xxx(in 参数名 参数类型)

begin

sql....................

end

//

调用存储过程

call xx(参数)

删除存储过程

drop procedure xxx

sql....................存储过程体

声明局部变量declare xx 类型;

使用set为局部变量赋值set xx=值;

流程控制语句if  ...then  ....elseif...   then  ...else

存储函数

存储函数包含returns语句,存储过程没有returns语句

创建存储函数

create function xx(参数)

return type

delimiter //

create function xxx()

returns integer

begin

returns (select count(*) from xx);

end 

//

存储函数创建之后就如同系统提供的内置函数一样调用即可

select xxx();

drop function xxx;

 

 

;

 

 

 

 

 

你可能感兴趣的:(mysql数据库)