大学mysql实验报告(四)附答案

时间:2023-04-11 04:47:11 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
实验报告(四)



专业: 班级: 学号:



姓名:









实验名称:数据库的多表连接查询实验

报告内容:

1、用SELECT语句完成第183页实验323272831)的查询语句

23) 求选修了课程的学生人数

SELECT COUNT*)选课人数 FROM Enrollment 27)求选修每门课程的学生人数。

SELECT Cno AS '课程号', COUNT(Sno) AS '选修人数' FROM Enrollment GROUP BY Cno

28)求每个学生的学号和各门课程的总成绩。

SELECT Sno '学号', Sum(grade) '总成绩' FROM Enrollment GROUP BY Sno 31)查询选修了C1课程的学生的学号和成绩,查询结果按成绩降序排列。 SELECT Sno, Grade FROM Enrollment WHERE Cno='C1' ORDER BY Grade DESC

32)查询全体学生信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。 SELECT * FROM Students ORDER BY Sdept, Sage DESC

2、用SELECT语句完成第183页实验42346)的查询语句

2)查询每个学生的学号、姓名、选修的课程名、成绩。 SELECT Students.Sno,Sname, Cname,Grade FROM Students,Courses,Enrollment

WHERE Students.Sno = Enrollment.Sno AND Courses.Cno= Enrollment.Cno 3)查询选修了C2且成绩大于90分的学生的学号、姓名、成绩。 SELECT Students.Sno,Sname, Grade FROM Students, Enrollment

WHERE Students.Sno = Enrollment.Sno AND Cno='C2 ' AND Grade>90

4)求计算机系选修课程超过2门课的学生的学号、姓名、平均成绩, 并按平均成绩从高到低排序。


SELECT Students.Sno, Sname, AVG(Grade) 'Average' FROM Students, Enrollment

WHERE Students.Sno= Enrollment.Sno AND Sdept='Computer' GROUP BY Students.Sno,Sname HAVING COUNT(*) >= 2 ORDER BY SUM(Grade) DESC

6)查询所有学生的选修情况,要求包括选修了课程的学生和没有修课的学生,显示他们的学号、姓名、课程号、成绩。

SELECT Students.Sno, Sname,Cno,Grade FROM Students,Enrollment

WHERE Students.Sno*=Enrollment.Sno 上述左外连接可可以用右外连接等价表示: SELECT Students.Sno, Sname,Cno,Grade FROM Students,Enrollment

WHERE Enrollment.Sno =* Students.Sno

SQLSERVER2000中,以上左外连接还可等价表示为: SELECT Students.Sno, Sname,Cno,Grade

FROM Students LEFT JOIN Enrollment ON Students.Sno=Enrollment.Sno -或者表示为:

SELECT Students.Sno, Sname,Cno,Grade

FROM Enrollment RIGHT JOIN Students ON Enrollment.Sno=Students.Sno

3、写出习题375页的171819)小题的SQL语句

17)求借阅了图书的读者的总人数

SELECT COUNT(DISTINCT 读者号) AS借阅过图书的读者总人数 FROM 借阅 18)求机械工业出版社图书的平均价格、最高价、最低价。

SELECT AVG(单价) AS平均价,MAX(单价) AS最高价, MIN(单价) AS最低价 FROM 图书 WHERE 出版社=机械工业出版社

19 查询借阅图书本数超过2本的读者号、总本数。并按借阅本数值从大到小排序。 SELECT 读者号,COUNT(图书号) AS '总本数' FROM 借阅

GROUP BY 读者号 HAVING COUNT(*) > 2

ORDER BY COUNT(图书号) DESC


本文来源:https://www.wddqw.com/doc/f6f0d7a2a3116c175f0e7cd184254b35eefd1a08.html