《数据库原理及应用案例教程》
实验4 数据库的多表连接查询实验
一,实验目的
继续熟练查询分析器的使用方法;理解多表查询的概念;掌握多表查询的SELECT.FROM.WHERE.GROUP BY.HA VING 子句的用法,特别要求比较内连接,外连接的结果。
二,实验内容
在已建立Studentinfo 数据库和三个表STUDENTS,COURSES,ENROLLMENT的基础上,用SELECT语句完成下列查询:
1)查询每个学生的基本信息以及他、她选课的情况。
SELECT Students.*,Enrollment.*
FROM Students,Enrollment
WHERE Students.Sno=Enrollment.Sno
2)查询每个学生的学号,姓名,选修的课程名,成绩。
SELECT Students.Sno,Sname,Cname,Grade
FROM Students,Courses,Enrollment
WHERE Students.Sno=Enrollment.Sno AND https://www.360docs.net/doc/9717673348.html,o=https://www.360docs.net/doc/9717673348.html,o
3)查询选修了C2且成绩大于90分的学生的学号,姓名,成绩。
SELECT Students.Sno,Sname,Grade
FROM Students,Enrollment
WHERE Students.Sno=Enrollment.Sno AND Cno=’c2’ AND Grade>90
4)求计算机系选修课程超过两门课的学生的学号,姓名,成绩。并平均成绩降序排列。SELECT Students.Sno,Sname,A VG (Grade) ’Average’
FROM Students,Enrollment
WHERE Students.Sno=Enrollment.Sno AND Sdept=’Computer’
Group by Students.Sno,Sname
HA VING COUNT (*)>=2
Order by SUM(Grade)DESC
5)查询与Sue在同一个系学习的所有学生的学号,姓名。
SELECT S2.Sno,S2.Sname
FROM Students S1,Students S2
WHERE S1.Sdept=S2.Sdept AND S1.Sname=’Sne’
6)查询所有学生的选修情况,要求包括选修了课程的学生和没有选修课的学生,显示他们
的学号,姓名,课程号和成绩。
SELECT Students.Sno,Sname,Cno,Grade
FROM Students,Enrollment
WHERE Students.Sno*=Enrollment.Sno
三,实验步骤
有关服务器的启动,停止步骤以及查询分析器的使用。