sql存储基本语句与案例

CREATE PROCEDURE mypro(in a int,in b int,out sum int)
BEGIN
 set sum = a+b;
END;
-- procedure存储过程
-- mupro过程名称 begin end相当于Java里面的 {}

-- 如何调用这个存储过程
call mypro(3,6,@s);-- call调用
select @s;

-- 乘积
CREATE PROCEDURE my(in a int,in b int,in c int,out ji int)
BEGIN
 set ji = a*b*c;
end;
call my(3,6,4,@s);-- call调用
select @s;

-- 变量
CREATE PROCEDURE myprol()-- 定义过程
BEGIN
	DECLARE name VARCHAR(20);-- 定义一个变量
	set name = '张三';-- 变量赋值
	SELECT * from stuinfo WHERE stuName = NAME;
END;
call myprol();-- 调用过程

-- 流程控制语句
create procedure mypro2(in num int)
begin
	if num<0 then -- 条件开始
		select '负数';
	elseif num=0 THEN
		select '不是正数也不是负数';
	else
		select '正数';
	end if;-- 条件结束
end;
-- 调用过程
call mypro2(0);

-- 输入两个数比大小,输出大的数;
create procedure mypro3(in a int,in b int,out c int)
begin
	if a>b then
		set	c=a;
	else
		set	c=b;
	end if;
end;
call mypro3(5,6,@c);
SELECT @c;

-- where循环输出1到10的累加和
CREATE PROCEDURE mypro5(out sum int)
BEGIN
	DECLARE num int DEFAULT 0;
	set sum = 0;
	WHILE num<10 do-- 循环开始
		set num = num+1;
		set sum = sum+num;
	end while;-- 循环结束
end;
call mupro5(@sum);-- 调用过程
select @sum; -- 查询变量值

-- 1到100被5整除的数字之和
CREATE PROCEDURE mypro6()
BEGIN
	DECLARE num int default 0;
	DECLARE i int;
	set i=0;
	WHILE i<100 DO
		set i=i+1;
		if mod(i,5)=0 THEN
		set num=num+i;
		end if;
	END WHILE;
	SELECT num;
END;
call mypro6();-- 调用过程
select mypro6; -- 查询变量值
-- 1到100被5整除的数字之和
create procedure mypro66()
begin
  DECLARE num int default 0;
  DECLARE i int;
  set i=0;
  WHILE i<100 DO
    set i=i+1;
    if i%5=0 THEN
    set num=num+i;
    end if;
  END WHILE;
  SELECT num;
END
call mypro66();-- 调用过程
select mypro66; -- 查询变量值


-- 显示存储过程
SHOW PROCEDURE STATUS;
-- 显示特定数据库的存储过程
SHOW PROCEDURE status where db = 'test1';
-- 显示特定模式的存储过程,要求显示名称中包含“%特定字符%”的存储过程
SHOW PROCEDURE status where name like '%my%';
-- 显示存储过程“mypro1”的源码
SHOW CREATE PROCEDURE mypro;
-- 删除存储过程
drop PROCEDURE my;

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值