做网站的好项目qq手机版
存储过程 : 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) )beginif(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
