龙空技术网

mysql函数,20分钟玩儿转,就是这么的简单

不码不疯魔 145

前言:

今天姐妹们对“java中ifcontinue”大约比较看重,姐妹们都想要学习一些“java中ifcontinue”的相关内容。那么小编同时在网络上搜集了一些关于“java中ifcontinue””的相关内容,希望我们能喜欢,大家快快来学习一下吧!

自定义函数

创建

在 MySQL 中,创建自定义函数的语法如下。

CREATE FUNCTION sp_ name ([func_ parameter[,...]])

RETURNS type

[characteristic ...] routine_ body

参数解释:

(1)func_parameter 表示自定义函数的参数列表。func_parameter 可以由多个参数组成,其 中每个参数由参数名称和参数类型组成,其形式如下。

param_name type

其中:

⚫ param_name 参数是自定义函数的参数名称;

⚫ type 参数指定自定义函数的参数类型,该类型可以是 MySQL 数据库的任意数据类型。

(2)RETURNS type 指定返回值的类型。

函数无参数传递

create function fun_an1()

returns int -- 指定返回类型

begin

return (select count(empno) from emp);

end;

-- 调用

select fun_an1();

-- 函数带参数

create function fun_an2(sal decimal(9,0))

returns int

begin

return (select count(empno) from emp where emp.sal=sal);

end;

-- 调用

select fun_an2(1250);

-- 定义变量

create function fun_an3()

returns int

begin

declare eno int default 7399; -- 定义变量,并且赋初始值 ,作用域在begin end 之间

return (select count(empno) from emp where emp.empno = eno);

end;

-- 调用

select fun_an3();

-- if 语句

create function fun_an4()

returns varchar(20)

begin

declare n int default 99;

if n > 90 then

return ('非常优秀');

elseif n > 80 then

return ('优秀');

else

return ('一般');

end if;

end;

-- 调用

select fun_an4();

drop function fun_an5;

create function fun_an5(deptno int)

returns varchar(20)

begin

declare dept_name varchar(20) default '';

-- 注意:等于用 =

if deptno = 10 then

set dept_name="计财部";

elseif deptno = 20 then

set dept_name="调研部";

elseif deptno = 30 then

set dept_name="销售部";

elseif deptno = 40 then

set dept_name="实施部";

end if;

return (dept_name);

end;

select dept.dname,fun_an5(dept.deptno) from emp,dept where emp.deptno = dept.deptno;

-- 思考,用一句sql语句实现如上的效果

-- 用case方式

create function fun_an6(deptno int)

returns varchar(20)

begin

declare dept_name varchar(20) default '';

-- 注意:等于用 =

case deptno

when 10 then

set dept_name="计财部";

when 20 then

set dept_name="调研部";

when 30 then

set dept_name="销售部";

when 40 then

set dept_name="实施部";

else

set dept_name="";

end case;

return (dept_name);

end;

-- 调用

select dept.dname,fun_an6(dept.deptno) from emp,dept where emp.deptno = dept.deptno;

-- 一条语句实现

select dept.dname,

case dept.deptno

when 10 then

"计财部"

when 20 then

"调研部"

when 30 then

"销售部"

when 40 then

"实施部"

end as dept_name

from emp,dept where emp.deptno = dept.deptno;

-- loop 使用

create function fun_an9()

returns int

begin

declare n int default 0;

nloop:loop

set n = n + 1;

if n < 10 then

-- leave nloop; -- 等价于java中break;

iterate nloop; -- 等价于java中continue

end if;

if n > 10 then

leave nloop; -- 等价于java中break;

-- iterate nloop; -- 等价于java中continue

end if;

end loop nloop;

return (n);

end;

-- 调用

select fun_an7();

select fun_an8();

select fun_an9();

-- repeat

create function fun_repeat()

returns int

begin

declare n int default 0;

repeat

set n = n + 1;

until n > 10

end repeat;

return (n);

end;

-- 调用

select fun_repeat();

-- while

create function fun_while()

returns int

begin

declare n int default 0;

while n < 10 do

set n = n + 1;

end while;

return (n);

end;

-- 调用

select fun_while();

今天我的分享就到这里,大家有没有什么好的学习方法呢?欢迎来留言评论,和我们一起交流。如果喜欢我的文章,也欢迎大家关注、点赞、转发。我是丫丫,一个专注分享项目实战技能的IT从业者。

标签: #java中ifcontinue