MySQL用while实现for循环嵌套(插入学生成绩信息功能)

本次实验的目的在于实现mysql中自动插入学生成绩信息,即给每个学生自动插入1~6号课程的成绩,

属性如下:

学生学号(i):1~23

课程号(j):1~6

成绩:用rand()函数来实现自动填成绩


此功能在java中用两个for循环嵌套即可,代码如下:

for(int i=0;i<22;i++){
	for(int j=0;j<6;j++){
//此处为jdbc操作插入的语句
//也可以用hibernate插入
	}
}

用存储过程会有一点for循环的影子,但是要注意对于课程号(j)的循环结束后要使j重新初始化到1,这样才能继续下次对j的循环,否则下次直接跳过对j的while循环,mysql中sql代码如下:

delimiter $	#以delimiter来标记用$表示存储过程结束
create procedure pro()
begin
declare i int;	#定义i变量
declare j int;	#定义j变量
set i=1;
set j=1;
while(i<=23) do	#对学号的循环
	while(j<=6) do	#对课程号的循环
		insert into scores(sid,cid,score) values(i,j,rand()*100);	
		set j=j+1;
	end while;
	set i=i+1;
	set j=1;	#重新给j赋值为1,让它下次继续从j=1开始进行立面的while循环
				#如果不给重新赋值为1,则对j的while循环只能进行一次
end while;
end 
$	#存储过程结束
call pro(); #调用pro()存储方法



这样插入的结果如下:

id    i     j score
---------------------

1 1 1 71
2 1 272
3 1 348
4 1 424
5 1 577
6 1 614
7 2 137
8 2 242
9 2 31
10 2 476
11 2 580
12 2 670
13 3 110
14 3 239
15 3 366
16 3 413
17 3 569
18 3 6

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值