当前位置: 首页> 财经> 金融 > 承德网站制作公司哪家好_好网站建设公司有多少_糕点烘焙专业培训学校_长沙企业seo服务

承德网站制作公司哪家好_好网站建设公司有多少_糕点烘焙专业培训学校_长沙企业seo服务

时间:2025/7/9 23:53:52来源:https://blog.csdn.net/wszhj_/article/details/143717293 浏览次数:0次
承德网站制作公司哪家好_好网站建设公司有多少_糕点烘焙专业培训学校_长沙企业seo服务

数据库实验四

  • 掌握COUNT( * ),SUM(),AVG(),MAX(),MIN()的使用方法
  • 分组语句GROUP BY,HAVING的使用方法
  • 掌握内连接,自连接,外连接;带比较运算符的子查询

前言:本实验基于T-SQL语言。

掌握COUNT( * ),SUM(),AVG(),MAX(),MIN()的使用方法

  1. 统计学生总人数:

    SELECT COUNT(*) FROM Student 
    

    运行结果:

    image-20241112135703607

  2. 统计选修了课程的学生的人数:

    use StudentManagementSystem
    SELECT COUNT (DISTINCT Sno) FROM SC --统计选修表中的学生总人数,括号中的语句是计算不同学号的数量
    

    运行结果:

    image-20241112155129335

  3. 计算9512101号学生的考试总成绩之和。

    use StudentManagementSystem
    SELECT SUM(Grade) FROM SC WHERE Sno = '9512101' --计算学号为9512101各项成绩之和
    

    运行结果:

    image-20241112140239131

  4. 计算’01’号课程的学生的考试平均成绩:

    use StudentManagementSystem
    SELECT AVG(Grade) FROM SC WHERE Cno='01'  -- 计算’01’号课程的学生的考试平均成绩。
    

    运行结果:

    image-20241112140630896

  5. 查询选修了’01’号课程的学生的最高分和最低分:

    use StudentManagementSystem
    SELECT MAX(Grade) , MIN(Grade)  FROM SC WHERE Cno='01'   -- 计算’01’号课程的学生的考试最高分和最低分
    

    运行结果:

    image-20241112141025527

  • 计算函数不能出现在WHERE子句中

分组语句GROUP BY,HAVING的使用方法

  1. 统计每门课程的选课人数,列出课程号和人数:

    use StudentManagementSystemSELECT Cno as 课程号, COUNT(*) as 选课人数   FROM SC GROUP BY Cno  --统计每门课程的选课人数,列出课程号和人数。
    

    运行结果:

    image-20241112143144428

  • GROUP会对查询结果按Cno的值分组,将所有具有相同Cno值的元组为一组。
  1. 查询每名学生的选课门数和平均成绩:

    use StudentManagementSystemSELECT Sno as 学号, COUNT(*) as 选课门数, AVG(Grade) as 平均成绩 FROM SC GROUP BY Sno -- 查询每名学生的选课门数和平均成绩
    

    运行结果:

    image-20241112144020186

  2. 查询修了3门及以上课程的学生的学号:

    use StudentManagementSystemSELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) >= 3  --查询修了3门及以上课程的学生的学号
    

    运行结果:

    image-20241112144501572

    • HAVING可以对分组做限制。
  3. 查询修课门数等于或大于3门的学生的平均成绩和选课门数:

    use StudentManagementSystemSELECT Sno, AVG(Grade) 平均成绩, COUNT(*) 修课门数  FROM SC GROUP BY Sno HAVING COUNT(*) >= 3 --查询修课门数等于或大于3门的学生的平均成绩和选课门数
    

    运行结果:

    image-20241112144712727

掌握内连接,自连接,外连接;带比较运算符的子查询

  1. 查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩:

    use StudentManagementSystem
    SELECT Sname, Cno, Grade  FROM Student JOIN SC  ON Student.Sno = SC.Sno WHERE Sdept = '计算机系'--查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩
    

    运行结果:

    image-20241112145044350

    • 内连接的语法:SELECT ... FROM 表名 JOIN 被连接表名 ON 连接条件
    • 内连接可以从不同的表中提取 不同表中的列数据,它们通常有一个连接条件,只有满足条件才会包含在集合中。
  2. 查询修了外语课程的体育系学生的修课成绩,要求列出学生姓名、课程名和成绩:

    use StudentManagementSystem
    SELECT Sname, Cname, GradeFROM  Student  s  JOIN  SC ON s.Sno = SC. SnoJOIN  Course c ON c.Cno = SC.CnoWHERE Sdept = '体育系' AND Cname = '外语' --查询修了外语课程的体育系学生的修课成绩,要求列出学生姓名、课程名和成绩:
    

    运行结果:

    image-20241112145926194

  3. 查询所有修了外语课程的学生的修课情况,要求列出学生姓名和所在的系:

    use StudentManagementSystem
    SELECT Sname, SdeptFROM Student S JOIN SCON S.Sno = SC.SnoJOIN Course C ON C.Cno = SC.cnoWHERE Cname = '外语' --查询所有修了外语课程的学生的修课成绩,要求列出学生姓名和所在系
    

    运行结果:

    image-20241112150130524

  4. 查询与张三在同一个系学习的学生的姓名和所在的系:

    use StudentManagementSystem
    SELECT S2.Sname, S2.SdeptFROM Student S1 JOIN Student S2ON S1.Sdept = S2.SdeptWHERE S1.Sname = '张三' AND S2.Sname != '张三' --查询与张三在同一个系学习的学生的姓名和所在的系
    

    运行结果:

    image-20241112150531417

  5. 查询学生的修课情况,包括修了课程的学生和没有修课的学生:

    use StudentManagementSystem
    SELECT Student.Sno, Sname, Cno, GradeFROM Student LEFT OUTER JOIN SCON Student.Sno = SC.Sno  --查询学生的修课情况,包括修了课程的学生和没有修课的学生:
    

    运行结果:

    image-20241112151851432

  6. 查询与张三在同一个系的学生:

    use StudentManagementSystem
    SELECT Sno, Sname, SdeptFROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname = '张三') AND Sname != '张三' --查询与张三在同一个系的学生
    

    运行结果:

    image-20241112152739731

  7. 查询成绩为大于80分的学生的学号、姓名:

    use StudentManagementSystemSELECT Sno, Sname FROM StudentWHERE Sno IN( SELECT Sno FROM SCWHERE Grade > 80 ) --查询成绩大于80的学号和姓名
    

    运行结果:

    image-20241112152956223

  8. 查询选修了“C语言”课程的学生的学号、姓名:

    use StudentManagementSystem
    SELECT Sno, Sname FROM StudentWHERE Sno IN( SELECT Sno FROM SCWHERE Cno IN(SELECT Cno FROM CourseWHERE Cname = 'C语言') )--查询选修了“C语言”课程的学生的学号、姓名:
    

    运行结果:

image-20241112153243583

  1. 查询修了‘02’课程且成绩高于此课程的平均成绩的学生的学号和成绩:

    use StudentManagementSystem
    SELECT Sno , Grade FROM SCWHERE Cno = '01'and Grade > (SELECT AVG(Grade) from SC WHERE Cno = '01') --查询选修了“02”课程且高于平均分学生的学号、姓名:
    

    运行结果:

    image-20241112153435443

  2. 查询选修了‘01’号课程的学生姓名:

    use StudentManagementSystem
    SELECT Sname FROM Student WHERE EXISTS(SELECT * FROM SC WHERE Sno = Student.Sno AND Cno = '01') --查询选修了‘01’号课程的学生姓名。
    

    运行结果:

    image-20241112153628537

  3. 查询没有选修‘01’号课程的学生姓名和所在系:

    use StudentManagementSystemSELECT Sname, Sdept FROM Student WHERE NOT EXISTS(SELECT * FROM SCWHERE Sno = Student.Sno AND Cno = '01') --查询没有选修了‘01’号课程的学生姓名。
    

    运行结果:

    image-20241112153819719

关键字:承德网站制作公司哪家好_好网站建设公司有多少_糕点烘焙专业培训学校_长沙企业seo服务

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: