MySQL 存储过程 : procedure

本文详细介绍了存储过程的概念及其在数据库中的应用。存储过程是一组预编译的SQL代码,能够提高程序的安全性和性能,减少网络流量并实现代码重用。文章还讲解了存储过程的创建方法及如何使用输入、输出和输入输出参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

delimiter $$
create procedure 存储过程名(参数1,参数2)
begin
	SQL语句;
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值