MySQL 存储过程 : procedure

来源:互联网 发布:wechat.class.php实例 编辑:程序博客网 时间:2024/06/04 18:48

存储过程 : procedure
概念:是一组预编译在数据库服务器端的处理业务的SQL代码。
在应用程序中可以调用存储过程,执行SQL指令,调用的方式与Java中的方法调用相似。
优势
1、增加程序的安全性。
2、高性能,速度快。
3、减少网络流量。
4、代码重用。

缺点:数据库不同,过程的代码也不同。可移植性差。

调用存储过程:call 过程名 [参数名]

创建过程的语法
1、无参数

delimiter $$create procedure 存储过程名(参数1,参数2)beginSQL语句;end $$-- $$ 符号知识避免MySQL把存储过程内部的“;”解释成结束符号,换成其他符号也可以。

2、带参数
(1)参数种类:输入参数(in 默认)
输入参数:需要把值传入到过程里面
– 查询指定学期的课程信息(编号、课程名、课时、年级名称),如果没有输入则查询所有年级科目,否则只查询当前年级的科目信息

DELIMITER $$create PROCEDURE sp_subjectByGradeName(in gn varchar(10) )   begin    if(gn is null or gn = '')      then  --  if开始         select subjectNo,subjectName,classHour,gradeName from grade g inner join subject j on g.gradeid = j.gradeid;    else          select subjectNo,subjectName,classHour,gradeName from grade g inner join subject j            on g.gradeid = j.gradeid where g.gradeName=gn;    end if;   -- if结束end $$

(2)输出参数(out)
把过程里面的值传出,调用时就可以获取。参数前加:out
当一个过程中的参数又有输入参数,又有输出参数,建议把输出参数在前面,输入参数放在后面,方便于以后的调用。

(3)输入输出参数(inout)
把值传入到过程中去,并在过程中又对参数进行赋值,此参数可以把过程中所赋的值传出来,在调用的位置可以获取到。参数前加: inout

原创粉丝点击