资源描述
贵州大学实验报告(小三号,加黑)
学院:计算机科学与信息学院 专业: 班级:
姓名
学号
实验组
实验时间
指导教师
成绩
实验项目名称
数据库的嵌套查询
实验目的
使学生进一步掌握SQL Server查询分析器的使用方法,加深对SQL语言的嵌套查询语句的理解。
实验要求
本实验属于验证型实验,通过实验,加强对课堂讲授知识的理解。开始实验前,必须进行预习,写出实现所有查询要求的SQL语句。实验过程中,先集中由老师进行具体要求和注意事项的讲解,然后各自独立在机器上完成实验。实验过程中出现问题,在实验指导老师帮助下解决。
实验原理
将查询要求用SQL语句表示;在SQL Server查询分析器的输入区中输入SQL 查询语句;设置查询分析器的结果区Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看结果;如果结果不正确,要进行修改,直到正确为止。
实验仪器
(1)硬件条件:个人计算机。
(2)软件条件:Windows 2000NT Server; MS SQL Server 2000。
实验步骤
1、基本操作实验
用SQL语句表示,在学生选课库中实现其数据嵌套查询操作。
(1)求选修了高等数学的学生学号和姓名。
(2)求C1课程的成绩高于张三的学生学号和成绩。
(3)求其它系中年龄小于计算机系年龄最大者的学生。
(4)求其它系中比计算机系学生年龄都小的学生。
(5)求选修了C2课程的学生姓名。
(6)求没有选修C2课程的学生姓名。
(7)查询选修了全部课程的学生姓名。
(8)求至少选修了学号为“S2“的学生所选修的全部课程的学生学号和姓名。
2、提高操作实验
对自设计的数据库应用项目的数据查询操作分类,用SQL语句表示其中的简单、连接和嵌套查询,并通过SQL Server查询分析器实现其查询操作。
实验内容
在SQL Server查询分析器中使用IN、比较符、ANY或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
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)求其它系中比计算机系学生年龄都小的学生。
select* 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 exists(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.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
展开阅读全文