数据库原理实验5
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
福建农林大学资源与环境学院实验报告
系:国土资源专业:空间信息与数字技术年级:2016
姓名:任然学号:3165706014 实验室号____507__ 计算机号44
实验时间:2018年5日指导教师签字:成绩:
报告退发(订正、重做)
实验名称:触发器、存储过程操作实验
一、实验目的和要求
(1)掌握SQL Server中的触发器的使用方法;
(2)掌握存储过程的操作方法。
二、实验内容和原理
1. 基本操作实验
在读者-图书数据库中用Transact-SQL语句描述下列功能:
(1)在读者表上建立一个DELETE类型的触发器lianxi_del,触发动作是显示信息(已删除读者表中的数据),执行下列语句:
create trigger lianxi_del
on 读者
for delete
as print ‘已删除读者表中的数据’
(2)建立一个查询指定读者号的阅读信息的存储过程List_jy,输入参数为读者号,如果没有输入读者号,则要输出提示信息。建立这个存储过程的语句如下所示。
create procedure List_jy
@p_dzh char(5) = null
as
if @p_dzh is null
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
三、实验环境
硬件:计算机
软件:Windows 2000和SQL Server 2000
四、算法描述及实验步骤
1. 基本操作实验
在读者-图书数据库中用Transact-SQL语句描述下列功能:
(1)在读者表上建立一个DELETE类型的触发器lianxi_del,触发动作是显示信息(已删除读者表中的数据),执行下列语句:
create trigger lianxi_del
on 读者
for delete
as print ‘已删除读者表中的数据’
(2)建立一个查询指定读者号的阅读信息的存储过程List_jy,输入参数为读者号,如果没有输入读者号,则要输出提示信息。建立这个存储过程的语句如下所示。
create procedure List_jy
@p_dzh char(5) = null
as
if @p_dzh is null
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