存储过程

变量类型:

  会话变量:只在内存中存在,关闭数据库就失效

    创建:set @var_name = xx;

    查看:select @var;

  局部变量:在存储过程中使用,作用于类似于java的方法域

    创建:declare var_name [default xx];

存储过程的使用:加快查询速度,但是可移植性非常差

  模板:

    delimiter $

    create procedure pro_name(...)

    begin

      --内容--

    end $

  不带参数,in(输入),out(输出),inout(输入输出)

  into:可以把查询语句的结果赋值给变量

  例1):查询所有用户信息

    --建立

    delimiter $

    create procedure pro_selectAll()

    begin

      select * from users;

    end $

    --使用

    call pro_selectAll();

  例2):查询id为2的用户信息

    --建立

    delimiter $

    create procedure pro_selectById(in uid int)

    begin

      select * from users where id = uid;

    end $

    --使用

    call pro_selectAll(2);

  例3):判断成绩学生平均等级

    --建立

      DELIMITER $
      CREATE PROCEDURE pro_into(OUT res VARCHAR(20))
      BEGIN
        DECLARE tem INT DEFAULT 0;
        SELECT AVG(english) INTO tem FROM student;
        IF tem < 60 THEN
          SET res = '不及格';
        ELSEIF tem < 80 THEN
          SET res = '一般';
        ELSE
          SET res = '优秀';
        END IF;
      END $

    --使用

    CALL pro_into(@str);
    SELECT @str;

原文地址:https://www.cnblogs.com/webyyq/p/6505119.html