课程名称 实验名称 学号 数据库原理 复杂查询 姓名 班级 实验 成绩 日期 实验目的: 1. 掌握SELECT语句复杂查询的使用; 2. 掌握多表连接查询的方法; 3. 掌握非相关子查询、相关子查询的用法; 4. 掌握谓词在查询中的应用; 实验平台: 利用安装的SQL SERVER 2008及其交互查询工具-查询编辑器来操作SQL语言。 实验内容: 使用SQL语言实现下列嵌套查询。 1. 查询张星老师所教授的全部课程的课程名及其学分。 select Cname, Credit ,Teacher.* from Course ,Teacher where Course.Cpno=Teacher.Cpno and Teacher.Tname='张星' 2. 查询在信息系学习的全部学生的基本情况。 select Student.* ,Dept.Sdept from Student,Dept where Student.Sdept=Dept.Sdept AND Xname='信息' 3. 查询没有选修任何课程的学生的姓名。 select Sname from Student where Sno not in (select Sno from SC) 4. 查询选修课总学分在10学分以下的学生的姓名; Select Sname from Student,SC,Course Where SC.Cno=Course.Cno and Student.Sno=SC.Sno Group by Sname Having SUM(Credit<10) 5. 查询各门课程最高成绩的学生的姓名及其成绩; select s1.Cno,Sname,Grade from student,SC s1 where student.Sno=s1.Sno and Grade= (select max(Grade) from SC s2 WHERE s1.Cno = s2.Cno ) 6. 查询选修了课程号1001的学生所选修的全部课程的学生的学号; Select DISTINCT SNO from SC SCX where NOT EXISTS ( SELECT * FROM SC SCY WHERE SCY.SNO ='1001' AND NOT EXISTS ( SELECT * FROM SC SCZ WHERE SCZ.SNO = SCX.SNO AND SCZ.CNO = SCY.CNO ) ) 7. 查询选修了张星老师所开设的全部课程的学生的姓名; Select Sname 姓名 From Student Where not EXISTS (select *from Course Where Cpno from Teacher Where Tname=’张星’) And not EXISTS (select *from SC Where SC.Sno=Student.Sno and SC.Cno=Course.Cno)); 实验总结(结论或问题分析): 通过实验掌握SELECT语句复杂查询的使用和多表连接查询的方法以及非相关子查询、相关子查询的用法,在实验中遇到些问题,在老师和同学的帮助下得以顺利解决,为以后更好的学习奠定了基础。 本文来源:https://www.wddqw.com/doc/4694897f6c85ec3a86c2c512.html