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

上传人:李医生 文档编号:6359495 上传时间:2020-11-01 格式:DOC 页数:24 大小:593.50KB
返回 下载 相关 举报
福建农林大学数据库实验报告.doc_第1页
第1页 / 共24页
福建农林大学数据库实验报告.doc_第2页
第2页 / 共24页
福建农林大学数据库实验报告.doc_第3页
第3页 / 共24页
福建农林大学数据库实验报告.doc_第4页
第4页 / 共24页
福建农林大学数据库实验报告.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

1、福建农林大学计算机与信息学院实验报告课程名称:数据库原理及应用姓 名:系:专 业:计算机科学与技术年 级:学 号:指导教师:李金铭职 称:副教授2015年 月 日实验目录:实验编号实验名称成绩1数据库的定义实验2数据库的建立与维护实验3数据库的查询实验4数据库的视图操作实验5触发器、存储过程操作实验总评福建农林大学计算机与信息学院实验报告实验名称:数据库的定义实验一、实验目的和要求(1)要求学生熟练掌握和使用 SQL、Transact-SQL、SQL Server企业管理器创建数据库、表、索引和修改表结构。(2)学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果

2、分析。二、实验内容和原理 1. 基本操作实验 (1)使用企业管理器按教材中的内容建立图书读者数据库。 (2)在企业管理器中查看图书读者数据库的属性,并进行修改,使之符合要求。 (3)通过企业管理器,在建好的图书借阅数据库中建立图书、读者和借阅3个表,其结构为; 图书(书号,类别,出版社,作者,书名,定价); 读者(编号,姓名,单位,性别,电话); 借阅(书号,读者编号,借阅日期) 要求为属性选择合适的数据类型,定义每个表的主码,是否允许空值和默认值等列级数据约束。 (4)在企业管理器中建立图书、读者和借阅3个表的表级约束:每个表的主码约束;借阅表与图书表间、借阅表与读者表之间的外码约束,要求按

3、语义先确定外码约束表达式,再通过操作予以实现;实现借阅表的书号和读者编号的惟一性约束:实现读者性别只能是“男”或“女”的Check(检查)约束。三、实验环境硬件:计算机软件:Windows 2000和SQL Server 2000 四、算法描述及实验步骤l通过企业管理器,建立图书借阅数据库在数据库图标上右击,选择“新建数据库”,输入“图书_读者”,单击“确定”按钮,关闭对话框。在企业管理器窗口中出现“图书-读者”数据库标志,这表明建库工作已经完成。2在建好的图书借阅数据库中建立图书、读者和借阅3个表(1)建立“图书”表。选中图书_读者数据库中的表文件夹,单由鼠标右键,在弹出的菜单中选择“新建表

4、”,如图2所示。 (2)输入结构书号: char 长度 10,不允许空值。并设置为主键。类别: char 长度 12,允许空值。出版社:varchar 长度 50,不允许空值。作者:varchar 长度 50,允许空值。名称:varchar 长度 50,不允许空值。定价:char 长度 10,允许空值。建立表格如图3所示。 (3)建立“读者”表和“借阅”表。与建立“图书”表的形式一致,如表2。(4) 输入结构读者(编号,姓名,单位,性别,电话)借阅(书号,读者编号,借阅日期)“读者”表:编号:char 长度 20,不允许空值。并设置为主键。姓名:varchar 长度 50,不允许空值。单位:v

5、archar 长度 50,不允许空值。性别:char 长度 10,不允许空值。电话:varchar 长度 50,不允许空值。“借阅”表:书号:char 长度 10,不允许空值。读者编号:char 长度 20,不允许空值。借阅日期:datetime,不允许空值。将“书号”与“读者编号”设置为主键。3. 指出图书读者数据库各表的主码、外码和数据约束在表“图书”中把书号作为主键,步骤如下:右击书号,点击设置主键,在图书中把读者编号设置成主键,在借阅表中建立与图书,和读者的关系在表“读者”中对性别进行check结束表“读者”和表“借阅”的设置主键和表“图书”一样表“图书”的主码是书号,外码也是书号,数

6、据约束是主码不能为空表“读者”的主码是编号,外码也是编号,数据约束是性别只能为男或女表“借阅”的主码是书号,外码是读者编号,数据约束是主码和外码不能为空五、调试过程Check约束语句错误,经调试成功六、实验结果:图1 在数据库弹出菜单中选择“新建数据库”图2建立表格图3输入表结构七、实验总结 通过此次实验,我掌握了建立一个数据库的方法,以及建立表和表之间的关系,对表中的属性进行约束,书上的毕竟只是理论,掌握理论不一定会实践,实践会了才是真的会。福建农林大学计算机与信息学院实验报告实验名称:数据库的建立与维护实验一、实验目的和要求熟练掌握使用 SQL、Transact-SQL和SQL Serve

7、r企业管理器向数据库输入数据、修改数据和删除数据的操作。二、实验内容和原理 1. 基本操作实验 (1)通过企业管理器,在图书-读者数据库的图书、读者和借阅3个表中各输入5条记录。要求记录不仅满足数据约束要求,还要有表间关联的记录。 (2)通过企业管理器实现对图书-读者数据库的图书、读者和借阅3个表中数据的插入、删除和修改操作。 2. 提高操作实验 (1)通过查询分析器用SQL命令实现对学生-课程库的数据增加、数据删除和数据修改操作,要求学生、课程和选课表中各有5条以上的记录。(2)通过查询分析器用SQL命令实现在读者表中增加“借书册数字段,统计借书者在2005年2007年间所借书的册数,并将结

8、果送入读者表中的借书册数字段的操作。(3)通过查询分析器用SQL命令为学生-课程库中的“课程”表添加“学时(短整型)”属性,并设置它的约束条件为大于0且小于等于150。三、实验环境硬件:计算机软件:Windows 2000和SQL Server 2000 四、实验步骤及其结果1. 以一条记录为例,写出用SQL表示的向图书表中插入、修改和删除数据的语句(1)通过企业管理器,在图书借阅数据库的图书、读者和借阅3个表中各输入10条记录。(2)通过企业管理器实现对图书借阅数据库的图书、读者和借阅3个表中数据的插入。删除和修改操作。删除:选择要删除的数据,右击选择删除插入:在最后一行NULL中可以填写要

9、插入的信息。修改:选择要修改的数据直接修改。(3)向自设计的数据库应用系统的库中的各表,输入多条实际数据,并实现数据的增、删、改操作。五、调试过程增加操作:修改操作:Course表:原表:修改后:Student表:原表:修改后:SC表:原表:修改后:删除操作:Course表:原表:删除后:Student表:原表:删除后:SC表:原表:删除后:六、实验结果2.实现在读者表中增加“借书册数字段,统计借书者在1998年1999年间所借书的册数,并将结果送入读者表中的借书册数字段的操作。结果:七、实验总结通过本次实验,我了解了SQL语言对表格进行查询、行插入、删除和修改的编程。这次实验让我了解了更多关

10、于数据库实际使用方法,也让我对数据库的了解更深入。福建农林大学计算机与信息学院实验报告实验名称:数据库的查询实验一、实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。二、实验内容和原理 1. 基本操作实验用Transact-SQL语句表示下列操作在学生-课程库中实现其数据查询操作:(1)求数学系学生的学号和姓名。(2)求选修了高等数学的学生学号、姓名和成绩。(3)求选修C1课程的学生学号和成绩,

11、并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。(4)获选修课程C1且成绩在8090分之间的学生学号、姓名及成绩,并将成绩乘以系数0.8输出。(5)求数学系或计算机系姓张的学生的信息。 (6)求缺少了成绩的学生的学号和课程号。(7)求C1课程的成绩高于张三的学生学号和成绩。(8)求其他系中比计算机系学生年龄都小的学生。(9)查询选修了全部课程的学生的姓名。(10)求至少选修了学生“张三”所选修的全部课程的学生学号和姓名。(11)查询每一门课的间接先行课(即先行课的先行课)。 在图书-图书库中实现其查询操作。 (1)查找这样的图书类别:要求类别中最高的图书定价不低于全部按类别分组的

12、图书平均定价的2倍。 (2)求机械工业出版社出版的各类图书的平均定价,用GROUP BY表示。 (3)列出计算机类图书的书号、名称及价格,最后求出册数和总价格。 (4)列出计算机类图书的书号、名称及价格,并求出各出版社这类书的总价格,最后求出全部册数和总价格。 (5)查询计算机类和机械工业出版社出版的图书。(6)在图书-借阅库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在1999年以前的借阅记录存入临时的超期借阅表。 用Transact-SQL语句表示,并在学生选课库中实现下列数据连接查询操作: 2. 提高操作实验 (1)按表1的格式,建立职工部门库和职工表、部门,并向

13、表中输入数据。表1 职工和部门表数据 职工表 部门表职工号姓名性别年龄部门1010李勇男20111011刘晨女191012王敏女22121013张立男2113部门号部门名称电话11生产科56612计划科57813一车间46714科研所 (2)用Transact-SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。三、实验环境硬件:计算机软件:Windows 2000和SQL Server 2000 四、实验步骤及其结果: 1. 基本操作实验 (1)简单查询实验 (l)用Transact-SQL语句表示下列操作在学生选课库中实现其数据查询

14、操作: 求数学系学生的学号和姓名。select Sno,Snamefrom Studentwhere Sdept=MA;求选修了课程的学生学号。select distinct Snofrom SC;求选修C1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。select Sno,Gradefrom SCwhere Cno=1 order by Grade desc,Sno asc;获选修课程C1且成绩在8090分之间的学生学号和成绩,并将成绩乘以系数0.8输出。select Sno,0.8*Gradefrom SCwhere Cno=1 and Grade b

15、etween 80 and 90 ;求数学系或计算机系姓张的学生的信息。select Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Gradefrom Student,SCwhere Student.Sno=SC.Sno and Sname like 张% and(Sdept=MA or Sdept=CS);求缺少了成绩的学生的学号和课程号。select Sno,Cnofrom SCwhere Grade=0;2)在图书借阅库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在1999年以前的借阅记录存入临时的超期借阅表。select *into

16、 计算机图书from 图书where 类别=计算机;select *into #超期借阅from 借阅where 借阅日期90 ;查询每一门课的间接先行课(即先行课的先行课)。select first.Cno,second.Cpnofrom Course first,Course secondwhere first.Cpno=second.Cno; 2. 提高操作实验 (1)按表1的格式,建立职工部门库和职工表、部门,并向表中输入数据。 表1 职工和部门表数据 职工表 部门表职工号姓名性别年龄部门1010李勇男20111011刘晨女191012王敏女22121013张立男2113部门号部门名称

17、电话11生产科56612计划科57813一车间46714科研所(2)Transact-SQL语句表示职工和部门之间的内连接、左外部连接和右外部连接,在职工部门库中实现其数据内连接和各种外查询操作。部门号部门名称电话11生产科56612计划科57813一车间46714科研所(1)create table 职工(职工号 char(4) primary key,姓名 varchar(max),性别 char(2),年龄 smallint,部门 varchar(max);create table 部门(部门号 char(4) primary key,部门名称 varchar(max),电话 varch

18、ar(max);(2)外连接:左连接:右连接:use 职工部门select *from 职工right join 部门 on 职工.职工号=部门.部门号;五、调试过程use 职工部门select *from 职工right join 部门 on 职工.职工号=部门.部门号;没有加;号出错,改过成功六、实验结果七、实验总结本次实验,通过用SQL语言对表进行查询操作,让我更加熟练地掌握SQL的编程方法,了解到了平时我们在文件查找数据与通过数据库的查询语句进行查询的不同,让我更加认同了数据库这类软件。福建农林大学计算机与信息学院实验报告实验名称:数据库的视图操作实验一、实验目的和要求(1)掌握 SQ

19、L Server中的视图创建向导和图表创建向导的使用方法;(2)加深对视图和SQL Server图表作用的理解。(3)掌握数据库安全性的操作方法。二、实验内容和原理 1. 基本操作实验 (1)在SQL Server企业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。 CREATE VIEW 借阅_计算机图书 AS SELECT 图书.*,借阅.* FROM 图书,借阅 WHERE图书.编号=借阅.书号AND图书.类别=计算机 (2)在SQL server企业管理器中调出Create View Wizard

20、(创建图表向导), 完成在图书-读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号借阅.书号”外码与被参照表之间的关联。 (3)查看上述实验结果。如果结果有误,予以纠正。2. 提高操作实验在学生-课程数据库中用Transact-SQL语句描述下列视图定义。(1)从学生表中建立查询所有男(女)生信息的视图STU_SEX。视图的列名为SNO、SNAME、SSEX和SAGE。(2)从课程表中建立查询所有课程先修课信息的视图课程_PRE。视图的列名为课程号、课程名称和先修课名称。(3)从选修表中建立查询成绩大于等于80信息的视图STU_CJ1。视

21、图的列名为学号、课程号和成绩。(4)从学生、选修和课程三个表建立查询学生选修情况的视图STU_CJ2。视图的列名为姓名、课程名称和成绩。(5)从学生、选修和课程三个表建立查询学生选修情况并且成绩小于80的视图STU_CJ3。视图的列名为姓名、课程名称和成绩。(6)利用Transact-SQL命令修改视图STU_SEX。把视图的列名改为学号、姓名、性别和年龄,把加上“WITH CHECK OPTION”选项。(7)删除视图STU_CJ3。三、实验环境硬件:计算机软件:Windows 2000和SQL Server 2000 四、实验步骤及其结果:1. 基本操作实验 (1)在SQL Server企

22、业管理器中调出Create View Wizard(创建图表向导),按下列Transact-SQL描述的视图定义,创建借阅_计算机图书视图。 CREATE VIEW 借阅_计算机图书 AS SELECT 图书.*,借阅.* FROM 图书,借阅 WHERE图书.编号=借阅.书号AND图书.类别=计算机(2)在SQL server企业管理器中调出Create View Wizard(创建图表向导), 完成在图书_读者数据库中建立一个图书_借阅图表操作。要求该图表包括图书和借阅两个表,并包括图书与借阅之间的“图书.书号借阅.书号”外码与被参照表之间的关联。(3)查看上述实验结果。如果结果有误,予以

23、纠正。 2. 提高操作实验将自设计的数据库应用项目中的子模式,用Transact-SQL语句描述其视图定义并在SQL Server企业管理器中,用视图创建向导创建这些视图。(1)下面用SQL语言创建借阅_计算机图书视图:五、调试过程在建立视图课程_PRE时,命令能够成功完成,但是查询结果中先修课名称为空,检查SQL命令语句,先修课参照课程号,应对COURSE定义别名,修改命令语句后,输出结果正确。六、实验结果七、实验总结通过这次实的创建视图以及视图的定义,让我了解到了视图表使我们更加容易直观得到我们想要的信息组合,而又不变动原来的数据。通过对视图的操作,了解到其实视图并不是那么难,与基本表的操

24、作差不多。只是他们的的属性不同:视图是张虚表,而基本表是实实在在存在的表。这次实验学习到了视图的重要性。福建农林大学计算机与信息学院实验报告实验名称:触发器、存储过程操作实验一、实验目的和要求(1)掌握 SQL Server中的触发器的使用方法;(2)掌握存储过程的操作方法。二、实验内容和原理1. 基本操作实验在读者-图书数据库中用Transact-SQL语句描述下列功能:(1)在读者表上建立一个DELETE类型的触发器lianxi_del,触发动作是显示信息(已删除读者表中的数据),执行下列语句:create trigger lianxi_delon 读者 for deleteas prin

25、t 已删除读者表中的数据(2)建立一个查询指定读者号的阅读信息的存储过程List_jy,输入参数为读者号,如果没有输入读者号,则要输出提示信息。建立这个存储过程的语句如下所示。create procedure List_jy p_dzh char(5) = null as if p_dzh is null beginprint 请输入一个读者号returnendelseselect 编号,姓名,书名,借阅时间from 读者,借阅,图书where 读者.编号=借阅.读者编号 and 借阅.书号=图书.书号and 读者.编号=p_dzh2. 提高操作实验在学生-课程数据库中用Transact-SQ

26、L语句描述下列功能:(1)为学生表建立一个名TRI_INSERT的INSERT触发器。功能是当用户向学生表添加数据时,同时也把这些数据添加到stu表中。其中:学生表和表stu的结构相同。(2)为学生表建立一个名TRI_DELETE的DELETE触发器。功能是当用户从学生表删除数据时,同时把这些要删除的数据添加到stu表中。其中:表student和表stu的结构相同。(3)创建一查询存储过程,过程名称为P_CX。参数是学号,输出信息是指定学号所应的姓名、课程名称、成绩。运行时若没有指定学号,则提示请输入学号;若学号不存在则提示学号不存在。(4)创建一统计存储过程,过程名称为P_CJTJ。参数是学

27、号,输出信息是指定学号的姓名、选课门数、平均分、总分、最高分、最低分。运行时若没有指定学号,则提示输入学号;若学号不存在则提示学号不存在。 (5)创建一个实现求1n所有数之和的存储过程, 过程名称为P_SUM。参数是n,输出是前n个之和。如:n=100,则输出5050。 (6)创建一个求指定区间a,b的随机数的存储过程, 过程名称为P_RAND。参数据是a和b(ab),输出a到b之间的一个随机数。三、实验环境硬件:计算机软件:Windows 2000和SQL Server 2000四、算法描述及实验步骤1、基本操作实验(1)在读者表上建立一个DELETE类型的触发器lianxi_del(2)建

28、立一个查询指定读者号的阅读信息的存储过程List_jy2. 提高操作实验在学生-课程数据库中用Transact-SQL语句描述下列功能:1)为学生表建立一个名TRI_INSERT的INSERT触发器。功能是当用户向学生表添加数据时,同时也把这些数据添加到stu表中。其中:学生表和表stu的结构相同。CREATE TRIGGER TRI_INSERTON STUDENTFOR INSERTASINSERT INTO STUSELECT * FROM INSERTED(2)为学生表建立一个名TRI_DELETE的DELETE触发器。功能是当用户从学生表删除数据时,同时把这些要删除的数据添加到stu

29、表中。其中:表student和表stu的结构相同。CREATE TRIGGER TRI_DELETEON STUDENTFOR DELETEASINSERT INTO STUSELECT * FROM DELETED(3)创建一查询存储过程,过程名称为P_CX。参数是学号,输出信息是指定学号所应的姓名、课程名称、成绩。运行时若没有指定学号,则提示请输入学号;若学号不存在则提示学号不存在。create procedure P_CXsno char(10) =nullasif sno is nullbeginprint 请输入一个学号returnendelse if(not exists(sele

30、ct * from student where sno=sno)print 学号不存在elseselect sname,o,gradefrom student,course,scwhere student.sno=sc.sno and o=o and student.sno=sno(4)创建一统计存储过程,过程名称为P_CJTJ。参数是学号,输出信息是指定学号的姓名、选课门数、平均分、总分、最高分、最低分。运行时若没有指定学号,则提示输入学号;若学号不存在则提示学号不存在。create procedure P_CIJJsno char(10) =nullasif sno is nullbegi

31、nprint 请输入一个学号returnendelse if(not exists(select * from student where sno=sno)print 学号不存在elseselect sname,count(cno) 门数,avg(grade) 平均分,sum(grade) 总分,max(grade) 最高分,min(grade) 最低分from sc,studentwhere student.sno=snogroup by sname(5)创建一个实现求1n所有数之和的存储过程, 过程名称为P_SUM。参数是n,输出是前n个之和。如:n=100,则输出5050。create

32、procedure P_SUMn int,sum int outputasdeclare i intset sum=0set i=0while(i=n)beginset sum=sum+iset i=i+1end(6)创建一个求指定区间a,b的随机数的存储过程, 过程名称为P_RAND。参数据是a和b(ab),输出a到b之间的一个随机数。create procedure p_randa int,b int,c int outputasset c =cast(rand()*(b-a)+a as int)print 一个随机数 +str(c)五、调试过程1、在建立查询指定读者号的阅读信息的存储过程时出现如下错误将每一行的语句都顶格写,命令成功生成。六、实验结果七、实验总结这次实验主要是让我们了解如何创建一个触发器,触发器在数据库中是如何作用的,如何创建存储过程,存储过程有什么用。通过认真完成每一道题目,知道了对一个表建立一个或多个触发器后,对表进行作用时,会激活相应的触发器,实现相应的触发作用;知道了通过建立存储过程,可以简化查找等操作功能,避免重复工作。

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1