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

第37讲:MySQL存储函数的创建和调用

何先振 2023-11-29
262

以下文章来源于何先振,责编小何


存储函数的创建



之前我们学过的函数,length、substr、concat等。这些是MySQL的内部函数,而存储函数是用户自己定义的函数。


创建存储函数的语法:

    create function 函数名(参数名 参数类型,....)
    returns 返回值类型
    [函数的特性]
    begin
    函数体 #函数体中有return 语句
    end


    创建函数时函数的特性通常不需要写。



    存储函数的调用



    存储函数的调用和之前学过的MySQL中内部函数调用方式一样。


    语法:

      select 函数名(实参列表)


      存储函数的创建和调用,举栗子:


      创建无参数存储函数


      创建查询员工邮箱的存储函数





      调用此函数,查询成功。





      注意:


      如果在创建存储函数中报如下错:


      “you might want to use the less safe log_bin_trust_function_creators variable”。


      有两种处理方法:


      方式1:创建函数时,加上函数的特性。


      方式2:执行SQL:

        set global log_bin_trust_function_creators=1;


        如果没有报错,就正常执行。


        创建有参数的存储函数


        创建存储函数,传入员工编号,返回员工名字





        调用存储函数





        也可以声明变量,传入变量调用





        存储函数和存储过程的对比:


        存储过程和存储函数的关键字不同,存储过程是procedure,存储函数是function。


        调用方式不同,存储过程是通过call 存储过程名(),存储函数是通过select 函数名()。


        返回值存储过程可以有0个或多个,存储函数只能是一个。


        存储过程一般用于更新数据,存储函数一般用于查询结果为一个值并需要返回时。


        存储函数可以放到select语句中,存储过程不行。


        存储过程的功能更加强大,可以执行表的操作,创建表、删除表和事务操作等,这些都是存储函数不具备的。



        推荐阅读书籍





        点击上方"何先振"关注并选择设为星标
        各类IT技术文章不会错过!

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

        评论