数据库数据查询实验报告和答案.docx

上传人:b****5 文档编号:7427977 上传时间:2023-01-23 格式:DOCX 页数:21 大小:1.04MB
下载 相关 举报
数据库数据查询实验报告和答案.docx_第1页
第1页 / 共21页
数据库数据查询实验报告和答案.docx_第2页
第2页 / 共21页
数据库数据查询实验报告和答案.docx_第3页
第3页 / 共21页
数据库数据查询实验报告和答案.docx_第4页
第4页 / 共21页
数据库数据查询实验报告和答案.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据库数据查询实验报告和答案.docx

《数据库数据查询实验报告和答案.docx》由会员分享,可在线阅读,更多相关《数据库数据查询实验报告和答案.docx(21页珍藏版)》请在冰豆网上搜索。

数据库数据查询实验报告和答案.docx

数据库数据查询实验报告和答案

 

韶关学院

学生实验报告册

 

实验课程名称:

数据库技术与应用

实验项目名称:

数据库的数据查询

实验类型(打√):

(基础☑、综合、设计)

 

院系:

专业班级:

姓名学号:

指导老师:

 

韶关学院教务处编制

一、实验预习报告内容

预习日期:

2013年10月20日

实验预习报告内容原则上应包含实验目的、实验所用主要仪器药品、实验原理与公式、

实验预习疑问等项目。

一、实验目的

1、掌握使用Transact-SQL的SELECT语句进行基本查询的方法。

2、掌握使用SELECT语句进行条件查询的方法。

3、掌握SELECT语句的GROUPBY、ORDERBY以及UNION子句的作用和使用方法。

4、掌握嵌套查询的方法。

5、掌握连接查询的操作方法。

二、实验准备

1、了解SELECT语句的基本语法格式和执行方法。

2、了解嵌套查询的表示方法。

3、了解UNION运算符的用法。

4、了解SELECT语句的GROUPBY、ORDERBY以及UNION子句的作用和使用方法。

5、了解IN、JOIN等子查询的格式。

6、了解INSERT、INTO、UPDATE、DELETE的格式与作用。

三、实验内容

1、完成上机实验指导中的实验4,并回答实验中的实验思考。

(具体实验要求看上机实验指导书的9~11页,把实验步骤和Transact-SQL语句相关的内容和结果截图,填在“三、实验报告内容”中。

并写一下实验小结。

 

实验预习评分:

二、实验原始(数据)记录

实验时间:

2013年10月22日(星期二第七八节)

实验同组人:

如有实验数据表格,学生在实验预习时应画好实验数据表格,供实验时填写数据(本页如

不够,可另附相同规格的纸张)。

 

指导教师

批阅及签名

 

签名:

年月日

三、实验报告内容

2013年9月24日

实验报告内容原则上应包含主要实验步骤、实验数据计算(实验操作)结果、实验结果

(疑问)分析等项目。

实施内容:

一、根据实验要求完成实验:

(写明步骤和截图)

1、在数据库studentsdb中,新建表studentdb_info,curriculum,grade。

并输入相应的数据,如图1、2和3所示。

图1

图2

图3

2、在studentsdb数据库中,使用下列SQL语句将输出什么?

(1)selectcount(*)fromgrade

结果如图4所示:

图4

(2)selectsubstring(学生姓名,1,2)fromstudent_info

结果如图5所示:

图5

(3)selectupper('kelly')

结果如图6所示:

图6

(4)selectreplicate('kelly',3)

结果如图7所示:

图7

(5)selectsqrt(分数)fromgrade

where分数>=85

结果如图8所示:

图8

(6)select2,3,power(2,3)

结果如图9所示:

图9

(7)selectyear(getdate()),month(getdate()),day(getdate())

结果如图10所示:

图10

2、在studentsdb数据库中使用select语句近基本查询。

(1)在student_info表中,查询每个学生的学号、姓名、出生日期信息。

执行如下语句:

select学号,学生姓名,出生日期fromstudent_info

结果如图11所示

图11

(2)查询学号为0002的学生的姓名和家庭住址

执行如下语句:

select学生姓名,家庭地址fromstudent_info

where学号=0002

结果如图12所示

图12

(3)找出所有男同学的学号和姓名。

执行如下语句:

select学号,学生姓名fromstudent_info

where性别='男'

结果如图13所示

图13

3、使用select语句进行条件查询。

(1)在grade表中查找分数在80~90范围内的学生的学号和分数。

执行如下语句:

select学号,分数fromgrade

where分数between80and90

结果如图14所示

图14

(2)在grade表中查询课程编号为0003的学生的平均分。

执行如下语句:

selectavg(分数)as平均成绩fromgrade

where课程编号=0003

结果如图15所示

图15

(3)在grade表中查询学习各门课程的人数。

执行如下语句:

select课程编号,count(课程编号)as课程人数

fromgradegroupby课程编号

结果如图15所示

图15

(4)将学生按出生日期由大到小排序。

执行如下语句:

select*fromstudent_infoorderby出生日期desc

结果如图16所示

图16

(5)查询所有姓“张”的学生的学号和姓名。

执行如下语句:

select*fromstudent_infowhere学生姓名like'张%'

结果如图17所示

图17

4、嵌套查询

(1)在student_info表中查找与“刘卫民”性别相同的所有学生的姓名、出生日期。

执行如下语句:

select学生姓名,出生日期fromstudent_info

where性别=(select性别fromstudent_info

where学生姓名='刘卫平')

结果如图18所示

图18

(2)使用in子查询查找所修课程编号为0002、0005的学生学号、姓名、性别。

执行如下语句:

select学号,学生姓名,性别fromstudent_info

wherestudent_info.学号in

(select学号fromgradewhere课程编号in('0002','0005'))

结果如图19所示

图19

(3)列出学号为0001的学生的分数比0002号学生的最低分数高的课程编号和分数。

执行如下语句:

select课程编号,分数fromgrade

where学号='0001'and分数>any

(select分数fromgradewhere学号='0002')

结果如图20所示。

图20

(4)列出学号为0001的学生的分数比学号为0002的学生的最高成就还要高的课程编号和分数。

执行如下语句:

select课程编号,分数fromgrade

where学号='0001'and分数>all

(select分数fromgradewhere学号='0002')

结果如图21所示。

图21

5、多表查询

(1)查询分数在80~90范围内的学生的学号、姓名、分数。

执行如下语句:

selectstudent_info.学号,学生姓名,分数fromstudent_info,grade

wherestudent_info.学号=grade.学号and分数between80and90

结果如图22所示

图22

(2)、查询学习“C语言程序设计”课程的学生的学号、姓名和分数。

执行如下语句:

selectstudent_info.学号,学生姓名,分数

fromstudent_info

innerjoingradeonstudent_info.学号=grade.学号

innerjoincurriculumongrade.课程编号=curriculum.课程编号

and课程名称='C语言程序设计'

结果如图23所示。

图23

(3)查询所有男同学的选课情况,要求列出学号、姓名、课程名称、分数。

执行如下语句:

selectstudent_info.学号,学生姓名,课程名称,分数

fromstudent_infoleftouterjoingradeonstudent_info.学号=grade.学号

leftouterjoincurriculumoncurriculum.课程编号=grade.课程编号

where性别='男'

结果如图24所示

图24

(4)在查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号、分数。

执行如下语句。

selectstudent_info.学号,学生姓名,curriculum.课程编号,分数

fromstudent_info

innerjoingradeonstudent_info.学号=grade.学号

innerjoincurriculumongrade.课程编号=curriculum.课程编号

where分数=(selectmax(grade.分数)fromgrade

wherestudent_info.学号=grade.学号)

结果如图25所示

图25

(5)查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有没有选修课程的学生的总成绩为空。

执行如下语句:

selectstudent_info.学号,学生姓名,总成绩fromstudent_info

leftouterjoin(select学号,sum(分数)as总成绩fromgradegroupby学号)gradeonstudent_info.学号=grade.学号

结果如图26所示

图26

(6)为grade表添加数据行:

学号0004、课程编号为0006、分数为76。

查询所有课程的选课情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。

执行如下语句:

insertgrade

values('0004','0006','76',null)

selectgrade.课程编号,课程名称,grade.选修人数fromcurriculumrightouterjoin

(select课程编号,count(课程编号)as选修人数fromgradegroupby课程编号)

gradeongrade.课程编号=curriculum.课程编号

结果如图27所示

图27

6、使用union运算符将student_info表中姓“张”的学生的学号、姓名与curriculum表的课程编号、课程名称返回在一个表中,且列名为u_编号、u_名称。

执行如下语句:

select学号asu_编号,学生姓名asu_名称fromstudent_info

where学生姓名like'张%'

union

select课程编号asu_编号,课程名称asu_名称fromcurriculum

结果如图28所示

图28

7、数据更新

(1)创建totalgrade表,具有数据列:

学号、姓名、总成绩。

执行如下语句:

createtabletotalgrade

(学号char(4)notnull,

学生姓名varchar(8)null,

总成绩decimal(5,2)null)

结果如图29所示

图29

(2)使用insertinto语句通过student_info表更新totalgrade表的学号、姓名列数据。

执行如下语句:

insertintototalgrade

select学号,学生姓名,总成绩=0fromstudent_info

结果如图30所示:

图30

(3)使用update语句通过grade表更新totalgrade表的总成绩列数据,使totalgrade表中每一个学生的总成绩为grade表中该学生各成绩之和。

执行如下语句:

updatetotalgradeset总成绩=

(selectsum(分数)fromgradewheretotalgrade.学号=grade.学号)fromgrade

结果如图31所示:

图31

效果如图32所示

图32

(4)删除totalgrade表中没有总成绩的学生记录。

执行如下语句:

deletefromtotalgradewhere总成绩isnull

结果如图33所示,效果如图34所示。

图33图34

实验思考

1、查询所有没有选修课程的学生信息,返回结果包括学号、姓名、性别。

执行如下语句:

select学号,学生姓名,性别fromstudent_info

where学号notin(select学号fromgrade)

结果如图35所示

图35

2、在student_info表和grade表之间实现交叉连接。

执行如下语句:

selecta.学号,a.学生姓名,a.性别,a.出生日期,a.家庭地址,b.课程编号,b.分数fromstudent_infoacrossjoingradeb

结果如图36所示

图36

3、查询每个学生的所选课程的成绩,并列出学号生成分组汇总行(总成绩)和明细行(各科成绩)

执行如下语句:

select学号,分数fromgrade

orderby学号

computesum(分数)by学号

结果如图37所示

图37

实验小结:

实验报告评分:

注:

1、如个别实验的实验报告内容多,实验报告册页面不够写,或有识图、画图要求的,学生应根据实验指导老师要求另附相同规格的纸张并粘贴在相应的“实验报告册”中。

2、实验报告册属教学运行材料,院系(中心)应按有关规定归档保管。

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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