mysql存储过程,函数,已经流程控制案例

Posted 白小纯~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql存储过程,函数,已经流程控制案例相关的知识,希望对你有一定的参考价值。

         最近在看一些mysql的视频,随手将自己的笔记分析到博客园,希望可以帮助到你,大家可以共同进步!加油

存储过程

  含义:一组预先编译好的sQL语句的集合,理解成批处理语句

  语法:

      CREATE  PROCEDURE 存储过程名(参数列表)

         BEGIN

            存储过程体(一组合法的SQL语句)

         END

    参数列表包含三部分: 参数模式 参数名 参数类型

    参数模式分3中:

        IN :该参数可以作为输入,也就是该参数需要调用方传入值

        OUT :该参数可以作为输出,也就是该参数可以作为返回值

        INOUT: 该参数既可以作为输入又可以作为输出,也就是既需要传入值又可以返回值

    DELIMITER 结束标记

    调用语句  :CALL 存储过程名(实参列表)

  案例:

    1, 创建带in模式参数的存储过程

      根据id号,查询对应的身份信息

    DELIMITER $

    CREATE PROCEDURE mp2(IN id INT)

    BEGIN

      SELECT * FROM admin ad WHERE ad.id=id;

    END $

    CALL mp2(005) $

    2, 创建out模式存储过程 

    DELIMITER $
    CREATE PROCEDURE myout(IN id INT,OUT username VARCHAR(20))
    BEGIN
    SELECT admin.`username` INTO username
    FROM admin
    WHERE admin.`id`=id;
    END $    

    #调用       CALL myout(4,@name)

    3,创建带inout模式参数的存储过程

     传入a和b两个值,最终a和b都翻倍并返回

    DELIMITER $
    CREATE PROCEDURE myinout(INOUT a INT,INOUT b INT)
    BEGIN
     SET a=a*2;
     SET b=b*2;
    END $

    #调用   SET @m=10$     SET @n=20$    CALL myinout(@m,@n)$     SELECT @m,@n$

函数:

  菜鸟教程:学习下常用的函数:https://www.runoob.com/mysql/mysql-functions.html

  

  语法:

    CREATE FUNCTION func_name ( [func_parameter] ) //括号是必须的,参数是可选的   RETURNS type

    begin

    end 

    •   func_parameters为函数的参数列表,参数列表的形式为:[IN|OUT|INOUT] param_name type

  案例:

      1,根据ID获取员工姓名与员工工资

        DELIMITER //

        CREATE FUNCTION GetEmployeeInformationByID(id INT)  RETURNS VARCHAR(300)

        BEGIN
          RETURN(SELECT CONCAT(\'employee name:\',employee_name,\'---\',\'salary: \',employee_salary) FROM employees WHERE           employee_id=id);
        END//
        DELIMITER
      调用: select  GetEmployeeInformationByID(1)

     2,创建函数,传入2个float,返回他们的和

      DELIMITER //
      CREATE FUNCTION getsun(num1 FLOAT,num2 FLOAT) RETURNS FLOAT
      BEGIN
        RETURN (num1+num2);
      END//
      调用: SELECT getsun(1,2)

  查看数据库的函数或者是方法的操作可以在mysql这个库的pro这个表里面进行查询

流程控制:

    含义:

    案例:

          1,if结构:实现多重分支

          语法:

             if 条件1 then 语句1;

             elseif 条件2 then 语句2; ......

             [else 语句n;]

             end if;

          应用 在begin end 中

        

        

   

以上是关于mysql存储过程,函数,已经流程控制案例的主要内容,如果未能解决你的问题,请参考以下文章

MySQL--视图触发器事务存储过程内置函数流程控制索引

MySQL之视图触发器事务存储过程函数 流程控制

mysql数据库之 存储引擎事务视图触发器存储过程函数流程控制

49-mysql-视图触发器事务(需要掌握)存储过程内置函数流程控制索引理论

mysql基础教程-----事务视图存储过程和函数流程控制

Mysql-自带的一些功能,基本用法(视图,触发器,事务,存储过程,函数,流程控制)