MySQL复习day07:函数
发布日期:2021-05-13 22:15:51 浏览次数:16 分类:精选文章

本文共 1720 字,大约阅读时间需要 5 分钟。

MySQL函数



函数

一组预先编译好的SQL语句的集合,可以完成批处理。

函数特点

1. 提高代码的重用性;

2. 简化操作;
3. 减少编译次数并且减少了和数据库服务器的连接次数,提高的效率;

存储过程vs函数

  • 存储过程:可以有0个返回,也可以有多个返回,适合做批量插入,批量更新;
  • 函数:有且仅有1 个返回,适合做处理数据后返回一个结果

创建函数

1.语法

create function 函数名(参数列表)returns  返回类型begin        函数体end

2.注意

1.参数列表包含参数名参数类型 ,例如 myname int;

2.函数体:必须有return ,格式:return 返回值;
3.设置delimiter语句设置结束标记;

3.调用

select 函数名(参数列表);

函数示例

示例一

use stus;---------------------------------------------------------------drop procedure if exists p1;set global log_bin_trust_function_creators=TRUE;#创建函数f():无参有返回delimiter $create function f() returns  intbegin     declare res int default 0;     select count(*) into res     from booktype;     return res;end $#调用函数f()select f() $

示例二

use stus;---------------------------------------------------------------delimiter $drop function if exists sal ;#创建函数sal():有参有返回create function sal(n varchar(25)) returns intbegin		set @res=0;        select id into @res        from booktype        where name = n;        return @res;end $#调用函数sal()select sal('fiction')$

查看函数

show  create function  函数名;

删除函数

drop function 函数名;

简单例子

1.创建函数,实现传入两个一维float数,返回二者的距离。

delimiter $drop function if exists f;create function f(num1 float ,num2 float ) returns floatbegin     declare res float default 0.0;     select if(num1-num2>0,num1-num2,num2-num1) into res;     return res;end $ select f(12.3,56.2) as 'ans';

1.创建函数,实现传入两个二维float坐标,返回二者的距离。

delimiter $drop function if exists f1;create function f1(x1 float ,y1 float ,x2 float ,y2 float ) returns floatbegin     declare res float default 0.0;     set @a1 = pow(x1-x2,2);     set @a2 = pow(y1-y2,2);     select  pow(@a1+@a2,0.5) into res;     return res;end $ select f1(1,1,2,2) as 'ans';

MySQL学习列表

致谢

感谢诸君观看,如果感觉有用的话,点个赞吧!🎉


上一篇:markdown添加空格和修改字体和颜色
下一篇:力扣数据库:从不订购的客户

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月08日 23时49分46秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章