美文网首页
SQL中的自定义函数

SQL中的自定义函数

作者: 小橙子_43db | 来源:发表于2019-12-09 23:12 被阅读0次

    在SQL中我们我们经常会用到count(),avg(),sum()等这些函数,这些是SQL中自带的函数,当系统中的自带函数不能满足我们的需要时,我们可以自定义函数来完成我们的功能。

    自定义函数是一种与存储过程十分相似的过程式数据库对象。它与存储过程一样,都是由 SQL 语句和过程式语句组成的代码片段,并且可以被应用程序和其他 SQL 语句调用。

    自定义函数与存储过程的区别:

    1.输出参数:自定义函数不能拥有输出参数,因为其本身就是输出参数;而存储过程可以包含输出参数。

    2.RETURN语句,自定义函数必须有一条RETURN语句;存储过程不能有RETURN语句

    3.可以直接在SQL语句中调用自定义函数;存储过程需要使用call来调用。

    创建

    create function 函数名([参数列表]) returns 数据类型

    begin

        sql语句;

        return 值;

    end;

    示例:

    create function fundemo(num INT) returns int

    BEGIN

    RETURN num+666;

    END;

    -- 调用函数

    SELECT fundemo(0);

    输出:666

    再来一个demo:定义一个判断网站浏览量等级的函数,<100为C,100到1000为B,大于1000为A

    DROP FUNCTION IF EXISTS rankABC; -- 存在函数时将函数删除

    create function rankABC(num INT) returns VARCHAR(10)

    BEGIN

    DECLARE rank varchar(10); -- declare关键字定义变量

    IF num<=100 THEN

    set rank = 'C'; -- set关键字用来给变量赋值

    ELSEIF (num>100 and num<1000) THEN

    set rank = 'B';

    ELSE

    set rank = 'A';

      END IF;

    return rank;

    END

    -- 调用函数

    SELECT *,rankABC(alexa) from websites;

    相关文章

      网友评论

          本文标题:SQL中的自定义函数

          本文链接:https://www.haomeiwen.com/subject/jiobgctx.html