课程:SQL Server数据库应用 实验七:多表查询
实验七 多表查询
一、 实验目的及要求
本实验的主要目的是掌握从多个数据表中查询数据的方法,并能根据业务要求书写出各种查询语句。具体要求有: 1. 掌握基于多个表查询的各种表连接方式。 2. 掌握各种连接条件的使用方法。 3. 掌握子查询的使用方法。
4. 掌握相关子查询的概念和使用方法。
二、 实验原理及背景知识
1. 了解SQL中子查询和连接查询概念。
2. 理解关系代数中连接运算和除法运算的概念及原理。 3. 实验前需要了解所使用的数据库中表的结构。 4. 实验前需要在stuManage数据库中输人模拟数据。
5. 内连接的实现可以用INNER JOIN或WHERE AND 来实现,两者
含义相同,本实验主要使用WHERE AND 进行连接。
三、 实验内容及步骤
1. 输入下面的查询语句,执行后验证实验结果 (1)
查询每个学生的学号、姓名、性别、专业名称等信息。
1 / 9
课程:SQL Server数据库应用 实验七:多表查询
(2)
查询每个学生的学号、姓名及不及格课程门数。
(3)
查询计算机科学与技术专业每个班级的学生人数。
(4)
查询选修了开课号为0324091007的这门课,且成绩比该课
程的平均分高的同学及其成绩。
(5)
查询有学生选课的课程数量。
(6)
选修了全部所开课程的学生名。
2 / 9
课程:SQL Server数据库应用 实验七:多表查询
2. 输人并运行下面查询语句,根据结果思考并记录其功能。 (1)
功能:查询与刘卫平同性别的学生姓名及其出生日期
(2)
功能:查询至少选修了开课号为'0324091007'或
'0324051013'的学生学号、姓名、性别
(3) 功能:查询既选修了'0324091007’,又选修了'0312091006'
的学生学号和姓名
(4)
功能:查询学号‘100212201’的成绩大于学号‘100212208’
任意一门成绩的课程号及其成绩
3 / 9
课程:SQL Server数据库应用 实验七:多表查询
(5) 功能:查询有不及格学生的学号、姓名、专业名称
(6)
功能:查询不是李明老师授课的学生姓名
3. 阅读并分析下列查询语句,根据其功能,补全语句之后进行验证 (1)
查询有不及格课程的学生学号,姓名和专业名称。
select distinct s.sNO, sName, mName from student s, major m, student_course sc where s.mNO=m.mNO and s.sNO=sc.sNO and mark<60 (2)
列出\号课成绩比“2009010201\号课成绩高的
所有学生的学号及其两门课的成绩。 select sc1.sNO, sc1.mark, sc2.mark
from student_course sc1, student_course sc2
4 / 9