MySQL 实验二语言基础编程 创建存储过程 综合编程题目

题目一:

使用 MySQL Workbench 或者其他的图形化工具,创建存储过程,计算出 1500
以内能被 9 整除的整数的个数。把操作结果和操作过程截屏,填写到实验报告中。

delimiter //
create procedure topic1(out num int)
BEGIN
	declare i int default 0;
	set num=0;
	while i<1500  do-- 循环开始
	set i=i+1;
	if mod(i,9)=0 THEN
	set num=num+1;
	end if;-- 结束循环
end while;-- 循环结束
end;
-- 调用存储过程
call topic1(@num);
-- 查询变量值
select @num;

结果:
在这里插入图片描述

题目二:

使用 MySQL Workbench 或者其他的工具,创建一个存储过程,该存储过程可以
根据输入的日期值(例如“20200201”),计算与当前日期(今天)相差的天数,
并返回这个天数,创建该存储过程,并输入任意值,测试该存储过程两次。把操
作结果和操作过程截屏,填写到实验报告中。

delimiter //
CREATE PROCEDURE topic2_2(IN date1 DATE,OUT date2 int)
BEGIN
    SET date2 =  DATEDIFF(date1,CURDATE());
END;

CALL topic2_2(20200201,@date2);
SELECT @date2;

结果:
在这里插入图片描述

题目三:

使用 MySQL Workbench 或者其他的图形化工具,创建一个存储过程,该存储
过程可以根据输入的成绩,返回成绩的等级,例如成绩在 100~90 分之间,输出成
绩等级为“优”;如果成绩在 80~89 分之间,输出成绩等级为“良”,如果成绩在
70~79 分之间,输出成绩等级为“中”,如果成绩在 60~69 分之间,输出成绩等级
为“及格”,如果成绩在 60 分以下,输出成绩等级为“不及格”,如果成绩为空值
或者不在 0~100 之间,输出“成绩数据有误”。至少输入 3 组数据,测试上面的存
储过程。把操作结果和操作过程截屏,填写到实验报告中。

delimiter //
create procedure topic3_1(in score int,out grade varchar(10))
begin
	case 
    when score>=90 then set grade = '优';
	when score>=80 then set grade = '良';
	when score>=70 then set grade = '中';
	when score>=60 then set grade = '及格';
    else set grade = '不及格';
    end case;
end;


call topic3_1(77,@score);
select @score

call topic3_1(17,@score);
select @score

call topic3_1(97,@score);
select @score

结果:
在这里插入图片描述

题目四:

使用 MySQL Workbench 或者其他的图形化工具,创建一段程序将 1 到 8000 之
间的整数累加,如果该整数可以被 5 或者 9 整除,则不进行累加;当累加的总和
超过 25000 了,就结束累加,并将被累加的整数插入到一个表中,该表的结构根
据实际情况自行设计。查询该表,显示所有被累加的整数。

delimiter //
create procedure add_fun1_4(out result int) -- 定义函数
begin
	declare i int default 0; -- 定义并初始化累加变量
	declare sum int default 0;
    set result = 0; -- 初始化结果变量
	xh_block:  -- 定义循环块
	begin
		while i<8000 do -- while循环开始
			set i = i+1; -- 累加
			if ((mod(i,5)=0) or (mod(i,9)=0)) then -- 如果该整数可以被 5 或者 9 整除,则不进行累加
				set sum = sum+i;
				if sum>=25000 then -- 当累加的总和超过 25000 了,就结束累加
					set result = sum;
					leave xh_block; -- 离开循环块
				end if;
			end if;
		end while;
	end xh_block;
end;

call add_fun1_4(@result); -- 调用存储过程
select @result; -- 查询变量值

结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值