数据库编程——简单教程

一、实验目的
1、掌握存储过程的概念、优点、特点及用途;
2、掌握创建、执行、修改和删除存储过程的方法。
二、实验内容
(一)附加上次实验所创建的数据库“db_Library”,并回顾该库的数据表信息。
(二)练习创建和管理存储过程
1、创建一个名为“PROC_系部读者借阅信息”的无参存储过程,要求显示计算机系读者2014-1-1以后借阅的图书信息,包括“读者姓名”、 “图书编号”和“借阅日期”三个字段。
创建完成之后,执行上述存储过程,观察执行结果。
2、修改上述的存储过程为带参的存储过程,要求根据所提供的系部名称和时间,查询出该系部在该时间之后借阅了图书的读者信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段,并按照读者姓名升序排列,并将读者的总数作为输出参数返回。
创建完成之后,执行上述存储过程,观察执行结果。
3、创建一个名为“Proc_删除读者信息”的存储过程,要求根据所提供的读者编号,删除该编号所对应的读者,如果不存在此编号的读者,则显示“该编号的读者不存在!”。创建完成之后,执行上述存储过程,观察执行结果。
4、创建一个名为“Proc_修改借阅信息”的存储过程,要求根据所提供的读者编号和天数,将该读者的归还日期增加相应的天数,如果不存在该读者的借阅信息,则显示“该读者没有借阅图书!”。创建完成之后,执行上述存储过程,观察执行结果。
5、删除存储过程“Proc_修改借阅信息”。

三、实验步骤
1、创建一个名为“PROC_系部读者借阅信息”的无参存储过程,要求显示计算机系读者2014-1-1以后借阅的图书信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段。
创建完成之后,执行上述存储过程,观察执行结果。
在这里插入图片描述
执行结果:
在这里插入图片描述

2、修改上述的存储过程为带参的存储过程,要求根据所提供的系部名称和时间,查询出该系部在该时间之后借阅了图书的读者信息,包括“读者姓名”、“图书编号”和“借阅日期”三个字段,并按照读者姓名升序排列,并将读者的总数作为输出参数返回。
创建完成之后,执行上述存储过程,观察执行结果。

ALTER PROCEDURE PROC_系部读者借阅信息
@Dept char(12),@datetime date
AS 
BEGIN
SELECT Rname'读者姓名',Bno'图书编号',Bodate'借阅日期'
FROM tb_borow,tb_reader
WHERE tb_borow.Rno=tb_reader.Rno AND tb_reader.Dept=@Dept AND Bodate>@datetime
END
EXEC PROC_系部读者借阅信息 '计算机系','2014-09-20'

执行结果:
在这里插入图片描述

3、创建一个名为“Proc_删除读者信息”的存储过程,要求根据所提供的读者编号,删除该编号所对应的读者,如果不存在此编号的读者,则显示“该编号的读者不存在!”。创建完成之后,执行上述存储过程,观察执行结果。

CREATE PROC Proc_删除读者信息
@Rno char(6)
AS
BEGIN
IF EXISTS(SELECT * FROM tb_reader WHERE tb_reader.Rno=@Rno)
DELETE 
FROM tb_reader
WHERE tb_reader.Rno=@Rno
ELSE
Print'该编号读者不存在'
END
EXEC Proc_删除读者信息 R10099

执行结果:
在这里插入图片描述

4、创建一个名为“Proc_修改借阅信息”的存储过程,要求根据所提供的读者编号和天数,将该读者的归还日期增加相应的天数,如果不存在该读者的借阅信息,则显示“该读者没有借阅图书!”。创建完成之后,执行上述存储过程,观察执行结果。

CREATE PROCEDURE PROC_修改借阅信息
@Rno char(6),@days INT
AS 
BEGIN
IF EXISTS(SELECT * FROM tb_borow WHERE tb_borow.Rno=@Rno)
UPDATE tb_borow 
SET Rdate=DATEADD(d,@days,Rdate)
FROM tb_borow
WHERE tb_borow.Rno=@Rno 
ELSE 
PRINT'该读者没有借阅图书'
END

执行结果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5、删除存储过程“Proc_修改借阅信息”。

DROP PROC PROC_修改借阅信息

四、实验总结
进一步熟悉sql语言,与之前知识建立联系,对知识了解更深刻。

本实验是学习中的记录,不足之出,望指出!!!

Guess you like

Origin blog.csdn.net/qq_47122804/article/details/121109150