zoukankan      html  css  js  c++  java
  • MySQL函数

    FUNCTION函数

    DECLARE声明

    好处:

    1.提高代码重用性

    2.简化操作

    3.减少了编译次数:编译过一次 就不用编译了

    4.减少了和服务器连接次数,提高了效率

    区别:

    存储过程:可以有0个返回,也可以有多个返回。(适合批量的增删改)

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

    一、创建语法

    CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
    BEGIN
    函数体
    return 值;
    END

    注意:

    1.参数列表包含两部分:参数名,参数类型

    没有in out模式

    2.函数体:必须有return语句

    3.return语句不写在最后也不会报错,但不建议

    4.函数体中只有一句话可以省略begin end

    5.需要使用 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 myf2(empName VARCHAR(20)) RETURNS INT
    BEGIN
                SET @sal=0; #定义用户变量:当前连接有效
                SELECT salary INTO @sal #赋值
                FROM employees
                WHERE last_name=empName;
                RETURN @sal;
    END $
    
    SELECT myf2('Hunold')$
    
    #案例2:根据部门名,返回该部门的平均工资
    CREATE FUNCTION myf3(deptName VARCHAR(20)) RETURNS INT
    BEGIN
                DECLARE sal DOUBLE;#加不加默认值都行
                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 myf2('IT')$

    三、查看函数

    SHOW CREATE FUNCTION myf3;

    在MySQL库中proc表能看见存储过程和函数的基本信息

    四、删除函数

    DROP FUNCTION myf3;

    五、修改

    很少修改

    也只能修改创建时的特点

    CREATE FUNCTION myf2(empName VARCHAR(20)) RETURNS INT

    begin end 中的语句不能修改

    如果要修该只能删除

    不能修改存储过程的逻辑语句

    #创建函数,实现传入两个float,返回二者之和
    CREATE FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
    BEGIN
                DECLARE sum FLOAT DEFAULT 0;
                SET sum=num1+num2;
                RETURN sum;
    END$
    
    SELECT test_fun1(1,2)$

      

  • 相关阅读:
    两个jquery编写插件实例
    jquery编写插件(转)
    前后端分离
    理解流式布局
    元素外边距溢出(塌陷)
    超级有用的9个PHP代码片段
    php实现redis锁机制
    php程序守护进程
    SESSION机制
    php面试
  • 原文地址:https://www.cnblogs.com/rijiyuelei/p/12382177.html
Copyright © 2011-2022 走看看