美文网首页
mysql 函数

mysql 函数

作者: 哈斯勒 | 来源:发表于2019-08-28 17:23 被阅读0次
    
    
    /*
    函数
    含义:一组预先编译好的SQL语句的集合
    区别:
    存储过程:可以有0个返回,也可以有多个返回;适合批量插入,批量更新
    函数:有且仅有一个返回;适合处理数据返回一个结果
    */
    #一、创建函数
    CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
    BEGIN
        函数体
    END
    
    /*
    注意:
    1. 参数列表 包含两部分:参数名,参数类型
    2. 函数体:
        肯定会有return语句,如果没有会报错
        如果return语句没有放在函数体的最后也不报错,但不建议
    return 值;
    
    3. 当函数体中只有一句话,可以省略begin end
    4. 使用delimiter语句设置结束标记
    */
    
    #二、调用语句
    SELECT 函数名(参数列表);
    
    
    #三、案例
    #1.无参有返回
    #返回公司的员工个数
    CREATE FUNCTION myf1() RETURNS INT
    BEGIN 
      DECLARE c INT DEFAULT 0;
      SELECT COUNT(*) INTO c
      FROM employees;
      RETURN c;
    END $
    
    SELECT myf1()$
    
    #2.有参有返回
    #根据员工名返回他的工资
    CREATE FUNCTION myf3(empname VARCHAR(20)) RETURNS DOUBLE
    BEGIN
        #declare s double default 0;
        SET @s=0;
        #select salary into s
        SELECT salary INTO @s
        FROM employees
        WHERE last_name=empname;
        #return s;
        RETURN @s;
    END $
    SELECT myf3('Kochhar')$
    
    # 根据部门号,返回部门平均工资
    
    CREATE FUNCTION myf4(deptname VARCHAR(20)) RETURNS DOUBLE
    BEGIN
       SET @sal=0;
       SELECT AVG(salary) INTO @sal
       FROM employees e
       JOIN departments d
       ON e.department_id = d.department_id
       WHERE d.department_name = deptname;
       RETURN @sal;  
    END $
    
    SELECT myf4('Adm')$
    
    #3.函数的查看
    SHOW CREATE FUNCTION myf3;
    
    #4.函数的删除
    DROP FUNCTION myf3;
    
    #创建函数,输入两个float,返回两者之和
    CREATE FUNCTION myf5(var1 FLOAT, var2 FLOAT) RETURNS FLOAT
    BEGIN
    /*
       Set @r=0;
       select var1+var2 into @r;
       return @r;
      */
      DECLARE SUM FLOAT DEFAULT 0;
      SET SUM=var1+var2;
      RETURN SUM;
    END $
    SELECT myf5(1.10,2.0)$
    

    相关文章

      网友评论

          本文标题:mysql 函数

          本文链接:https://www.haomeiwen.com/subject/ugumectx.html