zoukankan      html  css  js  c++  java
  • 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;   #(函数名)

      

  • 相关阅读:
    MySQL优化
    MySQL 的 SQL 操作
    笔记本电脑同时使用两个网络
    top
    logrotate
    正则表达式学习总结
    HttpClient parameter 和body 传输同时进行
    Node.js背景
    前后端分离的理解
    shiro 的subject 以及Context 对象的具体的含义。
  • 原文地址:https://www.cnblogs.com/GOOGnine/p/12299014.html
Copyright © 2011-2022 走看看