计算机科学系实验报告 (首页) 课程名称 数据库系统概论 班 级 网络工程2班 实验名称 数据库中数据的查询 指导教师 索剑 姓名 李文森 学 号 1214080613213 日 期 2014年 5月12日
一、实验目的
学会使用SQL语言进行各种类型的查询,理解各种查询的异同及相互之间的转换。
二、实验设备与环境
三、实验内容、程序清单及运行结果
实验内容:
练习单表查询、嵌套查询、连接查询及集合查询
操作步骤:
1) 打开实验1建立的数据库
2) 在查询分析器中完成以下单表查询语句 查询全体学生的姓名及其出生年份
查询年龄不在20~23岁之间的学生姓名、系别和年龄 查询既不是IS、MA,也不是CS系学生的姓名和性别 查询所有姓刘的学生的姓名、学号和性别
查询选修了3号课程的学生的学号及其成绩,结果按分数的降序排列
SQL SERVER 2000、XP系统
计算1号课程的学生平均成绩
查询选修了3门以上课程的学生学号
3) 在查询分析器中完成以下连接查询语句
查询每个学生及其选修课程的情况(使用自然连接、外连接分别完成) 查询每一门课的间接先修课
查询选修2号课程且成绩在90分以上的所有学生 查询每个学生的学号、姓名、选修的课程名及成绩 4) 在查询分析器中完成以下嵌套查询语句
查询与“刘晨”在同一个系学习的学生(使用嵌套查询、自身连接、比较运算符分别完成)
查询选修了课程名为“信息系统”的学生学号和姓名(使用嵌套查询、自然连接分别完成)
查询其他系中比信息系某一学生年龄小的学生姓名和年龄(使用ANY谓词、集函数分别完成)
查询所有选修了1号课程的学生(使用比较运算符、IN、EXISTS分别完成) 查询没有选修1号课程的学生的姓名 查询选修全部课程的学生姓名
查询至少选修了学生95002选修的全部课程的学生号码 5) 在查询分析器中完成以下集合查询语句
查询计算机科学系的学生及年龄不大于19岁的学生并按学号排序(使用单表查询、集合查询分别完成)
查询计算机科学系的学生及年龄不大于19岁的学生的差集 6) 在企业管理器可视化环境下重新完成2-5步骤的内容
程序清单及运行结果 第一:查询
7) 打开实验1建立的数据库
8) 在查询分析器中完成以下单表查询语句 查询全体学生的姓名及其出生年份
SELECT Sname,2014-Sage AS years FROM Student;
查询选修了课程的学生学号(去掉重复行) SELECT DISTINCT Sno FROM SC;
查询年龄不在20~23岁之间的学生姓名、系别和年龄
SELECT Sname,Sdept,Sage FROM Student where Sage not between 20 and 23;
查询既不是IS、MA,也不是CS系学生的姓名和性别
SELECT Sname,Sdept FROM Student WHERE Sdept not in('IS','MA','CS');
查询所有姓刘的学生的姓名、学号和性别
SELECT Sname,Sno,Sage FROM Student WHERE Sname LIKE '刘%';
查询选修了3号课程的学生的学号及其成绩,结果按分数的降序排列 SELECT Sno,Grade FROM SC WHERE Cno='3' ORDER BY Grade DESC;
计算1号课程的学生平均成绩
SELECT AVG(Grade) FROM SC WHERE Cno='1' ;
查询选修了3门以上课程的学生学号
SELECT Sno from SC GROUP BY Sno HAVING COUNT(Cno)>3;
9) 在查询分析器中完成以下连接查询语句
查询每个学生及其选修课程的情况(使用自然连接、外连接分别完成) SELECT Student.*,SC.Cno FROM Student,SC WHERE Student.Sno=SC.Sno;
SELECT Student.*,Cno FROM Student JOIN SC ON(Student.Sno=SC.Sno);