• 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;   #(函数名)

      

  • 相关阅读:
    【校招内推】2022届菜鸟网络Java内推
    Git版本管理流程与规范-生活圈
    Jenkins:Git拉取代码版本不对
    java html2image
    CentOS 7.6构建MySQL PXC高可用集群
    你可能不知道的Docker资源限制
    Docker镜像源修改
    centos7.2安装docker(二进制离线安装)
    ansible playbook 配置计划任务
    NFS服务的用户身份映射
  • 原文地址:https://www.cnblogs.com/GOOGnine/p/12299014.html
Copyright © 2020-2023  润新知