唯以深情伴长歌 2020-12-24 21:04 采纳率: 50%
浏览 18
已结题

这道Oracle的题求大佬发答案?

下面是学生,课程与成绩的基本信息:(字段名用缩写) S(SID,SN,SD,SA)SID,SN,SD,SA分别代表学号,学员姓名,所属单位,学员年龄 C(CID,CN)CID,CN分别代表课程编号,课程名称 SC(SID,CID,G) SID,CID,G分别代表学号,所选的课程编号,学习成绩 根据上面的信息完成下面的 SQL 语句。

1、选用合适的数据类型与约束完成两个表的创建。

2、查询每个学员的学号与总成绩。

3、查询学生表的第二页记录(每页显示数据30条)。

4、查询选修课程超过5门的学员学号和所属单位。

5、查询每个科目成绩排行第二的学员信息。

  • 写回答

3条回答 默认 最新

  • cwkisasb 2020-12-25 15:12
    关注
    -- 学生表
    create table T_STUDENT(
      SID VARCHAR(44) PRIMARY KEY,
      SN VARCHAR(100),
      SD VARCHAR(100),
      SA INT
    );
    
    -- 课程表
    create table T_CLASSES(
      CID VARCHAR(44) PRIMARY KEY,
      CN VARCHAR(100)
    );
    
    -- 选课表
    create table T_STUDENT_CLASSES(
      SID VARCHAR(44),
      CID VARCHAR(44),
      G NUMBER(10, 2),
      FOREIGN KEY (SID) REFERENCES T_STUDENT(SID),
      FOREIGN KEY (CID) REFERENCES T_CLASSES(CID)
    );
    
    -- 查询每个学生的学号、总成绩
    select 
      a.SID 学号, 
      a.SN 姓名,
      sum(b.G) 总成绩
    from T_STUDENT a
    left join T_STUDENT_CLASSES b on b.SID = a.SID
    group by a.SID, a.SN;
    
    -- 查询学生表的第二页记录(每页显示数据30条)
    select * from (
      select a.*, ROWNUM no from T_STUDENT a
    ) t1
     where t1.no between 31 and 40;
    
    -- 查询选修课程超过5门的学员学号和所属单位
    select t1.SID, t1.SD from T_STUDENT t1 
    left join (
      select a.SID SID, count(b.CID) COUNTS from T_STUDENT a left join T_STUDENT_CLASSES b on b.SID = a.SID group by a.SID
    ) t2 on t1.SID = t2.SID
    where t2.COUNTS >= 5;
    
    -- 查询每个科目成绩排行第二的学员信息
    select
      table1.SID 学号,
      table1.SN 姓名,
      table1.SD 单位,
      table1.SA 年龄,
      table3.CN 课程,
      table2.G 成绩
    from T_STUDENT table1
    left join (
      select t1.CID CID, max(t1.G) G, t1.SID SID from T_STUDENT_CLASSES t1
      left join (
        select MAX(a.G) MAXG, a.CID from T_STUDENT_CLASSES a group by a.CID
      ) t2 on t1.CID = t2.CID
      where t1.G < t2.MAXG group by t1.CID, t1.SID
    ) table2 on table2.SID = table1.SID
    left join T_CLASSES table3 on table2.CID = table3.CID;
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形