存储过程

变量类型:

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

    创建: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;

 

posted @ 2017-03-05 13:24  染红の街道  阅读(91)  评论(0编辑  收藏  举报