数据库应用实验四

2020-06-17 09:30

数据库应用报告

学 院:计算机学院班 级:姓 名: 学 号:课程名称:数据库应用(实验四)

第八章存储过程与触发器

1.实验目的

1)理解存储过程和触发器的作用。

2)学会使用对象资源管理器和SQL编辑器创建存储过程。 3)学会使用对象资源管理器和SQL编辑器创建触发器。 4)学会存储过程和触发器的管理方法。

2.实验准备

1)在服务器上创建好student数据库。 2)在数据库中创建好各个表。 3)对表中输入数据。

3.实验内容和步骤

1)独立实践:编写一个存储过程来对stud_info表进行检索、插入、修改、删除操作,然后调用这个存储过程。

createprocedurestud_proc(

@stud_idchar(10), @name nvarchar(4), @birthday datetime, @gender nchar(1),

@address nvarchar(20), @telcodechar(12), @zipcodechar(6), @mark decimal(3) )as begin

select*fromstud_infowherestud_id= @stud_id insertintostud_info

values(N'0401010812', @name, @birthday, @gender,

@address,@telcode, @zipcode, @mark )

updatestud_info

set name = @name,

birthday = @birthday, [address] = @address, telcode= @telcode, zipcode= @zipcode, mark = @mark

wherestud_id= @stud_id

deletefromstud_infowhere @stud_id=N'0401010812' end

2) 独立实践:编写一个触发器,在对Student数据库中的表stud_info执行插入、更新、和删除3种操作后给出响应的提示。 createtriggerstud_trigger on stud_info

fordelete,update,insert as begin

print('There comes change') end

第九章事务与游标

1.实验目的

1)了解SQL SEVER程序设计的方法。

2)学会使用批处理、流程控制、事务处理、锁、游标的使用方法。

2.实验准备

1)在服务器上创建好student数据库。 2)在数据库中创建好各个表。 3)对表中输入数据。

3.实验内容和步骤

1、 事务处理:运用事务处理将Student数据库中课程表lesson_info中的多媒体技术课程标号course_id有040101006改成0401010116。 begintranstud_transaction

updatelesson_infosetcourse_id=N'0401010116'wherecourse_id=N'0401010106'savetranstud_savepoint

updateteach_schedulesetcourse_id=N'0401010116'wherecourse_id=N'0401010106'

updatestud_gradesetcourse_id=N'0401010116'wherecourse_id=N'0401010106'

updateteacher_info setcourse_id=N'0401010116'wherecourse_id=N'0401010106' rollbacktranstud_savepoint

2、 ①、制造死锁:在SQL编辑器中输入并执行如下操作。 setdeadlock_priority low begintransaction

updatestud_infoset mark = 565 wherestud_id=N'0401030101' ②、新建一个查询,输入如下语句并执行: begintransaction

updatestud_gradeset grade = 65 wherestud_id=N'0401040112' ③、切换到①中,输入并执行如下语句 updatestud_gradeset grade = 67 wherestud_id=N'0401040112' 此时事物一和二都锁住了stud_grade表中的stud_id = N'0401040112'的记

录,第一个 事物被第二个事物阻止,但没有发生死锁。 ④、切换到②,输入并执行如下语句:

updatestud_infoset mark = 568 wherestud_id=N'0401030101' 此时由于事物一等待事物二释放stud_grade中的stud_id = N’0401040112’

的记录 锁, 而事物二有等待事物一释放stud_info中的stud_id =

N’0401030101’的记录锁,这样 相互等待而造成死锁。而因为第一个事物的deadlock_priority设置成low,SQL Server 能自动检测并能将其解除,所以第一个事物立即终止。 3、 游标的使用: ① 定义一个游标stud_cursor,逐行读取stud_info中的数据,

select*fromstud_info go

declarestud_cursorcursorforselect*fromstud_info openstud_cursor

fetchnextfromstud_cursor while@@FETCH_STATUS= 0 begin

fetchnextfromstud_cursor

end

closestud_cursor

deallocatestud_cursor ② 定义一个游标stud_cursor 删除stud_info中第一行数据。

select*fromstud_info go

declarestud_cursorcursorforselect*fromstud_info openstud_cursor

fetchnextfromstud_cursor deletefromstud_info while@@FETCH_STATUS= 0 begin

fetchnextfromstud_cursor end

closestud_cursor

deallocatestud_cursor ③ 定义一个游标stud_cursor,更新stud_info中的数据

select*fromstud_info go

declarestud_cursorcursorforselect*fromstud_info openstud_cursor

fetchnextfromstud_cursor updatestud_info

setbh= 111 wherecurrentofstud_cursor closestud_cursor

deallocatestud_cursor

实验体会

通过本次实验,我加深了对课本知识的理解。学习和实践了存储过程,触发器,事务和游标的使用。实验课就是自己动手去学习并掌握自己课堂所学到知识,实现对工具的熟练应用,但是我觉得仅仅靠这短短的实验课是不能达到所预期的目标的,我们应该在课下去多动手实践,才会取得更好的效果。


数据库应用实验四.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:毕业论文 - 人民币升值对我国国际贸易影响研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: