脑容量不够 2023-04-12 09:55 采纳率: 66.7%
浏览 20
已结题

关于#数据库#的问题,答案对么?


现有学生课程数据库的三张表,
学生表 Student(Sno,Sname,Ssex,Sage,Sdept):Sno-学号,Sname-姓名,Ssex-性别,Sage-年龄,Sdept-所在系
课程表Course(Cno,Cname,Cpno,Ccredit):Cno-课程号,Cname-课程名,Cpno-选修课号,Ccredit-学分
学生选课表SC(Sno,Cno,Grade):Sno-学号,Cno-课程号,Grade-成绩
问题:
1、求各个课程号及其相应的选课人数,按照选课人数降序排列
2、求所有学生的姓名以及其选修课程的课程名。注意有部分学生未选任何课程
3、求与“张三”在同一个系学习的学生学号和姓名
4、查询没有选修1号课程的学生姓名


答案
1 select * from SC order by (select count(Cno)from SC group by Cno) asc 
2.select Sname,Cname,Cpno  from Student left joinselect Sno ,Cno ,Cname ,Cpno ,Ccredit from Course inner jion SC  on Course.Cno=SC.Cno)t  on Course.Sno=t.Sno
3. select  Sno,Sname ,Sdept  from Student where Sdept = (select Sdept from Student where Sname='张三' )
4. select Sname from Student where  Sdept ont in(Sdept='选修一号'
  • 写回答

1条回答 默认 最新

  • 心寒丶 全栈领域优质创作者 2023-04-12 10:10
    关注

    首选你这第一个都不对啊,你也没查出课程号及其相应的选课人数,你是查询的sc表的所有信息,参考下这个,没有表也不知道有问题没

    1、SELECT Cno, COUNT(*) AS num FROM SC GROUP BY Cno ORDER BY num DESC;
    2、SELECT Student.Sname, Course.Cname FROM Student LEFT JOIN SC ON Student.Sno = SC.Sno LEFT JOIN Course ON SC.Cno = Course.Cno;
    3、SELECT Sno, Sname FROM Student WHERE Sdept = (SELECT Sdept FROM Student WHERE Sname = '张三');
    4、SELECT Sname FROM Student WHERE Sno NOT IN (SELECT Sno FROM SC WHERE Cno = '1');
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line