SQL实验七 多表查询

课程: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

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4