mysql sayhello的函数_Mysql中的存储函数

Mysql中的存储函数

1.定义变量

set 变量名 = 变量值

注意:为区分系统变量还是用户自定义变量,用户自定义变量前面加@符号

可以通过select 获取当前变量

2.select into语法注入变量值

select a,b,c into @a,@b,@c语法

如果select返回多行语法,mysql会报错或者最后一行赋值

在sql总赋值,可以使用@who :=xxx赋值

3.内置函数

format,Now,from_unixtime(),unix_timestamp(),charLength()和编码有关,length()

concat,substring

以下定义几种常见类型的自定义函数

1.无参数自定义函数

delimiter $$

create function sayHello() returns varchar(25)

begin

return 'Hello ShanShanBox.com';

end

$$

delimiter ;

注意:

函数与数据库绑定,可以使用数据库名点方法名访问

函数必须有返回值,returns一定要加S

2.带有if逻辑判断

delimiter $$

create function func1() returns varchar(5)

begin

if hour(now()) > 17 then

return '晚';

else

return '早';

end if;

end

$$

delimiter ;

3.带有while循环函数

delimiter $$

create function func2() returns int

begin

set @i = 1;

set @sum = 0;

while @i <= 10 do

set @sum = @sum + @i;

set @i = @i + 1;

end while;

return @sum;

end

$$

delimiter ;

4.循环控制

leave 相当于break终止循环

iterate 相当于continue,跳过当前循环进行下一次循环

在while循环中,不会根据leave和iterate的位置控制循环,而是由循环的标签决定的

那么什么事循环的标签的,其实我也说不清,直接看代码吧

delimiter $$

create function func3() returns int

begin

set @i = 1;

set @sum = 0;

w:while @i <= 10 do

if @i = 5 then

leave w;

end if;

set @sum = @sum + @i;

set @i = @i + 1;

end while;

return @sum;

end

$$

delimiter ;

看到没,w:就是while循环的标签,多么好看的表情啊

5.带参数的自定义函数

delimiter $$

create function func4(username varchar(20)) returns varchar(25)

begin

return concat('hello ',username);

end

$$

delimiter ;

以上就是几个简单的自定义函数

学好不容易,且行且珍惜

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值