mysql---自定义函数

自定义函数
    除了count()等内置函数外,可以创建一个适合自己需求的函数。
    创建函数:
        delimiter //
        
        create function 函数名(参数名 类型) returns 返回值类型
        begin
            内部实现
        end
        
        delimiter ;
    例子:生成指定长度的内容随机的字符串
            第一步:创建函数
               delimiter //
                create function    get_rand_str(length_str int) returns varchar(255)
                begin
                    
                    declare src_str varchar(128) default 'qazxswedcvfrtgbnhyujmkiolpQAZXSWEDCVFRTGBNHYUJMKIOLP';
                    
                    declare rand_char varchar(1) default '';
                    
                    declare i int default 0;
                    
                    declare res_str varchar(255) default '';
                    
                    declare rand_index int default 0;
                    
                    
                        while i < length_str do
                            set rand_index = floor( RAND()*52 + 1);
                            set rand_char = SUBSTR(src_str,rand_index,1);
                            set res_str = concat(res_str,rand_char);
                            set i = i + 1;
                        end while;
                    
                    return res_str;
                    
                end    //            
                delimiter ;    
            第二步:调用函数
                select get_rand_str(100);

 

注意:

声明变量用declare,给变量赋值用set

 

常用循环:

    while循环:

    

while i < 10
   ...执行需要循环的步骤
end while;

####一定要注意end while后加;

   repeat循环:

   

repeat
    ....需要循环的语句
    until i > 10
end repeat;


####注意
until后不要加;

条件语句:

delimiter //

create function max_value(a int,b int,c int) returns int
begin
    declare max_int int default 0;

    if a > b then
        set max_int = a;
    else
        set max_int = b;
    end if;
    
    if max_int > c then
        return max_int;
    else
        return c;  
    end if;
    
end //

delimiter ;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值