




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
触发器课堂练习触发器课堂练习 1 1 当向当向 SC 表插入数据时 修改 或添加 表插入数据时 修改 或添加 SC NUMBER 包括学生学号和选课门数两列 包括学生学号和选课门数两列 表格中的数据 表格中的数据 create or replace trigger tr sc AR I after insert on sc for each row begin update sc number set scnum scnum 1 where sno new sno if sql notfound then insert into sc number values new sno 1 end if end 测试结果 测试结果 2 当删除当删除 SC 表中数据时 修改 或添加 表中数据时 修改 或添加 SC NUMBER 中的数据 中的数据 create or replace trigger tr sc AR D after delete on sc for each row begin update sc number set scnum scnum 1 where sno old sno select scnum into pk trigger tr scnum from sc number where sno old sno if pk trigger tr scnum 0 then delete from sc number where sno old sno end if end 测试结果 测试结果 3 当修改当修改 SC 表中数据时 若修改的是学号 则对应修改表中数据时 若修改的是学号 则对应修改 SC NUMBER 表中的选课门数 否则打印表中的选课门数 否则打印 某某 某 学生姓名 的学生选课信息已经修改某 学生姓名 的学生选课信息已经修改 信息 信息 create or replace trigger tr sc AR U after update on sc for each row begin if old sno new sno then select sname into pk trigger tr sname from student where sno new sno dbms output put line pk trigger tr sname 的学生选课信息已经修改 由原课程 trim o 修改为新课程 trim o end if if old sno new sno then update sc number set scnum scnum 1 where sno new sno if sql notfound then insert into sc number values new sno 1 end if update sc number set scnum scnum 1 where sno old sno select scnum into pk trigger tr scnum from sc number where sno old sno if pk trigger tr scnum 0 then delete from sc number where sno old sno end if end if end 测试结果 测试结果 触发器课堂练习触发器课堂练习 2 1 修改修改 STUDENT 表数据时 限制不能修改学生的系别 不能修改表数据时 限制不能修改学生的系别 不能修改 CS 系学生的系别 系学生的系别 create or replace trigger tr student BR U1 before update of sdept on student for each row when old sdept CS old前没有 begin raise application error 20001 不能修改CS系学生的系别 end 测试结果 测试结果 2 插入课程时 课程号以插入课程时 课程号以 S 开头的课程的学分不能低于开头的课程的学分不能低于 3 分 分 create or replace trigger tr course BR I before insert on course for each row when new credit90 begin raise application error 20003 不能删除90分以上学生的选课信息 end 测试结果 测试结果 练习练习 1 1 插入插入Student表中数据时 表中数据时 CS系学生的年龄不能大于系学生的年龄不能大于30岁 岁 create or replace trigger tr student BR I before insert on student for each row when new sage 30 and new sdept CS begin if new sage 30 and new sdept CS then raise application error 20004 CS系学生的年龄不能大于30岁 end if end 测试结果 测试结果 2 当修改当修改Student表中的年龄字段时 使其只能增加 不能减少 表中的年龄字段时 使其只能增加 不能减少 create or replace trigger tr student BR U before update of sage on student for each row when new sage 60 then raise application error 20006 不能删除平均分大于60的学生信息 end if if avg score 60 then delete from sc where sc sno old sno end if end 测试结果 测试结果 练习练习 2 在在Student表中添加列 表中添加列 sum Grade 总成绩 总成绩 avg grade 平均成绩 平均成绩 在在SC表中作一触发器 当添加 删除或修改一行之后 将该学生在表中作一触发器 当添加 删除或修改一行之后 将该学生在Student表中的总成绩和平均成绩相表中的总成绩和平均成绩相 应改变 应改变 create or replace package pk trigger is tr scnum smallint sc number表中的当前选课数量 tr sname student sname type tr cno o type 记录正在更新的课程号 tr newsno sc sno type 记录更新后的学生号 tr oldsno sc sno type 记录更新前的学生号 end pk trigger create or replace trigger tr sc BR I U D before insert or update or delete on sc for each row begin pk trigger tr newsno new sno pk trigger tr oldsno old sno end create or replace trigger tr sc AL I U D after insert or update or delete on sc declare v sum number v avg number begin 更新变化之前的学生的总分和平均成绩 select sum grade avg grade into v sum v avg from sc where sno pk trigger tr oldsno update student set sum grade v sum avg grade v avg where sno pk trigger tr oldsno 更新变化之后的学生总分和平均分 select sum grade avg grade into v sum v avg from sc where sno pk trigger tr newsno update student set sum grade v sum avg grade v avg where sno pk trigger tr newsno end 测试结果 测试结果 修改成绩修改成绩 修改学号修改学号 删除删除 练习练习 3 插入或修改 修改课程号时 选课信息时 若该课程的选课人数已满 则不允许操作 并抛出相应的错误插入或修改 修改课程号时 选课信息时 若该课程的选课人数已满 则不允许操作 并抛出相应的错误 提示 提示 create or replace package pk trigger is tr scnum smallint sc number表中的当前选课数量 tr sname student sname type tr cno o type 记录正在更新的课程号 tr newsno sc sno type 记录更新后的学生号 tr oldsno sc sno type 记录更新前的学生号 end pk trigger create or replace trigger tr sc BR IU before insert or update on sc for each row begin pk trigger tr cno o end create or replace trigger tr sc AL IU after insert or update on sc declare v snumber smallint v scnt smallint begin 查询课程最大选课人数 select snumber into v snumber from course where cno pk
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特斯拉玻璃贴膜施工方案
- 2026届辽宁省大连高新区名校联盟化学九年级第一学期期末综合测试试题含解析
- 福建省泉州市鲤城北片区2026届英语九上期末调研试题含解析
- 外挂坐板外墙施工方案
- 市场策划工作总结报告
- 培训工作亮点总结
- 2026届河南省洛阳市涧西区洛阳市九上化学期中复习检测模拟试题含解析
- 2026届山东省济南市中学化学九年级第一学期期末经典模拟试题含解析
- 儿童托管服务政策解读
- 2026届山东省滕州市张汪中学九年级英语第一学期期末监测试题含解析
- 医院死亡报卡培训课件
- catia考试图纸题目及答案
- pos机风险管理办法
- 2025年京东集团招聘笔试指南与面试技巧
- 起重机械定期检查与维护方案
- 2025年行业机器人边缘计算技术应用与场景分析
- 国际物流运输合同(标准版)
- 2025年江西省高考物理真题
- 肝癌的中西医治疗
- 芳华电影介绍模板课件
- 四川省高中信息技术会考试题
评论
0/150
提交评论