SQL中的自定义函数

2019-12-09  本文已影响0人  小橙子_43db

在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;

上一篇下一篇

猜你喜欢

热点阅读