MySQL存储过程

    存储过程(procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。

1、存储过程格式

create procedure 存储过程名称 (参数列表)  
       begin
SQL语句
       end
//begin、end代表SQL语句的开始和结束

2、分隔符

     MySQL默认以“;”语句结束符(分隔符),如果没有声明分隔符,则编译器会把存储过程当成SQL语句进行处理,因此编译过程会报错,所以要事先用“DELIMITER &&”声明当前段分隔符,让编译器把两个“&&”之间的内容当做存储过程的代码,不会执行这些码;“DELIMITER ;”的意为把分隔符还原。

3、存储过程操作

(1)简单的存储过程

delimiter &&
create procedure p1()
begin
select * from course;
end &&

(2)调用存储过程p1

call p1 &&


(3)查看已有的存储过程

show procedure status \G  //\G横向显示


(4)带一个参数的存储过程

create procedure p3(i int)
begin
select * from course where cno>i;
end &&

(5)调用带一个参数的存储过程

call p1(3) &&


(6)带两个参数的存储过程(if...else语句)

create procedure p2(i int,j int)
begin
if j='k' then
select * from course where cno>i;
else
select * from course where cno<i;
end if;
end &&

(7)查看带两个个参数的存储过程

call p2(4,3) &&


(8)删除存储过程

call p2(4,3) &&

(9)定义变量

declare i int;

(10)给存储变量赋值

set i=i+1;

4、求和1~n(while语句)


create procedure p3(m smallint)
begin
declare i int;
declare j int;
set i=1;
set j=0;
while i<=m do
set j=j+i;
set i=i+1;
end while;
select j;
end &&

计算1~100的和






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值