数据库实验报告二 数据查询

附件2        天津商业大学学生实验报告

 开课实验室:403机房        开课时间  20##年 10月17日          实验报告 20## 年 10月17日 

1.每个实验项目一份实验报告。2.实验报告第一页学生必须使用规定的实验报告纸书写,附页用实验报告附页纸或A4纸书写,字迹工整,曲线要画在坐标纸上,线路图要整齐、清楚(不得徒手画)。3.实验教师必须对每份实验报告进行批改,用红笔指出实验报告中的错、漏之处,并给出评语、成绩,签全名、注明日期。4.待实验课程结束以后,要求学生把实验报告整理好,交给实验指导教师,加上实验课学生考勤及成绩登记表(见附件2)、目录和学院统一的封面(见附件3)后,统一装订成册存档。

                                共    页   第  页                        制表单位:设备处

 

第二篇:数据库数据查询实验报告

数据库应用设计实验报告

实验名称:_____ 实验3 数据查询______ 实验类型:_________验证型实验_________ 实验环境:指导教师:__ ____ ___ 专业班级:__________计科0802班________ 姓 名:____________ ____________ 学 号:_______ ______ ______ 联系电话:________ ______ _ 电子邮件:_ _ _

实验地点:____________________________ 实 验 日 期: 2011 年 4 月 13 日 实验报告日期: 2011 年 4 月 17 日

成绩:__________________________

一、实验目的

? 掌握查询语句的一般格式;

? 熟练掌握单表查询、连接查询、集合查询、统计查询和嵌套查询。

二、实验平台

PC机,操作系统为windows2000,SQLsever2000

三、实验步骤、出现的问题及解决方案(不能解决的将问题列出)

本次实验同样是在前2次实验的基础上进行的,也就是对上两次做好的实验进行数据查询。其中包括:单表查询,连接查询,嵌套查询和集合查询。上两次的代码就不在这里展示了。

在数据库“zjs”中完成查询。

完整代码如下:

/*查询全体学生的学号与姓名。*/

select 学号,姓名

from 学生表;

/*查询每个学生及其选修课程的情况。*/

select *

from 选课表;

/*查询所有姓“张”的学生的基本情况。*/

select *

from 学生表

where 姓名 like '张%';

/*查询每一门课的间接先修课(即先修课的先修课)。*/ select first.课程编号,second.先修课

from 课程表 first,课程表 second

where first.先修课=second.课程编号;

/*查询选修了课程名为“数据库”的学生学号、姓名及所在班级的名称。*/

select 学号,姓名,班级名称

from 学生表,班级表

where 学生表.班级编号=班级表.班级编号

and 学号 in(

select 学号

from 选课表

where 课程编号 in (

select 课程编号

from 课程表

where 课程名='数据库'

)

);

/*查询学生200515121选修课程的总学分。*/

SELECT SUM(学分) 总学分

FROM 课程表,选课表

WHERE 学号='200515121' AND 选课表.课程编号=课程表.课程编号

/*查询各个课程号及相应的选课人数。*/

SELECT 课程编号,COUNT(学号) 选课人数

FROM 选课表

GROUP BY 课程编号

/*查询选修了五门以上课程的学生学号*/

SELECT 学号

FROM 选课表

GROUP BY 学号

HAVING COUNT(课程编号)>5;

/*查询学分为3或4的课程名、课程编号及学分。*/ SELECT 课程名,课程编号,学分

FROM 课程表

WHERE 学分 IN (3,4)

/*查询有2门以上课程是90分以上的学生的学号及(90分以上的)课程数。*/

SELECT 学号,COUNT(课程编号) 课程数

FROM 选修课

WHERE 成绩>=90

GROUP BY 学号

HAVING COUNT(课程编号)>=2

/*查询选修了“2”号课程的学生的平均成绩。

SELECT 学号,AVG(成绩) 平均成绩

FROM 选课表

WHERE 课程编号='2'

GROUP BY 学号

/*没有选课的学生姓名及学号。*/

SELECT 学号,姓名

FROM 学生表

WHERE 学号 NOT in (SELECT 学号

FROM 选课表 ) */

/*查询选修了“3”号课程的学生的学号及其成绩,查询结果按分数的降序排列。*/

SELECT 学号,成绩

FROM 选课表

WHERE 课程编号='3'

ORDER BY 成绩 DESC

/*查询与“张帆帆”在同一个系学习的学生学号、姓名和系名。*/

SELECT 学号,姓名,院系名称

FROM 学生表,院系表,班级表

WHERE 学生表.班级编号=班级表.班级编号 AND 班级表.院系编号=院系表.院系编号

AND 院系名称 = (SELECT 院系名称

FROM 学生表,院系表,班级表

WHERE 学生表.姓名='张帆帆'AND 院系表.院系编号=班级表.院系编号 AND

班级表.班级编号=学生表.班级编号)

/*查询选修了所有课程的学生姓名和所在系。*/

SELECT 姓名,院系名称

FROM 学生表,院系表,班级表

WHERE 院系表.院系编号=班级表.院系编号 AND 班级表.班级编号=学生表.班级编号 AND

NOT EXISTS(SELECT *

FROM 课程表

WHERE NOT EXISTS (SELECT *

FROM 选课表

WHERE 学号=学生表.学号 AND 课程编号=课程表.课程编号))

/*查询选修了至少选修了200515122选修的全部课程的学生学号*/

SELECT 学号

FROM 选课表 X1

WHERE NOT EXISTS(SELECT *

FROM 选课表 X2

WHERE X2.学号='200515122'AND

NOT EXISTS(SELECT *

FROM 选课表 X3

WHERE X1.学号=X3.学号 AND

X2.课程编号=X3.课程编号))

总结:

本次实验是在上两次实验的基础上进行的,主要是考察对单表查询、连接查询、集合查询、统计查询和嵌套查询代码的掌握,总体来说这次实验在做的时候问题不大,但是在写代码的时候发现自己对嵌套查询以及EXISTS的使用还不够熟悉,需要加强。

相关推荐