版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验项目名称: 存储过程和触发器 实验学时: 2 同组学生姓名: 实验地点: 实验日期: 实验成绩: 批改教师: 批改时间: 一、实验目的和要求1、通过对常用系统存储过程的使用,了解存储过程的类型;2、通过创建和执行存储过程,了解存储过程的基本概念,掌握使用存储过程的操作技巧和方法;3、通过对已创建的存储过程的改变,掌握修改、删除存储过程的技巧;4、了解触发器的基本概念,理解触发器的功能;5、掌握创建、修改和删除和使用触发器的操作方法。二、实验设备、环境设备:奔腾或奔腾以上计算机;环境:WINDOWS 2000 SERVER或WINDOWS 2003 SERVER、S
2、QL Server 2005中文版。三、实验步骤1、根据题目要求熟悉SQL Server 2005的各种管理工具;2、分析题意,重点分析题目要求并给出解决方法;3、按题目要求完成实际操作任务,并将相关文档资料保存在以自己学号命名的文件夹中;4、提交完成的实验结果。四、实验内容一、存储过程的类型。1、使用sp_helptext查看byroyalty存储过程的文本,该存储过程在数据库pubs中。sp_helptext byroyalty;二、创建与执行存储过程1、在MyDB中创建存储过程proc_1,要求实现如下功能:产生学分为4的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、专
3、业、性别等。并调用此存储过程,显示执行结果。create or replace PROCEDURE proc_1as cno char(4);cname varchar(16);credit int;sno char(8);sname varchar(10);specially varchar(3);sex char(2);begin select o,ame,course.credit,student.sno,student.sname,student.sex,class1.specially into cno,cname, credit,sno,sname,sex, specially f
4、rom course,student,grade,class1 where o = o and student.sno = grade.sno and class1.clsno = student.clsno and course.credit = 4;end proc_1;2、在MyDB中创建存储过程proc_2,要求实现如下功能:输入专业名称,产生该专业学生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用此存储过程,显示“计算机应用”专业学生的选课情况列表。create or replacePROCEDURE proc_2(spec in varchar)as
5、 cno char(4);cname varchar(16);credit int;sno char(8);sname varchar(10);specially varchar(3);score numeric(4,2);BEGIN select class1.specially,student.sno,student.sname,o, ame,grade.score,course.credit into specially,sno,sname,cno,cname,score,credit from class1,student,course,grade where student.sno
6、= grade.sno and o = o and student.clsno = class1.clsno and class1.specially = spec;end;3、在MyDB中创建存储过程proc_3,要求实现如下功能:输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分9,则显示“此学生学分不足!”,否则显示“此学生学分已足!”,并调用此存储过程,显示“”学生的总学分情况。create procedure proc_3(sno1 char(8)as declare Total tinyint;begin select Total=sum(course.credit)
7、 from course,student,gradewhere student.sno = grade.sno and o = o and student.sno = sno1if Total 9 print 此学生学分不足else print 此学生学分已足end;exec proc_3 三、修改存储过程1、对MyDB中已创建的存储过程proc_1进行修改,要求在显示列表中增加班级字段,即产生学分为“4”的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、专业、班级、性别等.alter PROCEDURE proc_1as cno char(4);clsname char(10
8、);cname varchar(16);credit int;sno char(8);sname varchar(10);specially varchar(3);score numeric(4,2);BEGINselect o,ame,course.credit,student.sno,student.sname,student.sex,class1.specially,class1.clanamefrom course,student,grade,class1where o = o and student.sno = grade.sno and class1.clsno = student
9、.clsno and course.credit = 4;end;exec proc_1;2、在MyDB中创建的存储过程proc_2进行修改,要求实现如下功能:输入专业名称,产生该专业所有男生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用修改后的存储过程,显示“计算机应用”专业男生的选课情况列表。alter or replacePROCEDURE proc_2(spec in varchar)as cno char(4);cname varchar(16);credit int;sno char(8);sname varchar(10);specially va
10、rchar(3);score numeric(4,2);BEGIN select class1.specially,student.sno,student.sname,o, ame,grade.score,course.credit from class1,student,course,grade where student.sno = grade.sno and o = o and student.clsno = class1.clsno and student.sex = 男 and class1.specially = spec;end;exec proc_2 计算机应用;3、对MyDB
11、中已创建的存储过程proc_3进行修改,要求实现如下功能:输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分9 then dbms_output.put(此学生所选学分为:); dbms_output.put(total); dbms_output.put_line(此学生学分已足);else print 此学生所选学分为:; print total; print 此学生学分不足; end if;end proc_3;call proc_3();call proc_3();call proc_3();四、删除存储过程:删除MyDB中的存储过程proc_1。drop procedu
12、re proc_1;五、创建触发器1、创建触发器trigger_1,实现当修改学生表(Student)中的数据时,显示提示信息“学生情况表被修改了”。create or replace TRIGGER TRIGGER_1AFTER INSERT OR UPDATE ON STUDENTBEGIN print 学生信息被修改了;END;insert into studentvalues (,曹操,男,MT04,江中路39#,22-11月-1993,1.88,8);2、在MyDB中创建触发器trigger_2,实现如下功能:当在学生成绩表(Grade)中删除一条学生选课信息后,自动实现更新该学生在
13、学生情况表(Student)中的总学分信息。create or replace TRIGGER TRIGGER_2AFTER DELETE ON GRADEBEGIN update student set totalcreidt = (select sum(credit) from grade);END;delete from grade where score = 90;3、创建触发器trigger_3,实现当修改学生情况表(Student)中的某个学生的学号时,对应学生成绩表(Grade)中的学号也作修改。create or replace TRIGGER TRIGGER1AFTER UP
14、DATE OF SNO ON STUDENT declare old_id char(8);new_id char(8);BEGIN update grade set sno= (select sno from inserted) where sno= (select sno from deleted);END;六、修改触发器1、对已创建的触发器trigger_1进行修改,实现当修改学生情况表(Student)中的数据时,显示提示信息“学生情况表中XXX号学生记录被修改了”。七、删除触发器1、删除学生情况表上的触发器trigger_1。五、问题解答及实验结果1、使用sp_helptext查看b
15、yroyalty存储过程的文本,该存储过程在数据库pubs中。sp_helptext byroyalty;二、创建与执行存储过程1、在MyDB中创建存储过程proc_1,要求实现如下功能:产生学分为4的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、专业、性别等。并调用此存储过程,显示执行结果。create or replace PROCEDURE proc_1as cno char(4);cname varchar(16);credit int;sno char(8);sname varchar(10);specially varchar(3);sex char(2);beg
16、in select o,ame,course.credit,student.sno,student.sname,student.sex,class1.specially into cno,cname, credit,sno,sname,sex, specially from course,student,grade,class1 where o = o and student.sno = grade.sno and class1.clsno = student.clsno and course.credit = 4;end proc_1;2、在MyDB中创建存储过程proc_2,要求实现如下功
17、能:输入专业名称,产生该专业学生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用此存储过程,显示“计算机应用”专业学生的选课情况列表。create or replacePROCEDURE proc_2(spec in varchar)as cno char(4);cname varchar(16);credit int;sno char(8);sname varchar(10);specially varchar(3);score numeric(4,2);BEGIN select class1.specially,student.sno,student.snam
18、e,o, ame,grade.score,course.credit into specially,sno,sname,cno,cname,score,credit from class1,student,course,grade where student.sno = grade.sno and o = o and student.clsno = class1.clsno and class1.specially = spec;end;3、在MyDB中创建存储过程proc_3,要求实现如下功能:输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分9,则显示“此学生学分不足!”,否
19、则显示“此学生学分已足!”,并调用此存储过程,显示“”学生的总学分情况。create procedure proc_3(sno1 char(8)as declare Total tinyint;begin select Total=sum(course.credit) from course,student,gradewhere student.sno = grade.sno and o = o and student.sno = sno1if Total 9 print 此学生学分不足else print 此学生学分已足end;exec proc_3 三、修改存储过程1、对MyDB中已创建的
20、存储过程proc_1进行修改,要求在显示列表中增加班级字段,即产生学分为“4”的课程学生选课情况列表,其中包括课程号、课程名、学分、学号、姓名、专业、班级、性别等.alter PROCEDURE proc_1as cno char(4);clsname char(10);cname varchar(16);credit int;sno char(8);sname varchar(10);specially varchar(3);score numeric(4,2);BEGINselect o,ame,course.credit,student.sno,student.sname,student
21、.sex,class1.specially,class1.clanamefrom course,student,grade,class1where o = o and student.sno = grade.sno and class1.clsno = student.clsno and course.credit = 4;end;exec proc_1;2、在MyDB中创建的存储过程proc_2进行修改,要求实现如下功能:输入专业名称,产生该专业所有男生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用修改后的存储过程,显示“计算机应用”专业男生的选课情况列表。a
22、lter or replacePROCEDURE proc_2(spec in varchar)as cno char(4);cname varchar(16);credit int;sno char(8);sname varchar(10);specially varchar(3);score numeric(4,2);BEGIN select class1.specially,student.sno,student.sname,o, ame,grade.score,course.credit from class1,student,course,grade where student.sn
23、o = grade.sno and o = o and student.clsno = class1.clsno and student.sex = 男 and class1.specially = spec;end;exec proc_2 计算机应用;3、对MyDB中已创建的存储过程proc_3进行修改,要求实现如下功能:输入学生学号,根据该学生所选课程的总学分显示提示信息,如果总学分9 then dbms_output.put(此学生所选学分为:); dbms_output.put(total); dbms_output.put_line(此学生学分已足);else print 此学生所选
24、学分为:; print total; print 此学生学分不足; end if;end proc_3;call proc_3();call proc_3();call proc_3();四、删除存储过程:删除MyDB中的存储过程proc_1。drop procedure proc_1;五、创建触发器1、创建触发器trigger_1,实现当修改学生表(Student)中的数据时,显示提示信息“学生情况表被修改了”。create or replace TRIGGER TRIGGER_1AFTER INSERT OR UPDATE ON STUDENTBEGIN print 学生信息被修改了;END;insert into studentvalues (,曹操,男,MT04,江中路39#,22-11月-1993,1.88,8);2、在MyDB中创建触发器trigger_2,实现如下功能:当在学生成绩表(Grade)中删除一条学生选课信息后,自动实现更新该学生在学生情况表(Student)中的总学分信息。create or replace TRIGGER TRIGGER_2AFTER DELETE ON GRADEBEGIN update student set total
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西来宾忻城县国投控股集团有限责任公司招聘工作人员5人考试笔试模拟试题及答案解析
- 2025赤峰林西县中医蒙医医院招录12名控制数管理本科毕业生考试笔试模拟试题及答案解析
- 2025中国法官文学艺术联合会招聘2人考试笔试备考试题及答案解析
- 2025浙江宁波市奉化区区属国企领导人员选聘考察对象笔试考试备考试题及答案解析
- 北京市第四十四中学2026年招聘笔试考试备考试题及答案解析
- 2025下半年安徽合肥市梅山饭店有限公司社会招聘62人考试笔试备考题库及答案解析
- 2026云南保山天润高级中学教师招聘27人笔试考试参考试题及答案解析
- 2026湖南省气象部门事业单位招聘应届毕业生44人(第2602号)笔试考试参考试题及答案解析
- 无尘美容车间施工方案
- 空架式混凝土别墅施工方案
- 电气平行检验计划表格部分模板
- JG/T 421-2013土木工程用光纤光栅温度传感器
- 重症医学科护士述职报告
- 四川省成都市2025届高三上学期第一次诊断性考试化学检测试卷(附答案)
- 卒中后认知障碍风险预测模型的建立与评估2025
- 教育技术数字教材及教学服务平台建设方案
- 茶叶知识教学课件
- 健身教练个人简介简历
- 2025年中考数学总复习《二次函数与一次函数》专项测试卷(附答案)
- 中级经济师金融专业-2025中级经济师《金融专业实务》押题密卷1
- 地貌学与第四纪地质学知到智慧树章节测试课后答案2024年秋甘肃工业职业技术学院
评论
0/150
提交评论