福建农林大学数据库实验报告.docx

上传人:b****8 文档编号:9437009 上传时间:2023-02-04 格式:DOCX 页数:28 大小:592.94KB
下载 相关 举报
福建农林大学数据库实验报告.docx_第1页
第1页 / 共28页
福建农林大学数据库实验报告.docx_第2页
第2页 / 共28页
福建农林大学数据库实验报告.docx_第3页
第3页 / 共28页
福建农林大学数据库实验报告.docx_第4页
第4页 / 共28页
福建农林大学数据库实验报告.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

福建农林大学数据库实验报告.docx

《福建农林大学数据库实验报告.docx》由会员分享,可在线阅读,更多相关《福建农林大学数据库实验报告.docx(28页珍藏版)》请在冰豆网上搜索。

福建农林大学数据库实验报告.docx

福建农林大学数据库实验报告

实验报告

学院:

计算机与信息学院专业:

数学与应用数学年级:

10级

姓名:

XXX学号:

102260002XXX实验室号:

田C507计算机号:

04

实验日期:

2012年10月19日指导教师签字:

成绩:

报告退发(订正、重做)

实验一数据库的定义实验

1、实验目的

熟练掌握和使用SQLServer企业管理器创建数据库、表、索引和修改表结构,并学会使用SQLServer查询分析器接收Transact-SQL语句和进行结果分析。

2、实验仪器(环境):

计算机及SQLServer2000

3、实验操作方法:

依照实验指导书的内容进行实验。

4、报告内容:

(1)通过企业管理器,建立图书借阅数据库;

(2)在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为:

图书(书号,类别,出版社,作者,书名,定价)

读者(编号,姓名,单位,性别,电话)

借阅(书号,读者编号,借阅日期)

要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。

(3)指出图书读者数据库各表的主码、外码和数据约束;

(4)实验操作步骤和实验结果用截图显示出来。

5、实验步骤及其结果:

l.通过企业管理器,建立图书借阅数据库

在数据库图标上右击,选择“新建数据库”,输入“图书_读者”,单击“确定”按钮,关闭对话框。

在企业管理器窗口中出现“图书-读者”数据库标志,这表明建库工作已经完成。

图1在数据库弹出菜单中选择“新建数据库”

2.在建好的图书借阅数据库中建立图书、读者和借阅3个表

(1)建立“图书”表。

选中图书_读者数据库中的表文件夹,单由鼠标右键,在弹出的菜单中选择“新建表”,如图2所示。

图2建立表格

(2)输入结构

书号:

char长度10,不允许空值。

并设置为主键。

类别:

char长度12,允许空值。

出版社:

varchar长度50,不允许空值。

作者:

varchar长度50,允许空值。

名称:

varchar长度50,不允许空值。

定价:

char长度10,允许空值。

建立表格如图3所示。

图3输入表结构

(3)建立“读者”表和“借阅”表。

与建立“图书”表的形式一致,如表2。

(4)输入结构

读者(编号,姓名,单位,性别,电话)

借阅(书号,读者编号,借阅日期)

“读者”表:

编号:

char长度20,不允许空值。

并设置为主键。

姓名:

varchar长度50,不允许空值。

单位:

varchar长度50,不允许空值。

性别:

char长度10,不允许空值。

电话:

varchar长度50,不允许空值。

“借阅”表:

书号:

char长度10,不允许空值。

读者编号:

char长度20,不允许空值。

借阅日期:

datetime,不允许空值。

将“书号”与“读者编号”设置为主键。

3.指出图书读者数据库各表的主码、外码和数据约束

在表“图书”中把书号作为主键,步骤如下:

右击‘书号’,点击‘设置主键’,在图书中把‘读者编号’设置成主键,在借阅表中建立与图书,和读者的关系,如图:

在表“读者”中对‘性别’进行check结束:

表“读者”和表“借阅”的设置主键和表“图书”一样

表“图书”的主码是书号,外码也是书号,数据约束是主码不能为空

表“读者”的主码是编号,外码也是编号,数据约束是性别只能为男或女

表“借阅”的主码是书号,外码是读者编号,数据约束是主码和外码不能为空

6、实验总结

通过此次实验,我掌握了建立一个数据库的方法,以及建立表和表之间的关系,对表中

的属性进行约束,书上的毕竟只是理论,掌握理论不一定会实践,实践会了才是真的会。

实验报告

学院:

计算机与信息学院专业:

数学与应用数学年级:

10级

姓名:

XXX学号:

102260002XXX实验室号:

田C507计算机号:

04

实验日期:

2012年10月19日指导教师签字:

成绩:

报告退发(订正、重做)

实验二数据库的建立和维护实验

1、实验目的

熟练掌握使用SQL、Transact-SQL和SQLServer企业管理器向数据库输入数据、修改数据和删除数据的操作。

2、实验仪器(环境):

计算机及SQLServer2000

3、实验操作方法:

依照实验指导书的内容进行实验。

4、报告内容:

(1)以一条记录为例,写出用SQL表示的向图书表中插入、修改和删除数据的语句。

(2)用SQL实现在读者表中增加“借书册数”字段,统计借书者在1998年~1999年间所借书的册数,并将结果送入读者表中的借书册数字段的操作语句。

(3)写出操作的过程和操作结果(数据库中各表的数据)并用截图表示出来。

5、实验步骤及其结果:

1.以一条记录为例,写出用SQL表示的向图书表中插入、修改和删除数据的语句

(1)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。

图书:

 

读者:

 

借阅:

(2)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。

删除和修改操作。

删除:

选择要删除的数据,右击选择‘删除’

插入:

在最后一行‘NULL’中可以填写要插入的信息。

修改:

选择要修改的数据直接修改。

(3)向自设计的数据库应用系统的库中的各表,输入多条实际数据,并实现数据的增、删、改操作。

增加操作:

修改操作:

Course表:

原表:

修改后:

Student表:

原表:

修改后:

SC表:

原表:

修改后:

删除操作:

Course表:

原表:

删除后:

Student表:

原表:

删除后:

SC表:

原表:

删除后:

2.实现在读者表中增加“借书册数’字段,统计借书者在1998年~1999年间所借书的册数,并将结果送入读者表中的借书册数字段的操作。

结果:

6、实验总结

通过本次实验,我了解了SQL语言对表格进行查询、行插入、删除和修改的编程。

这次实验让我了解了更多关于数据库实际使用方法,也让我对数据库的了解更深入。

实验报告

学院:

计算机与信息学院专业:

数学与应用数学年级:

10级

姓名:

XXX学号:

102260002XXX实验室号:

田C507计算机号:

04

实验日期:

2012年10月19日指导教师签字:

成绩:

报告退发(订正、重做)

实验三数据库的简单查询和连接查询实验

1、实验目的

掌握SQLServer查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。

熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法。

2、实验仪器(环境):

计算机及SQLServer2000

3、实验操作方法:

依照实验指导书的内容进行实验。

4、报告内容:

(1)对图书借阅数据库中的图书、借阅、读者等表用Transact-SQL写出实验操作的查询语句(事先应按实验一的数据结构对这些表填入数据,然后按进行简单查询和连接查询操作实验)。

(2)写出实验步骤并将实验结果截图。

(3)实验中出现的问题和体会。

5、实验步骤及其结果:

1.基本操作实验

(1)简单查询实验

l)用Transact-SQL语句表示下列操作.在学生选课库中实现其数据查询操作:

求数学系学生的学号和姓名。

selectSno,Sname

fromStudent

whereSdept='MA';

求选修了课程的学生学号。

selectdistinctSno

fromSC;

求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

selectSno,Grade

fromSC

whereCno='1'

orderbyGradedesc,Snoasc;

获选修课程C1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8输出。

selectSno,0.8*Grade

fromSC

whereCno='1'andGradebetween80and90;

求数学系或计算机系姓张的学生的信息。

selectStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade

fromStudent,SC

whereStudent.Sno=SC.SnoandSnamelike'张%'and(Sdept='MA'orSdept='CS');

求缺少了成绩的学生的学号和课程号。

selectSno,Cno

fromSC

whereGrade=0;

2)在图书借阅库中实现其查询操作:

将计算机类的书存入永久的计算机图书表中,将借书日期在1999年以前的借阅记录存入临时的超期借阅表。

select*

into计算机图书

from图书

where类别='计算机';

select*

into#超期借阅

from借阅

where借阅日期<'1999.01.01';

结果为:

(2)连接查询实验

用Transact-SQL语句表示,并在学生选课库中实现下列数据连接查询操作:

查询每个学生的情况以及他(她)所选修的课程。

selectStudent.Sno,Sname,Ssex,Sage,Sdept,Cno

fromStudent,SC

whereStudent.Sno=SC.Sno;

求学生的学号、姓名、选修的课程名及成绩。

selectStudent.Sno,Sname,Cname,Grade

fromStudent,SC,Course

whereStudent.Sno=SC.SnoandCourse.Cno=SC.cno;

求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。

selectStudent.Sno,Sname,Grade

fromStudent,SC

whereStudent.Sno=SC.SnoandCno='1'andGrade>90;

查询每一门课的间接先行课(即先行课的先行课)。

selectfirst.Cno,second.Cpno

fromCoursefirst,Coursesecond

wherefirst.Cpno=second.Cno;

2.提高操作实验

(1)按表1的格式,建立职工部门库和职工表、部门,并向表中输入数据。

表1职工和部门表数据

职工表部门表

职工号

姓名

性别

年龄

部门

1010

李勇

20

11

1011

刘晨

19

 

1012

王敏

22

12

1013

张立

21

13

部门号

部门名称

电话

11

生产科

566

12

计划科

578

13

一车间

467

14

科研所

 

(2)Transact-SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。

部门号

部门名称

电话

11

生产科

566

12

计划科

578

13

一车间

467

14

科研所

 

 

(1)

createtable职工

(职工号char(4)primarykey,

姓名varchar(max),

性别char

(2),

年龄smallint,

部门varchar(max));

createtable部门

(部门号char(4)primarykey,

部门名称varchar(max),

电话varchar(max));

(2)外连接:

左连接:

\

右连接:

use职工部门

select*

from职工

rightjoin部门on职工.职工号=部门.部门号;

6、实验总结

本次实验,通过用SQL语言对表进行查询操作,让我更加熟练地掌握SQL的编程方法,了解到了平时我们在文件查找数据与通过数据库的查询语句进行查询的不同,让我更加认同了数据库这类软件。

实验报告

学院:

计算机与信息学院专业:

数学与应用数学年级:

10级

姓名:

XXX学号:

102260002XXX实验室号:

田C507计算机号:

04

实验日期:

2012年10月19日指导教师签字:

成绩:

报告退发(订正、重做)

实验四数据库的嵌套查询、组合查询和统计查询实验

1、实验目的

进一步掌握SQLServer查询分析器的使用方法,加深SQL和Transact-SQL语言的嵌套查询语句的理解。

2、实验仪器(环境):

计算机及SQLServer2000

3、实验操作方法:

依照实验指导书的内容进行实验。

4、报告内容:

(1)对图书借阅数据库中的图书、借阅、读者等表用Transact-SQL写出实验操作的查询语句(事先应按实验一的数据结构对这些表填入数据,然后按进行嵌套查询、组合查询和统计查询的操作实验)。

(2)写出实验步骤并将实验结果截图。

(3)实验中出现的问题和体会。

5、实验步骤及其结果:

1.基本操作实验

用Transact-SQL语句表示,在学生选课库中实现其数据嵌套查询操作。

(1)求选修了高等数学的学生学号和姓名。

selectSno,Sname

fromStudent

whereSnoin(selectSno

fromSC

whereCnoin(selectCno

fromCourse

whereCname='高等数学'));

(2)求C1课程的成绩高于张三的学生学号和成绩。

selectSno,Grade

fromSC

whereGradein(selectGrade

fromSC

whereGrade>(selectGrade

fromSC

whereSnoin(selectSno

fromStudent

whereSname='张三'andCno='1')))

andCno='1';

(3)求其他系中年龄小于计算机系年龄最大者的学生。

selectSage,Sname

fromStudent

whereSage<(selectmax(Sage)

fromStudent

whereSdept='CS');

(4)求其他系中比计算机系学生年龄都小的学生。

selectSage,Sname

fromStudent

whereSdept!

='CS'andSage<(selectmin(Sage)

fromStudent

whereSdept='CS');

(5)求选修了C2课程的学生姓名。

selectSname

fromStudent,SC

whereStudent.Sno=SC.SnoandCno='2';

(6)求没有选修C2课程的学生姓名。

selectdistinctSname

fromStudent,SC

whereStudent.Sno=SC.SnoandCno!

='2';

(7)查询选修了全部课程的学生的姓名。

selectSname

fromStudent,SC

whereStudent.Sno=SC.SnoandCno=all(selectCno

fromSC);

(8)求至少选修了学号为“95001”的学生所选修的全部课程的学生学号和姓名。

selectdistinctSno,Sname

fromStudent

wherenotexists(select*

fromSCSCY

whereSCY.Sno='200215121'andnotexists

(select*

fromSCSCZ

whereSCZ.Sno=Student.Snoand

SCZ.Sno=SCY.Sno

));

在图书借阅库中实现其查询操作。

(1)查找这样的图书类别:

要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的2倍。

(2)求机械工业出版社出版的各类图书的平均定价,用GROUPBY表示。

select类别,avg(定价)

from图书

where出版社='机械工业'

groupby类别;

结果:

(3)列出计算机类图书的书号、名称及价格,最后求出册数和总价格。

select书号,书名,定价

from图书

where类别='计算机';

结果:

selectcount(书号),sum(定价)

from图书

where类别='计算机';

结果:

(4)列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。

select书号,书名,定价

from图书

where类别='计算机';

select出版社,SUM(定价)

from图书

where类别='计算机'

groupby出版社;

selectSUM(定价),COUNT(书号)

from图书

where类别='计算机';

(5)查询计算机类和机械工业出版社出版的图书。

select书号,书名

from图书

where类别='计算机'and出版社='机械工业';

2.提高操作实验

(1)将自设计的数据库应用项目中的数据查询操作分类,用Transact-SQL语句表示其中的简单、连接和嵌套查询,并通过SQLServer查询分析器实现其查询操作。

用嵌套查询选修了全部课程的学生的姓名;

(2)将自设计的数据库应用项目中的分组、统计、计算和组合查询用Transact-SQL语句表示,并通过SQLServer查询分析器实现其查询操作。

用统计列出计算机类图书的书号、名称及价格,最后求出册数和总价格

 

6、实验总结

此次实验做的过程很曲折,因为是第一次,最终在同学的帮助下才完成本次实验。

通过本次实验新学会了对数据库的一些使用方法:

连接查询、嵌套查询等,还有聚集函数、分组分类等的用法,也使我掌握了数据库查询中的分组、统计、计算与组合的操作方法。

实验报告

学院:

计算机与信息学院专业:

数学与应用数学年级:

10级

姓名:

XXX学号:

102260002XXX实验室号:

田C507计算机号:

04

实验日期:

2012年10月19日指导教师签字:

成绩:

报告退发(订正、重做)

实验五数据库的视图和图表的定义及使用实验

1、实验目的

使学生掌握SQLServer中的视图创建向导和图表创建向导的使用方法,加深对视图和SQLServer图表作用的理解。

2、实验仪器(环境):

计算机及SQLServer2000

3、实验操作方法:

依照实验指导书的内容进行实验。

4、报告内容:

(1)用Transact-SQL写出创建视图的语句;

(2)实验步骤见实验指导书;实验结果用截图表示出来;

(3)实验中的问题和提高。

5、实验步骤及其结果:

1.基本操作实验

(1)在SQLServer企业管理器中调出CreateViewWizard,按下列Transact-SQL描述

的视图定义,创建借阅_计算机图书视图。

CREATEVIEW借阅_计算机图书

ASSELECT图书.*,借阅.*

FROM图书,借阅

WHERE图书.编号=借阅.书号AND图书.类别=‘计算机’

(2)在SQLserver企业管理器中调出CreateViewWizard(创建图表向导),完成在图书_读者数据库中建立一个图书_借阅图表操作。

要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号=借阅.书号”外码与被参照表之间的关联。

(3)查看上述实验结果。

如果结果有误,予以纠正。

2.提高操作实验

将自设计的数据库应用项目中的子模式,用Transact-SQL语句描述其视图定义并在SQLServer企业管理器中,用视图创建向导创建这些视图。

(1)下面用SQL语言创建借阅_计算机图书视图:

6、实验总结

通过这次实的创建视图以及视图的定义,让我了解到了视图表使我们更加容易直观得到我们想要的信息组合,而又不变动原来的数据。

通过对视图的操作,了解到其实视图并不是那么难,与基本表的操作差不多。

只是他们的的属性不同:

视图是张虚表,而基本表是实实在在存在的表。

这次实验学习到了视图的重要性。

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

当前位置:首页 > 求职职场 > 面试

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

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