使用mysql 一个数据库中有俩个表: student(学生表) 和score(成绩表)
学生表中有总分和名次字段,将成绩表中的每位学生的每科成绩进行合计并放入学生表的总分字段,然后根据总分结果,并将相对应的名次填入名次字段,就是如总分最高,名次则为1其次为2...
学生表中有总分和名次字段,将成绩表中的每位学生的每科成绩进行合计并放入学生表的总分字段,然后根据总分结果,并将相对应的名次填入名次字段,就是如总分最高,名次则为1 其次为2,就是触发一个事件将所有学生所对应的总分和名次全部填入学生表中。
表结构如下: 成绩表: 学号 课程名称 学期 成绩
学生表: 学号 姓名 总分 名次
大虾们啊~~神马意思啊?是用户名嘛?我加了啊! 展开
表结构如下: 成绩表: 学号 课程名称 学期 成绩
学生表: 学号 姓名 总分 名次
大虾们啊~~神马意思啊?是用户名嘛?我加了啊! 展开
4个回答
展开全部
SET @i=0。
SQL本身有数据导入的操作。但如果要从一个备份的文件中导入数据,则要进行另外的操作。下面以一个例子进行说明。
SQL服务器上已有一个DOE数据库,并且里面有大量的数据,现准备从另外一个备份文件A1.BAK(不是DOE数据库的备份文件)中导入另外的数据(即导入后在DOE中增加一些数据表,表中已录有数据),并保持原DOE的数据不变。
扩展资料:
在为MySQL分配足够的内存之前,请考虑不同领域对MySQL的内存需求。要考虑的关键领域是:并发连接——对于大量并发连接,排序和临时表将需要大量内存。在撰写本文时,对于处理3000+并发连接的数据库,16GB到32GB的RAM是足够的。
内存碎片可以消耗大约10%或更多的内存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等缓存和缓冲区要消耗大约80%的已分配内存。
参考资料来源:百度百科-MySQL数据库
展开全部
SET @i=0;
INSERT INTO student (总分,名次) VALUES SELECT SUM(成绩) AS total,@i:=@i+1 FROM score GROUP BY 学号 ORDER BY total DESC;
INSERT INTO student (总分,名次) VALUES SELECT SUM(成绩) AS total,@i:=@i+1 FROM score GROUP BY 学号 ORDER BY total DESC;
追问
再问一下啊,就是成绩表中学生新加了课程和成绩,要统计后在更新进student表中要怎么来啊?
追答
简单做就是先删除delete * from score;
然后在重新插入。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
-------第一步,求总成绩(我把总成绩放在一个视图里了)
create view tg
as
select 学号,sum(成绩) t
from 成绩表
group by 学号
-------第二步,将总成绩导入到学生表(先运行上面代码)
update 学生表
set 总分= tg.t
from 学生表,tg
where 学生表.学号= tg.学号
------第三步,排名次
select 学号,姓名,总分,isnull((select sum(1) from 学生表 where 总分>A.总分),0)+1 名次
from 学生表 as A
order by (select sum(1) from 学生表 where 总分>=A.部分)
-----------最后,嘿嘿,我能力不足,没做触发器了
create view tg
as
select 学号,sum(成绩) t
from 成绩表
group by 学号
-------第二步,将总成绩导入到学生表(先运行上面代码)
update 学生表
set 总分= tg.t
from 学生表,tg
where 学生表.学号= tg.学号
------第三步,排名次
select 学号,姓名,总分,isnull((select sum(1) from 学生表 where 总分>A.总分),0)+1 名次
from 学生表 as A
order by (select sum(1) from 学生表 where 总分>=A.部分)
-----------最后,嘿嘿,我能力不足,没做触发器了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询