MySQL的自定义函数

自定义函数

函数(存储函数):

        1、需要返回值;

        2、可以指定0~n个参数。

语法格式:

create function 函数名([参数])
returns type
[characteristics] 函数体

charcateristics指定存储函数的特性,取值举例:

1、   sql security {definer|invoker};指明谁有权限来执行;

        definer表示只有定义者才能执行;

        invoker表示拥有权的调用者才可以执行,默认情况下,系统指定为definer;

2、   comment’string’:注释信息,才可以用来描述存储函数。

函数体

① 函数体是由SQL代码构成;

② 函数体可以是简单的SQL语句,比如:简单的查询语句

③ 函数体如果为复合结构需要使用begin…end语句

④ 复合结构可以包含声明、流程控制。

delimiter //          -- 设置结束符为//
create function ym_date(mydate date)
returns varchar(15)          -- returns指定函数的返回类型
begin
return date_format(mydate,'%Y-%m');         -- 函数需要返回值,return返回相应的处理结果
end//
delimiter ;          -- 恢复结束符

删除自定义函数:

drop function [if exists] func_name;

变量:可以在存储程序(存储过程和函数)中使用变量。

在存储程序中变量的作用范围在begin...end之间。

语法格式:

declare var_name[,var_name] … date_type [default value];

两种赋值方式:

Set var_name = expr[,var_name = expr]…;
Select col_name[,…] into var_name[…] table_expr;

If分支语句:

if condition then
    ……;
[elseif condition then]
    ……;
[else]
    …;
end if;

case分支语句:

case case_expr
    when when_value then statement_list;
    [when when_value then statement_list;]…
    [else statement_list;]
end case;
case
    when expr_condition then statement_list;
    [when expr_condition then statement_list;]…
    [else statement_list;]
end case;

while循环语句:

语法格式:

[while_label:]while condition do
…
End while[while_libe];

loop循环语句:该循环没有内置循环条件,但可以通过leave语句退出循环。

语法格式:

[loop_label:]loop
Statement_list;
End loop [loop_label];

leave语句用来跳出循环,语法格式:leave label;

repeat循环语句:该语句执行一次循环体,之后判断condition条件是否为真,为真则退出循环,否则继续执行循环体。

语法格式:       

[repeat_label:] repeat
…;
until expr_condition
end repeat [repeat_label:];

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值