hc学习平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 javakc
 › 学习交流 › MySql › 根据成绩表和课程表完成下列题目
查看: 2439|回复: 0
打印 上一主题 下一主题

根据成绩表和课程表完成下列题目

[复制链接]

2249

主题

0

帖子

0

博客

admin

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

跳转到指定楼层
楼主
发表于2018-08-29 11:29:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

下面是学生成绩表( score)结构说明

字段名称
字段解释
字段类型
字段长度
约束
sc_number 学号 字符 8 PK
sc_name 姓名 字符
50 Not null
sc_sex 性别 字符(男:1,女:0)
2 Not null
sc_courseid 课程号 字符5
PK
sc_score 分数 数值 3 Not null
sc_ismakeup 当前考试是否为补考 字符(补考:1,非补考:0) 2 Not null

下面是课程表( course)说明

字段名称
字段解释
字段类型
字段长度
约束
co_id 课程号 字符
5 PK
co_name 课程名 字符
3 Not null
co_desc 课程介绍 字符 60


1.如果学号的前两位表示年级,要查找98级女生的姓名,请写出相应的SOL语句:(15分)

2.要查找所有需要补考(小于60分)的学生姓名和这门课程的名称和成绩,请写出相应的SOL语句:(15分)

3.查询每个学生需要补考(小于60分)的课程的平均分,并以平均分排序:(20分)

0

主题

1213

帖子

0

博客

yanghao

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2018-09-14 08:50:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

SELECT SC_NAME FROM SCORE WHERE SC_SEX='NV' AND    SC_NUMBER.substring(2)='98' ;

SELECT SC_NAME,SC_SC_COURSEID FROM SCORE WHERE SCORE<60;

SELECT AVG(SCORE) FROM SCORE WHERE SC_SCORE<60 GROUP BY SCORE ORDER BY AVG(SCORE);


0

主题

982

帖子

0

博客

m1359292934

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2019-10-31 15:10:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1、select sc_name from score where sex='女' and substr(sc_number,1,2)='98';

2、select sc_name,co_name,sc_score from score s,course c where s.sc_courseid=c.co_id and sc_score<60;

3、 select s.name,F.a
  from student s,
    (select studentid,avg(score) a from
       (select score, studentid
           from score
              where studentid in (select studentid
                       from score
                      where score < 60
                      group by studentid
                     )) t
           group by studentid) f
   where s.id=f.studentid

order by F.a

4、declare cursor myCur is

        select score
           from score
          c1 myCur%rowtype;  

begin

open myCur;

loop fetch myCur into c1;               

    if sc_ismakeup=1 then

            dbms_output.put_line('补考成绩' ||  || c1.score );

      else c1 myCur%rowtype;=0 then

             dbms_output.put_line('原来成绩' ||  || c1.score );   

exit;

end if;

end loop;

close myCur;

end;



站点统计|举报|Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, , Processed in 0.195171 second(s), 9 queries .

Powered by javakc! X1.0

© 2004-2014 javakc

f1208.com 备案号:京ICP备14030918号-1

返回顶部