第六章: 自定义函数

自定义函数

用户自定义函数(user-defined function,UDF)是一种对MySQL的扩展的途径,其用法与内置函数相同

两个必要的条件:

1.参数,可有可无

2.返回值

函数可以返回任意类型的值,同样可以接收这些类型的参数,参数数目理论为1024个。

创建一个自定义函数

CREATE FUNCTION function_name

RETURNS     {STRING|INTEGER|REAL|DECIMAL}

routine_body//函数体

关于函数体

1、函数体由合法的SQL语句构成

2.可以是最简单的SELECT和INSERT语句

3.函数体如果为复合结构则使用BEGIN...END语句

4.复合结构可以包含声明,循环,控制语句

创建不带参数的自定义函数

编辑一个格式化的NOW()函数

CREATE FUNCTION f1() //创建函数名

RETURNS VARCHAR(30)   //返回值

RETURN DATE_FORMAT(NOW(),'%年%m月%d日 %H点%i分%s秒');//函数体

调用函数f1()

SELECT f1();

带有两个参数的函数

计算两个数的平均值

CREATE FUNCTION f2(num1 SMALLINT  UNSIGNED,num2 SMALLINT UNSIGNED)

RETURNS FLOAT(10,2) UNSIGNED

RETURN (num1+num2)/2;

调用f2

SELECT f2(10,15);

12.50

创建一个具有符合结构函数体的自定义函数

函数是向test表,插入记录,返回值是新插入记录的id号。test 中有两列:id和username,id是主键,自动加



首先修改分隔符

DELIMITER //      意思是这条语句以后都以//为结束符,而不是;

CREATE FUNCTION adduser(username VARCHAR(20))

RETURNS INT UNSIGNED

BEGIN

INSERT test(username) VALUES (username);

RETURN LAST_INSERT_ID;

END

//

修改回分隔符

DELIMITER ;

调用

SELECT adduser('Rose');


猜你喜欢

转载自blog.csdn.net/weixin_41413441/article/details/80868540
今日推荐