福建农林大学数据库实验报告.docx
- 文档编号:25731029
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:29
- 大小:393.40KB
福建农林大学数据库实验报告.docx
《福建农林大学数据库实验报告.docx》由会员分享,可在线阅读,更多相关《福建农林大学数据库实验报告.docx(29页珍藏版)》请在冰豆网上搜索。
福建农林大学数据库实验报告
福建农林大学计算机与信息学院
实验报告
课程名称:
数据库原理及应用
姓 名:
系:
专业:
计算机科学与技术
年 级:
学号:
指导教师:
李金铭
职 称:
副教授
2015年 月 日
实验目录:
实验编号
实验名称
成绩
1
数据库得定义实验
2
数据库得建立与维护实验
3
数据库得查询实验
4
数据库得视图操作实验
5
触发器、存储过程操作实验
总评
福建农林大学计算机与信息学院实验报告
实验名称:
数据库得定义实验
一、实验目得与要求
(1)要求学生熟练掌握与使用SQL、Transact-SQL、SQLServer企业管理器创建数据库、表、索引与修改表结构.
(2)学会使用SQLServer 查询分析器接收Transact-SQL语句与进行结果分析。
二、实验内容与原理
1、基本操作实验
(1)使用企业管理器按教材中得内容建立图书—读者数据库。
(2)在企业管理器中查瞧图书读者数据库得属性,并进行修改,使之符合要求.
(3)通过企业管理器,在建好得图书借阅数据库中建立图书、读者与借阅3个表,其结构为;
图书(书号,类别,出版社,作者,书名,定价);
读者(编号,姓名,单位,性别,电话);
借阅(书号,读者编号,借阅日期)
要求为属性选择合适得数据类型,定义每个表得主码,就是否允许空值与默认值等列级数据约束。
(4)在企业管理器中建立图书、读者与借阅3个表得表级约束:
每个表得主码约束;借阅表与图书表间、借阅表与读者表之间得外码约束,要求按语义先确定外码约束表达式,再通过操作予以实现;实现借阅表得书号与读者编号得惟一性约束:
实现读者性别只能就是“男”或“女”得Check(检查)约束.
三、实验环境
硬件:
计算机
软件:
Windows2000与SQLServer2000
四、算法描述及实验步骤
l.通过企业管理器,建立图书借阅数据库
在数据库图标上右击,选择“新建数据库”,输入“图书_读者",单击“确定”按钮,关闭对话框。
在企业管理器窗口中出现“图书-读者”数据库标志,这表明建库工作已经完成。
2.在建好得图书借阅数据库中建立图书、读者与借阅3个表
(1)建立“图书”表。
选中图书_读者数据库中得表文件夹,单由鼠标右键,在弹出得菜单中选择“新建表”,如图2所示。
(2)输入结构
书号:
char长度10,不允许空值。
并设置为主键。
类别:
char长度12,允许空值。
出版社:
varchar长度50,不允许空值。
作者:
varchar长度 50,允许空值。
名称:
varchar长度50,不允许空值。
定价:
char长度10,允许空值。
建立表格如图3所示。
(3)建立“读者"表与“借阅"表。
与建立“图书"表得形式一致,如表2。
(4)输入结构
读者(编号,姓名,单位,性别,电话)
借阅(书号,读者编号,借阅日期)
“读者”表:
编号:
char长度20,不允许空值。
并设置为主键。
姓名:
varchar长度50,不允许空值。
单位:
varchar长度50,不允许空值。
性别:
char长度10,不允许空值。
电话:
varchar长度50,不允许空值.
“借阅”表:
书号:
char长度 10,不允许空值。
读者编号:
char长度 20,不允许空值。
借阅日期:
datetime,不允许空值.
将“书号”与“读者编号”设置为主键。
3、指出图书读者数据库各表得主码、外码与数据约束
在表“图书"中把书号作为主键,步骤如下:
右击‘书号’,点击‘设置主键’,在图书中把‘读者编号’设置成主键,在借阅表中建立与图书,与读者得关系
在表“读者"中对‘性别'进行check结束
表“读者”与表“借阅”得设置主键与表“图书”一样
表“图书”得主码就是书号,外码也就是书号,数据约束就是主码不能为空
表“读者"得主码就是编号,外码也就是编号,数据约束就是性别只能为男或女
表“借阅"得主码就是书号,外码就是读者编号,数据约束就是主码与外码不能为空
五、调试过程
Check约束语句错误,经调试成功
六、实验结果:
图1在数据库弹出菜单中选择“新建数据库"
图2建立表格
图3输入表结构
七、实验总结
通过此次实验,我掌握了建立一个数据库得方法,以及建立表与表之间得关系,对表中
得属性进行约束,书上得毕竟只就是理论,掌握理论不一定会实践,实践会了才就是真得会。
福建农林大学计算机与信息学院实验报告
实验名称:
数据库得建立与维护实验
一、实验目得与要求
熟练掌握使用SQL、Transact-SQL与SQLServer企业管理器向数据库输入数据、修改数据与删除数据得操作。
二、实验内容与原理
1、基本操作实验
(1)通过企业管理器,在图书-读者数据库得图书、读者与借阅3个表中各输入5条记录。
要求记录不仅满足数据约束要求,还要有表间关联得记录。
(2)通过企业管理器实现对图书-读者数据库得图书、读者与借阅3个表中数据得插入、删除与修改操作。
2、提高操作实验ﻩ
(1)通过查询分析器用SQL命令实现对学生-课程库得数据增加、数据删除与数据修改操作,要求学生、课程与选课表中各有5条以上得记录.
(2)通过查询分析器用SQL命令实现在读者表中增加“借书册数'字段,统计借书者在2005年~2007年间所借书得册数,并将结果送入读者表中得借书册数字段得操作.
(3)通过查询分析器用SQL命令为学生-课程库中得“课程”表添加“学时(短整型)”属性,并设置它得约束条件为大于0且小于等于150。
三、实验环境
硬件:
计算机
软件:
Windows2000与SQLServer2000
四、实验步骤及其结果
1、以一条记录为例,写出用SQL表示得向图书表中插入、修改与删除数据得语句
(1)通过企业管理器,在图书借阅数据库得图书、读者与借阅3个表中各输入10条记录。
(2)通过企业管理器实现对图书借阅数据库得图书、读者与借阅3个表中数据得插入。
删除与修改操作。
删除:
选择要删除得数据,右击选择‘删除’
插入:
在最后一行‘NULL’中可以填写要插入得信息。
修改:
选择要修改得数据直接修改。
(3)向自设计得数据库应用系统得库中得各表,输入多条实际数据,并实现数据得增、删、改操作。
五、调试过程
增加操作:
修改操作:
Course表:
原表:
修改后:
Student表:
原表:
修改后:
SC表:
原表:
修改后:
删除操作:
Course表:
原表:
删除后:
Student表:
原表:
删除后:
SC表:
原表:
删除后:
六、实验结果
2、实现在读者表中增加“借书册数'字段,统计借书者在1998年~1999年间所借书得册数,并将结果送入读者表中得借书册数字段得操作。
结果:
七、实验总结
通过本次实验,我了解了SQL语言对表格进行查询、行插入、删除与修改得编程.这次实验让我了解了更多关于数据库实际使用方法,也让我对数据库得了解更深入。
福建农林大学计算机与信息学院实验报告
实验名称:
数据库得查询实验
一、实验目得与要求
(1)掌握SQLServer查询分析器得使用方法,加深对SQL与Transact-SQL语言得查询语句得理解.
(2)熟练掌握简单表得数据查询、数据排序与数据连接查询得操作方法。
(3)熟练掌握数据查询中得分组、统计、计算与组合得操作方法.
二、实验内容与原理
1、基本操作实验
用Transact—SQL语句表示下列操作.在学生—课程库中实现其数据查询操作:
(1)求数学系学生得学号与姓名。
(2)求选修了高等数学得学生学号、姓名与成绩。
(3)求选修C1课程得学生学号与成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)获选修课程C1且成绩在80~90分之间得学生学号、姓名及成绩,并将成绩乘以系数0、8输出.
(5)求数学系或计算机系姓张得学生得信息。
(6)求缺少了成绩得学生得学号与课程号。
(7)求C1课程得成绩高于张三得学生学号与成绩。
(8)求其她系中比计算机系学生年龄都小得学生。
(9)查询选修了全部课程得学生得姓名。
(10)求至少选修了学生“张三"所选修得全部课程得学生学号与姓名。
(11)查询每一门课得间接先行课(即先行课得先行课)。
在图书—图书库中实现其查询操作。
(1)查找这样得图书类别:
要求类别中最高得图书定价不低于全部按类别分组得图书平均定价得2倍.
(2)求机械工业出版社出版得各类图书得平均定价,用GROUPBY表示。
(3)列出计算机类图书得书号、名称及价格,最后求出册数与总价格。
(4)列出计算机类图书得书号、名称及价格,并求出各出版社这类书得总价格,最后求出全部册数与总价格。
(5)查询计算机类与机械工业出版社出版得图书。
(6)在图书-借阅库中实现其查询操作:
将计算机类得书存入永久得计算机图书表中,将借书日期在1999年以前得借阅记录存入临时得超期借阅表。
用Transact-SQL语句表示,并在学生选课库中实现下列数据连接查询操作:
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语句表示职工与部门之间得内连接、左外部连接与右外部连接,在职工部门库中实现其数据内连接与各种外查询操作。
三、实验环境
硬件:
计算机
软件:
Windows2000与SQLServer2000
四、实验步骤及其结果:
1、基本操作实验
(1)简单查询实验
(l)用Transact—SQL语句表示下列操作.在学生选课库中实现其数据查询操作:
求数学系学生得学号与姓名。
selectSno,Sname
fromStudent
where Sdept=’MA';
求选修了课程得学生学号。
selectdistinctSno
fromSC;
求选修C1课程得学生学号与成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
selectSno,Grade
fromSC
where Cno='1’
orderby Gradedesc,Snoasc;
获选修课程C1且成绩在80~90分之间得学生学号与成绩,并将成绩乘以系数0、8输出。
selectSno,0、8*Grade
fromSC
whereCno='1'andGradebetween80and90;
求数学系或计算机系姓张得学生得信息。
selectStudent、Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
from Student,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、Sno andCourseo=SCo;
求选修C1课程且成绩为90分以上得学生学号、姓名及成绩。
select Student、Sno,Sname,Grade
fromStudent,SC
where Student、Sno=SC、SnoandCno=’1’ andGrade>90 ;
查询每一门课得间接先行课(即先行课得先行课)。
select firsto,second、Cpno
from Coursefirst,Coursesecond
wherefirst、Cpno=secondo;
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)
create table 职工
(职工号char(4)primarykey,
姓名varchar(max),
性别char
(2),
年龄smallint,
部门varchar(max));
createtable部门
(部门号char(4)primarykey,
部门名称varchar(max),
电话 varchar(max));
(2)外连接:
左连接:
\
右连接:
use职工部门
select *
from职工
right join部门on职工、职工号=部门、部门号;
五、调试过程
use 职工部门
select*
from 职工
rightjoin部门 on 职工、职工号=部门、部门号;
没有加;号出错,改过成功
六、实验结果
七、实验总结
本次实验,通过用SQL语言对表进行查询操作,让我更加熟练地掌握SQL得编程方法,了解到了平时我们在文件查找数据与通过数据库得查询语句进行查询得不同,让我更加认同了数据库这类软件。
福建农林大学计算机与信息学院实验报告
实验名称:
数据库得视图操作实验
一、实验目得与要求
(1)掌握SQLServer中得视图创建向导与图表创建向导得使用方法;
(2)加深对视图与SQLServer图表作用得理解。
(3)掌握数据库安全性得操作方法.
二、实验内容与原理
1、基本操作实验
(1)在SQLServer企业管理器中调出CreateViewWizard(创建图表向导),按下列Transact-SQL描述得视图定义,创建借阅_计算机图书视图。
CREATE VIEW借阅_计算机图书
ASSELECT图书、*,借阅、*
FROM图书,借阅
WHERE图书、编号=借阅、书号AND图书、类别=‘计算机’
(2)在SQLserver企业管理器中调出CreateViewWizard(创建图表向导),完成在图书—读者数据库中建立一个图书_借阅图表操作.要求该图表包括图书与借阅两个表,并包括图书与借阅之间得“图书、书号=借阅、书号”外码与被参照表之间得关联。
(3)查瞧上述实验结果。
如果结果有误,予以纠正。
2、 提高操作实验
在学生—课程数据库中用Transact-SQL语句描述下列视图定义。
(1)从学生表中建立查询所有男(女)生信息得视图STU_SEX.视图得列名为SNO、SNAME、SSEX与SAGE。
(2)从课程表中建立查询所有课程先修课信息得视图课程_PRE.视图得列名为课程号、课程名称与先修课名称。
(3)从选修表中建立查询成绩大于等于80信息得视图STU_CJ1.视图得列名为学号、课程号与成绩。
(4)从学生、选修与课程三个表建立查询学生选修情况得视图STU_CJ2。
视图得列名为姓名、课程名称与成绩。
(5)从学生、选修与课程三个表建立查询学生选修情况并且成绩小于80得视图STU_CJ3。
视图得列名为姓名、课程名称与成绩.
(6)利用Transact-SQL命令修改视图STU_SEX。
把视图得列名改为学号、姓名、性别与年龄,把加上“WITHCHECK OPTION”选项。
(7)删除视图STU_CJ3。
三、实验环境
硬件:
计算机
软件:
Windows2000与SQL Server2000
四、实验步骤及其结果:
1、基本操作实验
(1)在SQLServer企业管理器中调出Create ViewWizard(创建图表向导),按下列Transact-SQL描述得视图定义,创建借阅_计算机图书视图。
CREATEVIEW借阅_计算机图书
ASSELECT 图书、*,借阅、*
FROM图书,借阅
WHERE图书、编号=借阅、书号AND图书、类别=‘计算机’
(2)在SQL server企业管理器中调出CreateViewWizard(创建图表向导), 完成在图书_读者数据库中建立一个图书_借阅图表操作。
要求该图表包括图书与借阅两个表,并包括图书与借阅之间得“图书、书号=借阅、书号"外码与被参照表之间得关联.
(3)查瞧上述实验结果。
如果结果有误,予以纠正。
2、提高操作实验
将自设计得数据库应用项目中得子模式,用Transact-SQL语句描述其视图定义并在SQL Server企业管理器中,用视图创建向导创建这些视图。
(1)下面用SQL语言创建借阅_计算机图书视图:
五、调试过程
在建立视图课程_PRE时,命令能够成功完成,但就是查询结果中先修课名称为空,检查SQL命令语句
,先修课参照课程号,应对COURSE定义别名,修改命令语句后,输出结果正确.
六、实验结果
七、实验总结
通过这次实得创建视图以及视图得定义,让我了解到了视图表使我们更加容易直观得到我们想要得信息组合,而又不变动原来得数据。
通过对视图得操作,了解到其实视图并不就是那么难,与基本表得操作差不多。
只就是她们得得属性不同:
视图就是张虚表,而基本表就是实实在在存在得表。
这次实验学习到了视图得重要性.
福建农林大学计算机与信息学院实验报告
实验名称:
触发器、存储过程操作实验
一、实验目得与要求
(1)掌握 SQLServer中得触发器得使用方法;
(2)掌握存储过程得操作方法。
二、实验内容与原理
1、基本操作实验
在读者-图书数据库中用Transact-SQL语句描述下列功能:
(1)在读者表上建立一个DELETE类型得触发器lianxi_del,触发动作就是显示信息(已删除读者表中得数据),执行下列语句:
createtriggerlianxi_del
on 读者
fordelete
asprint‘已删除读者表中得数据’
(2)建立一个查询指定读者号得阅读信息得存储过程List_jy,输入参数为读者号,如果没有输入读者号,则要输出提示信息。
建立这个存储过程得语句如下所示.
create procedureList_jy
p_dzhchar(5)=null
as
ifp_dzhisnull
begin
print‘请输入一个读者号’
return
end
else
select编号,姓名,书名,借阅时间
from读者,借阅,图书
where 读者、编号=借阅、读者编号and借阅、书号=图书、书号
and读者、编号=p_dzh
2、提高操作实验
在学生-课程数据库中用Transact-SQL语句描述下列功能:
(1)为学生表建立一个名TRI_INSERT得INSERT触发器。
功能就是当用户向学生表添加数据时,同时也把这些数据添加到stu表中。
其中:
学生表与表stu得结构相同。
(2)为学生表建立一个名TRI_DELETE得DELETE触发器。
功能就是当用户从学生表删除数据时,同时把这些要删除得数据添加到stu表中。
其中:
表student与表stu得结构相同。
(3)创建一查询存储过程,过程名称为P_CX.参数就是学号,输出信息就是指定学号所应得姓名、课程名称、成绩.运行时若没有指定学号,则提示请输入学号;若学号不存在则提示学号不存在.
(4)创建一统计存储过程,过程名称为P_CJTJ。
参数就是学号,输出信息就是指定学号得姓名、选课门数、平均分、总分、最高分、最低分.运行时若没有指定学号,则提示输入学号;若学号不存在则提示学号不存在。
(5)创建一个实现求1—n所有数之与得存储过程, 过程名称为P_SUM。
参数就是n,输出就是前n个之与。
如:
n=100,则输出5050.
(6)创建一个求指定区间[a,b]得随机数得存储过程, 过程名称为P_RAND。
参数据就是a与b(a
三、实验环境
硬件:
计算机
软件:
Windows2000与SQLServer2000
四、算法描述及实验步骤
1、基本操作实验
(1)在读者表上建立一个DELETE类型得触发器lianxi_del
(2)建立一个查询指定读者号得阅读信息得存储过程List_jy
2、提高操作实验
在学生-课程数据库中用Transact-SQL语句描述下列功能:
1)为学生表建立一个名TRI_INSERT得INSERT触发器。
功能就是当用户向学生表添加数据时,同时也把这些数据添加到stu表中。
其中:
学生表与表stu得结构相同。
CREATETRIGGERTRI_INSER
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 福建 农林 大学 数据库 实验 报告
