MySQL入门——存储过程/函数

存储过程/函数

存储过程/函数 是保存在mysql服务器中的一些sql语句的集合(当然其中也会包含一些变量声明、逻辑语句等)
注意它是在mysql服务器上的,这样一来,客户端与mysql服务端的交流中,无需具体sql的传递,仅仅一个存储过程名或函数名即可,sql语句是在mysql服务器内部读取的,会非常迅速。
mysql的存储过程/函数与oracle的相差无几。
初学者了解大概即可,注意下存储过程和函数的写法以及调用方法,光标这种东西大数据时尽量少用。

> create procedure sp_name ([in|out|inout] paramter type, ...)
> begin
>    declare aaa varchar(20) default 'tiemfad' //定义局部变量
>    set @bbb=122 //定义全局变量,
>    set aaa='3qrj;s' //为变量赋值
>    select name into aaa from tb_name where id=1
> end;
>create function sp_name (paramter type) return type
>begin
>	return (select name from tb_name where id = 1 )
>end;

在mysql中存在一个光标对象,它与oracle中的游标相类似,初学者可以将其视为一个list集合,在使用时逐条遍历,光标需要经历声明(赋值)、打开、使用、关闭,四个步骤。

>DECLARE cursor_name CURSOR FOR (select name from tb_name where sid = 1);
>OPEN cursor_name
>FETCH cursor_name INTO var_name ....
>CLOSE cursor_name
存储过程的调用
> call sp_name(paramter);
函数的调用
> select function_name(paramter);

初学者应注意,在面对大数据量的操作时,尽可能避免使用光标,它是十分影响速度的。

还存在一些流程控制语句,如

>IF x=1 THEN
>...
>END IF
>CASE val
>WHEN val THEN ...
>...
>ELSE ...
>END CASE
>WHILE i<=100 DO
>...
>END WHILE
>BEGIN
>...
>loop_label: LOOP   //注意这里有个自定义的loop_label,其实就是一个位置标识。
>...
>if i>100 then
>leave loop_label
>end if
>end loop;
>REPEAT
>...
>UNTIL  condition
>END REPEAT
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缔曦_deacy

码字不易,请多支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值