1、贵州大学实验报告(小三号,加黑)
学院:计算机科学与信息学院 专业: 班级:
姓名
学号
实验组
实验时间
指导教师
成绩
实验项目名称
数据库的嵌套查询
实验目的
使学生进一步掌握SQL Server查询分析器的使用方法,加深对SQL语言的嵌套查询语句的理解。
实验要求
本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,必须进行预习,写出实现所有查询要求的SQL语句。实验过程中,先集中由老师进行具体要求和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在实验
2、指导老师帮助下解决。
实验原理
将查询要求用SQL语句表示;在SQL Server查询分析器的输入区中输入SQL 查询语句;设置查询分析器的结果区Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看结果;如果结果不正确,要进行修改,直到正确为止。
实验仪器
(1)硬件条件:个人计算机。
(2)软件条件:Windows 2000NT Server; MS SQL Server 2000。
实验步骤
1、基本操作实验
用SQL语句表示,在学生选课库中实现其数据嵌套查询操作。
(1)求选修了高等数学的学生学
3、号和姓名。
(2)求C1课程的成绩高于张三的学生学号和成绩。
(3)求其它系中年龄小于计算机系年龄最大者的学生。
(4)求其它系中比计算机系学生年龄都小的学生。
(5)求选修了C2课程的学生姓名。
(6)求没有选修C2课程的学生姓名。
(7)查询选修了全部课程的学生姓名。
(8)求至少选修了学号为“S2“的学生所选修的全部课程的学生学号和姓名。
2、提高操作实验
对自设计的数据库应用项目的数据查询操作分类,用SQL语句表示其中的简单、连接和嵌套查询,并通过SQL Server查询分析器实现其查询操作。
实验内容
在SQL Server查询分析器中使用IN、比较符、AN
4、Y或ALL和EXISTS操作符进行嵌套查询操作。
实验数据
1、 基本操作实验
(1)求选修了高等数学的学生学号和姓名。
select Number,Name from Student where exists(Select *from Selection where
Student.Number=Snumber and Cnumber=(select Number from Course where Course.Name='高等数学'))
(2)求C1课程的成绩高于张三的学生学号和成绩。
select Snumber,score from Selection SE1
5、
where SE1.Cnumber='C1' and score>(select score from Selection SE2,Student
where SE2.Snumber=Student.Number and Name='张三' and SE2.Cnumber='C1')
(3)求其它系中年龄小于计算机系年龄最大者的学生。
select* from Student S1 where Age< any(select Age from Student S2 where S2.Academy='计算机系')
(4)求其它系中比计算机系学生年龄都小的学生。
sele
6、ct* from Student S1 where Age< all(select Age from Student S2 where S2.Academy='计算机系')
(5)求选修了C2课程的学生姓名。
select Name from Student where exists(select *from Selection where Selection.Snumber=Student.Number and Selection.Cnumber='C2')
(6)求没有选修C2课程的学生姓名。
select Name from Student where not exist
7、s(select *from Selection where Selection.Snumber=Student.Number and Selection.Cnumber='C2')
(7)查询选修了全部课程的学生姓名。
select Student.Name from Student where
not exists(select * from Course where
not exists(select * from Selection where
Student.Number=Selection.Snumber and Course.Number=Selection
8、Cnumber))
(8)求至少选修了学号为“S2“的学生所选修的全部课程的学生学号和姓名。
select Student.Name,Student.Number from Student where
not exists(select * from Selection S1 where S1.Snumber='S2' and
not exists(select * from Selection S2 where
Student.Number=S2.Snumber and S1.CNumber=S2.Cnumber))
实验总结
本次实验为SQL嵌套查询,部分题略有难度,需要花时间去思考。本次实验所有程序顺利完成。
指导教师意见
签名: 年 月 日
注:各学院可根据教学需要对以上栏目进行增减。表格内容可根据内容扩充。
5