Mysql : 函数

函数

存储过程:可以返回有0个值  也可以有多个返回,适合做批量插入 批量更新

函数:有且仅有1个返回 适合做处理数据后返回一个结果

一、创建语法

CREATE FUNCTION 函数名(参数列表 )RETURNS 返回类型

  BEGIN

    函数体

  END

注意:

  1.参数列表  包含两部分:

    参数名 参数类型

  2.函数体:肯定会有return语句 如果没有会报错

  如果return语句没有放在函数体的最后也不会报错  但不建议

  return  值;

  3.函数体中只有一句 则可以省略begin end

  4.使用DELIMITER语句设置结束标记  DELIMITER $

二、调用语法

  SELECT 函数名(参数列表)

案列演示

1、无参 有返回

  返回公司员工个数

  CREATE   FUNCTIONmyF1()   RETURNS  INT 

    BEGIN 

      DECLARE c INT DEFAULT 0;  # 定义局部变量并指定默认值

      SELECT count(*) INTO c # 赋值

      FROM employee;

      RETURN c;

    END $

    SELECT myF1() $

2、有参有返回

  案例:根据员工名返回工资

  CREATE  FUNCTION myF2(empName VARCHAR(20)) RETURNS DOUBLE

    BEGIN

      SET  @sal =0;#定义用户变量

      SELECT salary INTO @sal #赋值

      FROM employee

      WHERE last_name = empNAme

      RETURN @sal;

    END $

    SELECT myF2('king') $

3、根据部门名,返回该部门的平均工资

  CREATE FUNCTION my3(deptName VARCHAR(20)) RETURNS DOUBLE

    BEGIN   

      DECLARE sal DOUBLE;

      SELECT AVG (salary) INTO sal;

      FROM emplocyees  e

      JOIN  department d ON  e.department_id = d.department_id

      WHERE  d.department_name=department;

      return sal;

    END $

    SELECT my3('IT')$

三、查看函数

  SHOW CREATE FUNCTION myF3;      #(函数名)

四、删除函数

DROP FUNCTION myF3;   #(函数名)

  

原文地址:https://www.cnblogs.com/GOOGnine/p/12299014.html