十五.自定义函数

1.没有参数的自定义函数

例子:把内置的时间函数混合后做成一个不带参数的自定义函数,RETURNS后面跟的是返回值类型,RETURN后面跟的是返回值。 具体实现:

CREATE FUNCTION myTime() RETURNS VARCHAR(30) RETURN DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点%i分%s秒');

2.创建一个计算两数平均值的函数

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

RETURNS FLOAT(10,2) //共有3位,小数部分占两位

RETURN (num1+num2)/2;

注:删除自定义函数:DROP FUNCTION f2;就是后面跟函数名就行了,不需要跟括号。

3.复合结构函数体的自定义函数

1)自定义含有复合结构函数体的函数时: 需要 修改分隔符:DELEMITER 分隔符 >DELIMITER //

2)当函数体内需要执行的是多条语句时,要使用BEGIN...END语句 且当编写函数体内容的时候,需要使用 DELIMITER 关键字将分隔符先修改为别的,否则编写语句的时候写到 ';' 的时候会直接执行,导致函数编写失败

3)DELIMITER // 

CREATE FUNCTION ADD_USER(p_id SMALLINT,username VARCHAR(20)) 

RETURNS INT UNSIGNED

BEGIN

INSERT user(p_id,username) VALUES(p_id,username);

RETURN LAST_INSERT_ID();

END

(回复正常分隔符)删除分隔符:DELEMITER ;

posted @ 2018-04-16 22:12  秋水潺流  阅读(132)  评论(0编辑  收藏  举报