mysql 自定义多个返回值函数_mysql 总结二(自定义函数)

本质:mysql内置函数的一种扩展,本质上与mysql内置函数一样。

函数必要条件:

@1:参数(非必备);

@2:返回值;

模板:

create  function  function_name

returns

{string|integer|real|decimal}

routine_body(函数体)

关于函数体:

(1):函数体由合法的sql语句构成;

(2):函数体可以是简单的select或insert语句;

(3):函数体如果为复合结构,则使用begin...end语句;

(4):复合结构可以包含声明,循环,控制结构;

------------------------------------------------------我是分割线-------------------------------------------------

实例:

返回不带参数的函数:

CREATE FUNCTION f1() returns VARCHAR(20)

return NOW();

返回带参数的函数:

create FUNCTION ftest1(num1 SMALLINT,num2 SMALLINT)

RETURNS FLOAT(10,2)

RETURN (num1+num2)/2;

创建具有复合结构函数体的自定义函数:

DELIMITER $$

DROP FUNCTION IF EXISTS `itcast`.`cost` $$

CREATE FUNCTION `itcast`.`cutString`(s VARCHAR(255),n INT) RETURNS varchar(255)

BEGIN

IF(ISNULL(s)) THEN RETURN '';

ELSEIF CHAR_LENGTH(s)

ELSEIF CHAR_LENGTH(S)=n THEN RETURN '相等';

ELSE RETURN CONCAT(LEFT(s,n),'...');

END IF;

END $$

DELIMITER ;

---------------------------------------------------------我是分割线------------------------------------------------

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

存储过程实现的功能要复杂些,而函数的针对性更强;

存储过程可以返回多个值;函数只能有一个返回值;

存储过程一般独立的来执行;而函数可以作为其它sql语句的组成部分来出现(作用等同内置函数)。

自定义函数实用较少,存储过程实用较多

你可能感兴趣的:(mysql,自定义多个返回值函数)