存储过程

作者: Xr丶_c967 | 来源:发表于2017-12-04 11:38 被阅读0次

条件判断

if 条件 then...

elseif .... then

else....

end if;


循环

while  do


label : loop 

 end loop


repeat ...

 until  条件 end repeat


函数存储        procedure 过程

DELIMITER $$   //定义结束符

create PROCEDURE p1()

BEGIN

select * from student;

end;

$$

DELIMITER ;

call p1();

delimiter $$

CREATE PROCEDURE  p2(in stusno VARCHAR(10), in stucno VARCHAR(10),out lev VARCHAR(10))

BEGIN

declare tempscore DECIMAL(4,1);

SELECT  degree  into tempscore from scorce where sno=stusno and cno=stucno;

IF(tempscore>=90) THEN

SET lev='优秀';

elseIF(tempscore>=75) THEN

set lev='良好';

elseif (tempscore>=60) THEN

set lev='及格';

ELSE

set lev='不及格';

end if;

END;

$$

delimiter;

set @lev='';

call p2('1001','02',@lev);

SELECT @lev;


游标

//$$结束

delimiter $$

//创建存储过程

CREATE PROCEDURE p3()

BEGIN

//声明变量

declare sno VARCHAR(10);

DECLARE sname VARCHAR(10);

DECLARE cname VARCHAR(10);

DECLARE degree  DECIMAL(4,1);

DECLARE lev VARCHAR(10);

// 结束标志

DECLARE done int default 0;

//声明游标

DECLARE cur CURSOR FOR

select s.sno,s.sname,c.cname,g.degree

FROM student s, course c, scorce g

where s.sno= g.sno and c.cno=g.cno;

//将结束标志绑定到游标

DECLARE  CONTINUE HANDLER for not found  set done=1;

CREATE TEMPORARY TABLE temp_table(

sno VARCHAR(10),

sname VARCHAR(10),

cname VARCHAR(10),

degree  DECIMAL(4,1),

lev VARCHAR(10)

);

open cur;

REPEAT

//游标向下走一步

FETCH cur INTO sno,sname,cname,degree;

IF(degree>=90) THEN

SET lev='优秀';

ELSEIF(degree>=75) THEN

SET lev='良好';

ELSEIF(degree>=60) THEN

SET lev='及格';

ELSE

SET lev='不及格';

end if;

//输出格式

select CONCAT_WS(',',sno,sname,cname,degree,lev);

INSERT INTO temp_table

VALUES(sno,sname,cname,degree,lev);

UNTIL done

END repeat;

CLOSE cur;

SELECT * from temp_table;

end

$$

delimiter

相关文章

  • Mysql存储过程

    阅读目录:MySQL存储过程_创建-调用-参数 存储过程:SQL中的“脚本” 创建存储过程 调用存储过程 存储过程...

  • MySQL批量添加数据

    创建存储过程 执行存储过程 删除存储过程

  • 17 存储过程

    过程: 函数: 过程是没有返回值的函数 存储过程: 存储过程语法 存储过程1--创建简单的存储过程 存储过程2--...

  • 存储过程

    详见存储过程详解 创建存储过程 使用存储过程 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧,它是由一...

  • 存储过程与函数

    存储过程与函数存储过程的定义存储过程的创建存储过程的操作自定义函数 存储过程与函数 存储过程的定义 运行效率高 降...

  • 存储过程

    ps 不能修改过程体,要修改过程体必须先删除存储过程,再重建 mysql变量的术语分类: 1.用户变量:以"@"开...

  • 存储过程

    存储过程 过程,可以简单理解为是一个函数。 函数和过程的区别:函数总是向调用者返回数据,而过程没有数据返回。 Or...

  • 存储过程

    存储过程(Stored Procedure)是一个可编程的函数,是为了完成特定功能的SQL语句集;创建的存储过程保...

  • 存储过程

    一.基础语法 说明 delimiter // 一般情况下MYSQL以;结尾表示确认输入并执行语句,但在存储过程中;...

  • 存储过程

    存储过程:带有逻辑的sql语句。之前的sql没有条件判断,循环。 存储过程带上流程控制语句(if,while)。 ...

网友评论

    本文标题:存储过程

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