实验7实验报告.docx

上传人:b****4 文档编号:24908826 上传时间:2023-06-02 格式:DOCX 页数:19 大小:310.04KB
下载 相关 举报
实验7实验报告.docx_第1页
第1页 / 共19页
实验7实验报告.docx_第2页
第2页 / 共19页
实验7实验报告.docx_第3页
第3页 / 共19页
实验7实验报告.docx_第4页
第4页 / 共19页
实验7实验报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验7实验报告.docx

《实验7实验报告.docx》由会员分享,可在线阅读,更多相关《实验7实验报告.docx(19页珍藏版)》请在冰豆网上搜索。

实验7实验报告.docx

实验7实验报告

《数据库原理及应用》

实验报告

实验名称:

数据检索

(1)--单表查询

学院:

计算机学院

班级:

计算机应用技术大专班

学号:

201113131121

姓名:

黄锡杏

实验日期:

2013年4月19日

目录

一、实验准备4

1、设备:

4

2、知识复习:

4

二、实验目的4

三、实验内容5

(1).查询所有课程的课程号、课程名和学号5

(2).查询090501班的所有学生的基本信息5

(3).查询student表中所有年龄大于20岁的男生的姓名和年龄6

(4).查询计算机学院教师的专业名称6

(5).查询选修课程且期末成绩不为空的学生人数7

(6).查询Email使用126邮箱的所有学生的学号、姓名和电子邮箱地址7

(7).查询每名学生的学号、学修课程数目、总成绩,并查询结果存放到生成的“学生选课统计表”中8

(8).查询score表中选修‘c05109’或‘c05103’课程,并且课程期末成绩在90~100分之间的学生姓名和期末成绩9

(9).查询student表中所有学生的基本信息,查询结果按班级号classno升序排列,同一班级中的学生按入学成绩point降序排列10

(10).查询选修’c05109’课程,并且期末成绩在前5名的学生学号、课程号和期末成绩10

(11).查询各班学生的人数11

(12).查询各班期末成绩的最高分和最低分12

(13).查询教授两门及以上课程的教师编号、课程号和任课班级13

(14).查询课程编号以’c05’开头、被3名及以上学生选修且期末成绩的平均分高于75分的课程号、选修人数和期末成绩平均分,并按平均分降序排序14

(15).查询所有08级学生的期末成绩平均分,要求利用COMPUTEBY方法显示每一名学生的学生编号、课程号、期末成绩的明细表,以及期末成绩平均分的汇总表14

(16).查询所有女生入学成绩的最高份,要求利用COMPUTEBY方法既显示明细又显示汇总结果15

四、总结16

 

一、实验准备

1、设备:

安装好SQLServer2005的PC机一台;

2、知识复习:

回顾教材的表查询部分(主要在第五章)

(1)、利用SELECT…FROM子句实现投影查询和设置结果集格式;

(2)、利用WHERE语句实现数据过滤;

(3)、利用GROUPBY子句和HANING子句实现分组查询;

(4)、利用ORDERBY子句实现结果集排序;

(5)、COMPUTE语句和聚合函数的使用

二、实验目的

1、熟悉SQL的运行环境;

2、掌握SELECT各个子句的功能和数据的方法;

3、掌握WHERE子句中LIKE、IN、BETWEEN、IS等逻辑运算符的使用;

4、掌握COMPUTE语句和聚合函数的使用

三、实验内容

实验内容及步骤:

(1).查询所有课程的课程号、课程名和学号

代码:

useteaching

go

selectcourseno,cname,credit

fromcourse

结果:

(2).查询090501班的所有学生的基本信息

代码:

useteaching

go

select*

fromstudent

whereclassno='090501'

结果:

(3).查询student表中所有年龄大于20岁的男生的姓名和年龄

代码:

useteaching

go

selectsname,DATEDIFF(Year,birthday,GETDATE())Asage

fromstudent

whereDATEDIFF(Year,birthday,GETDATE())>20ANDsex='男'

结果:

(4).查询计算机学院教师的专业名称

代码:

useteaching

go

selectDISTINCTmajor

fromteacher

wheredepartment='计算机学院'

结果:

(5).查询选修课程且期末成绩不为空的学生人数

代码:

useteaching

go

selectcount(distinctstudentno)as'选修课程学生人数'

fromscore

wherefinalisnotnull

结果:

(6).查询Email使用126邮箱的所有学生的学号、姓名和电子邮箱地址

代码:

useteaching

go

selectstudentno,sname,email

fromstudent

whereemaillike'%%'

结果:

(7).查询每名学生的学号、学修课程数目、总成绩,并查询结果存放到生成的“学生选课统计表”中

①利用INTO子句生成表,讲select查询结果存放在其中

代码:

useteaching

go

selectstudentno,count(*)as'选课数目',sum(final)as'总成绩'

into学生选课统计表

fromscore

groupbystudentno

结果:

表中多了一个新表

②查询新表中的数据

代码:

select*

from学生选课统计表

结果:

(8).查询score表中选修‘c05109’或‘c05103’课程,并且课程期末成绩在90~100分之间的学生姓名和期末成绩

代码:

useteaching

go

selectsname,final

fromscore,student

wherefinalbetween90and100andcoursenoin('c05109','c05103')andscore.studentno=student.studentno

结果:

(9).查询student表中所有学生的基本信息,查询结果按班级号classno升序排列,同一班级中的学生按入学成绩point降序排列

代码:

useteaching

go

select*

fromstudent

orderbyclassnoasc,pointdesc

结果:

(10).查询选修’c05109’课程,并且期末成绩在前5名的学生学号、课程号和期末成绩

代码:

useteaching

go

selecttop5studentno,courseno,final

fromscore

wherecourseno='c05109'

orderbyfinaldesc

结果:

(11).查询各班学生的人数

代码:

useteaching

go

selectclassno,count(*)ascount

fromstudent

groupbyclassno

orderbyclassno

结果:

(12).查询各班期末成绩的最高分和最低分

代码:

useteaching

go

selectcourseno,max(final)asmax,min(final)asmin

fromscore

wherefinalisnotnull

groupbycourseno

结果:

(13).查询教授两门及以上课程的教师编号、课程号和任课班级

代码:

useteaching

selectteacherno,classno,courseno

fromteach_class

whereteacherno

in(selectteacherno

fromteach_class

groupbyteacherno

havingcount(courseno)>=2

结果:

(14).查询课程编号以’c05’开头、被3名及以上学生选修且期末成绩的平均分高于75分的课程号、选修人数和期末成绩平均分,并按平均分降序排序

代码:

useteaching

go

selectcourseno,count(studentno)ascount,avg(final)asaverage

fromscore

wherecoursenolike'c05%'andfinalisnotnull

groupbycourseno

havingcount(studentno)>=3andavg(final)>=75

orderbyavg(final)desc

结果:

(15).查询所有08级学生的期末成绩平均分,要求利用COMPUTEBY方法显示每一名学生的学生编号、课程号、期末成绩的明细表,以及期末成绩平均分的汇总表

代码:

useteaching

go

selectstudentno,courseno,final

fromscore

wherestudentnolike'08%'

orderbystudentno

computeavg(final)bystudentno

结果:

(16).查询所有女生入学成绩的最高份,要求利用COMPUTEBY方法既显示明细又显示汇总结果

代码:

useteaching

go

selectstudentno,sname,sex,birthday,classno,point,phone,email

fromstudent

wheresex='女'

computemax(point)

结果:

四、总结

本次实验是我学会用SQL语句建表以来学会查询的第一个实验,在刚开始的时候真的有很多困难,因为表的查询不是仅仅纠结在SELECT、FROM、WHERE三个单词上,而是要弄清楚表与表之间的关系!

上机的学习中让我了解到数据库查询所遇到的种种问题。

例如上面的第(13)题:

查询教授两门及以上课程的教师编号、课程号和任课班级:

代码:

useteaching

go

selectteacherno,count(courseno)ascount

fromteach_class

groupbyteacherno

havingcount(courseno)>=2

结果:

useteaching

selectteacherno,classno,courseno

fromteach_class

whereteacherno

in(selectteacherno

fromteach_class

groupbyteacherno

havingcount(courseno)>=2

上面可知那是两种不同的情况,而其实第一种的不对题目的,这就需要我们在上机过程中多次对照而得到的结果!

从而我们知道:

查询可以通过SQL语言进行完成,这样加深了查询语句的基本结构,让我们能更好的掌握其中语句,方便于我们后面的学习和应用。

当然在学习过程中也遇到了不少问题,积极询问老师,和同学共同商讨,查询资料把问题得以解决,培养了解决问题的能力,查阅资料是很好的手段,在今后的学习过程中应该继续发扬这些能力。

数据库的学习是在学习与探索中度过的,短暂的课程时间的学习是结束了,但其中学到了许多知识,也有诸多的问题需要今后去解决,学习一门课程,学到的是如何学会,而不是随随便便的学完,在今后还要自己强化各方面的知识,真正学以致用。

通过这次的学习,我了解了数据库的概念与重要性,还有今后的发展方向,明白数据库的应用是广泛的,不可小觑,在今后应该再进行加强学习。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1