暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【MySQL】自定义函数

删库跑路小分队 2021-09-03
282


身着白衣,心有锦缎❤️

没有梦想,何必远方❤️



你看,世人多奇怪

喜欢的人得不到,得到了不珍惜

在一起时怀疑,失去了怀念

怀念的想相见,相见了又恨晚

终其一生,满是遗憾


🌈🌈🌈

这次讨论的话题是

MySQL自定义函数


先养眼,再看题

❤️

今天还是小姐姐




上一篇讲的是存储过程

这次讲的是自定义函数


自定义函数和存储过程的相同点


首先这两个都是蛮相似的过程式数据库对象,并且在写法上也大致和存储过程一样,都是由sql+过程语句组成,并且能够被调用


自定义函数和存储过程的不同点


自定义函数不能拥有输出参数,这是自定义函数自身就是输出参数;而存储过程可以拥有输出参数

- 自定义函数中必须包含一条RETURN语句,而存储过程没有

- 而存储过程需要用CALL语句,自定义函数就不用 



[toc]

- 创建并使用自定义函数

    - 语法

    - 注意事项

    - 创建自定义函数

    - 修改自定义函数

    - 删除自定义函数





创建并使用自定义函数


以使用CREATE FUNCTION语句创建自定义函数 


语法格式

CREATE FUNCTION <函数名>([<参数1><类型1> [,<参数2><类型2>]]...)

RETURNS <类型>

<函数本体> 


- 函数名:指定函数名称。尽量别和关键字或已有的名称重名

- 参数、类型:用于指定自定义函数的参数,不能指定关键字IN,OUT,INOUT

- RETURNS<类型>:用于声明自定义函数返回值的数据类型

- 函数主体:就是主要的内容,需要做的操作 





注意事项


在RETURN VALUE语句中包含SELECT语句时,SELECT语句的返回结果只能是一行且只能有一列值。


- 查看都有哪些自定义函数:

    SHOW FUNCTION STATUS

- 若要查看具体的自定义函数:

    SHOW CREATEA FUNCTION <函数名> 





创建自定义函数


创建存储函数,名称:StuNameById,该函数返回SELECT语句的查询结果,数值类型为字符串类型。 


    CREATE FUNCTION StuNameById()
    RETURNS VARCHAR(45)
    RETURN
    (SELECT name FROM tb_students_info WHERE id=1); 


    创建自定义函数后,就可以直接调用了

    SELECT <自定义函数>(<参数>,[,...])


    调用自定义函数StuNameById,查看函数运行结果。 


    mysql> SELECT StuNameById();

    +---------------+

    | StuNameById() |

    +---------------+

    |         Dany     |

    +---------------+ 





    操作自定义函数


    修改自定义函数

    可以使用ALTER FUNCTION语句来进行修改自定义函数的特征。

    若要修改自定义函数的内容,则需要先删除后创建 (简单粗暴不好么?)


    删除自定义函数 


    DROP FUNCTION [IF EXISTS] <自定义函数名> 

      mysql> DROP FUNCTION StuNameById;
      Query OK, 0 rows affected (0.09 sec)


      mysql> SELECT StuNameById();
      ERROR 1305 (42000): FUNCTION test_db.StuNameById does not exist




       阳光明媚,清风徐来


      扫码关注我

      郭大熊的公众号

      个人博客 : www.guodaxiong.com


      如果不曾见过阳光,我本可以忍受黑暗

       Hi GuoDaXiong 



      我是狗子

      祝你幸福

      文章转载自删库跑路小分队,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论