在MySQL中不能直接创建存储过程和函数 ,之类的对象.

 

必须将这些对象放在一个 空间中。

 

delimiter $$      

 

 

$$ delimiter ;

 

否则会报错。

 

=======================================mysql 存储过程

 

存储过程: MySQL  中的sp 有输入参数和输出参数 ,不能有返回直

 

MySQL 的sp 参数分为三种类型.

 

out :输出参数

 

in:输入参数,默认是输入参数。

 

input:该参数比较特殊 ,同时拥有输出和输入参数的功能 。当有需要把一个输入参数 传入sp内部

然后 在sp内部更改该参数值 在输出的时候 ,参数就嫩发挥其功能了 。

 

下面是一些实例。

 

======in  , out

 

delimiter $$

 

create procedure sp_in_out(out t int, in  p int)

begin 

 

set t=p;

 

end;

 

$$ delimiter ;

 

set @1=9;

call sp_in_out(@1,10);

select @1;

 

执行结果为10;

 

=== inout 

 

delimiter $$

 

create proceure  sp_inout(inout p int )

begin

 

set p=7;

 

end ;

$$ delimiter ;

 

set @2 =10;

call sp_inout(@2);

select @2 ;

 

执行结果为7

 

===================================MySQL 函数 

 

MySQL中的函数不想SQLServer中的那样 ,类型多样

 

在MySQL中只有一种类型函数(sqlserver 中有三种类型的函数)

 

我把这种函数类型定义为标量值函数(在sqlserver 中分为:标量值函数,表值函数,多语句表值函数)

 

所以对MySQL而已 ,函数的语法相当额简单。

 

值得注意的是 ,

 

1.mysql 函数只有输入参数 ,当然这个参数也不是必须的。

2.MySQL只能返回一个具体的值 ,这就是我为什么把他定义为标量值函数的原因,

 

下面看一下具体的语法

 

delimiter $$

 

create function sp_function()

returns  int

begin

 

return 1;

 

end;

 

$$ delimiter ;