南京晓庄学院
《数据库原理与应用》课程实验报告
实验五嵌套子查询设计实验
所在院(系):数学与信息技术学院
班级:
学号:
姓名:
1.实验目的
(1)掌握多表查询和子查询的方法。
(2)熟练使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
(3)理解不相关子查询和相关子查询的实现方法和过程。
2.实验要求
(1)针对“TM”数据库,在SQL Server查询分析器中,用T-SQL语句实现以下查询操作:
a)查询选修了数据结构与算法的学生学号和姓名。
b)查询07294002课程的成绩低于孙云禄的学生学号和成绩。
c)查询和孙云禄同年出生的学生的姓名和出生年份。
d)查询其他系中年龄小于数学与信息技术学院年龄最大者的学生。
e)查询其他系中比数学与信息技术学院学生年龄都小的学生。
f)查询同孙云禄数据库原理与应用课程分数相同的学生的学号和姓名。
g)查询选修了07294002课程的学生姓名。
h)查询没有选07294002课程的学生姓名。
i)查询同时选修了07295006和07295007课程的学生的学号。
j)查询所有未授课的教师的工号、姓名和院系,结果按院系升序排列。
扩展实验:
a)查询和10060101选修的全部课程相同的学生的学号、课程号、期末考试
成绩。
b)查询至少选了10060101选修的全部课程的学生的学号。
c)查询年龄比所在院系平均年龄小的学生的学号、姓名、年龄、院系,按
院系和年龄升序排列。
d)查询每门课都在80分以上的学生的学号和姓名。
(2)在SQL Server Management Studio中新建查询,尽可能用多种形式表示实验中的查询语
句,并进行比较。
(3)按要求完成实验报告。
3.实验步骤、结果和总结实验步骤/结果
将调试成功的T-SQL语句写在下方(标明题号)。
4.实验思考:
①哪些类型的嵌套查询可以用联接查询表示?
②嵌套查询具有何种优势?
③相关子查询和不相关子查询的执行顺序有何不同,子查询各自执行几遍?。