数据库实验3.docx

上传人:hw****26 文档编号:3069113 上传时间:2019-05-20 格式:DOCX 页数:7 大小:36.81KB
下载 相关 举报
数据库实验3.docx_第1页
第1页 / 共7页
数据库实验3.docx_第2页
第2页 / 共7页
数据库实验3.docx_第3页
第3页 / 共7页
数据库实验3.docx_第4页
第4页 / 共7页
数据库实验3.docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、实验九触发器的创建与使用一、实验目的本实验的目的是使学生进一步掌握 SQL Server 触发器的创建及使用方法,加深 SQL 触发器的理解。通过对数据的更新操作体会其触发器的作用。二、实验准备 结合课堂教学内容,了解触发器的相关知识,掌握触发器的定义,理解触发器的使用方法及其特点。三、实验要求1. 掌握 T-SQL 创建触发器语句 Create trigger 的使用。2. 完成所规定的触发器定义要求。3. 通过数据查询检查触发器的使用效果。4.注意操作结果的截图与保存,供撰写实验报告使用。四、实验内容1. 在班级表 class 中增加班级人数(c_total)字段。alter table

2、class add c_total int;2. 为学生表(student)创建 INSERT 触发器 t_inst_stu:新增一名学生时,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动加 1。例: create trigger t_inst_stu on studentfor insertasbeginif exists(select*frominsertedwhereclsnoisnotnull)beginupdate class set c_total=c_total+1whereclsno=(selectclsnofrominserted);ende

3、nd3.为学生表(student)创建 DELETE 触发器 t_dele_stu:删除一名学生时,若其班级编号非空,则将班级表(class)中相应班级的人数(c_total)自动减 1。4. 为学生表(student)创建 UPDATE 触发器 t_update_stu:当某学生所在班号发生变化时(即调到另一班级后),将其原先所在班级的人数(c_total)减 1,将新调入的班级班级的人数(c_total)加 1。5. 体会触发器的作用。五、实验步骤在查询分析器中完成实验内容。1. 使用 alter table 语句 在班级表 class 中增加班级人数(c_total)字段,默认值(DEF

4、AULT) 是 0;对表中 c_total 字段的值进行修改。2. 为学生表(student)分别创建: INSERT 触发器 t_inst_stucreate trigger t_inst_stu on studentfor insertasbeginif exists(select* from inserted where clsno is not null)beginupdate class set c_total=c_total+1where clsno = (select clsno from inserted);endend DELETE 触发器 t_dele_stu create

5、 trigger t_dele_stu on student for delete as begin if exists(select* from deleted where clsno is not null) begin update class set c_total=c_total-1 where clsno = (select clsno from deleted); end end UPDATE 触发器 t_update_stu create trigger t_update_stu on student for update as if update(clsno) begin u

6、pdate class set c_total=c_total-1 where clsno = (select clsno from deleted) update class set c_total=c_total+1 where clsno = (select clsno from inserted) end3. 体会触发器的作用:1) 查看班级表(class)2)对学生表(student)分别插入(INSERT)、删除(DELETE)和修改(UPDATE)元组insert into student(sno,sname,ssex,clsNO,saddr,sage,height)values

7、(00000012,李同学, 男 ,000001,武汉,23, 17.53);delete student where sno=00000012;update student set clsNO=000001 where sno=00000002;3)再次查看班级表(class),检查其数据的变化情况,体会触发器的作用。实验十 存储过程的创建与使用一、实验目的本实验的目的是使学生进一步掌握 SQL Server 存储过程的创建及使用方法,加深对SQL 存储过程的理解。通过对存储过程的调用体会其作用。二、实验准备 结合课堂教学内容,了解存储过程的相关知识,掌握存储过程的定义,理解存储过程的调用及

8、其参数的使用方法。 三、实验要求1. 掌握 T-SQL 创建触发器语句 Create procedure 的使用。2. 完成所规定的存储过程定义要求。3. 调用( EXEC)所创建的过程,检查过程的执行结果。4.注意操作结果的截图与保存,供撰写实验报告使用。四、实验内容1、创建一个不带参数的存储过程 p_stu_info1,实现对满足要求的学生基本信息的查询。Create procedure p_stu_info1 asbeginselect * from student where sage24 and ssex=男;endexec p_stu_info1;要求:所有年龄24 岁的男同学2、

9、创建一个存储过程 p_stu_info3,根据输入的学号,查询某学生的基本信息。Create procedure p_stu_info3 findsno char(8)asbeginselect * from student where sage = (select sage from student where sno = findsno);endexec p_stu_info3 00000001;要求:输入参数为学号,与指定学号的学生同龄的所有同学。3、创建一个带有参数的存储过程 p_stu_info2,实现对满足要求的学生基本信息的查询。Create procedure p_stu_in

10、fo2 findsno char(8)asbeginselect * from student where sno = findsno;endexec p_stu_info2 00000001;要求:输入参数为学号。4.创建一个存储过程 p_stu_grade,根据输入的学号,返回其选课及其成绩。要求:输入参数为学号。Create procedure p_stu_gradefindsno char(8)asbeginselect cname,grade from course inner join sc on o=o where sno = 00000002 ;endexec p_stu_grade 00000002;5.使用 SQL 语句分别执行 p_stu_info1、p_stu_info2、p_stu_info3 和p_stu_grade,并查看显示结果。五、实验步骤在查询分析器中完成实验内容。【附录 1 实验报告格式 】计算机与信息学院实验报告专 业 班 级学生姓名及学号课程教学班号任 课 教 师实验指导教师实验地点20 20 学年第 学期实验 1 *一、 实验目的.二、 实验要求三、 实验内容.四、实验步骤五、实验总结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。