MySQL数据库应用项目式教程课件:创建触发器_第1页
MySQL数据库应用项目式教程课件:创建触发器_第2页
MySQL数据库应用项目式教程课件:创建触发器_第3页
MySQL数据库应用项目式教程课件:创建触发器_第4页
MySQL数据库应用项目式教程课件:创建触发器_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

创建触发器本节内容1.创建INSERT类型触发器2.创建DELETE类型触发器3.创建UPDATE类型触发器创建触发器触发器是一种特殊的存储过程,主要通过事件进行触发而自动执行。触发器可以在向数据表中插入、修改或删除数据时进行检查,以保证数据的完整性和一致性。创建触发器使用CREATETRIGGER语句。01创建INSERT类型触发器1.创建INSERT类型触发器在图形管理工具MySQL中对studb数据库中student表进行以下操作:(1)创建触发器tr_insert_student,该触发器功能为向学生表(student)中插入一行数据之前,检查total_credits字段,如果total_credits值小于5,则设置total_credits值为10,并进行测试。(2)创建触发器tr_insert_score,实现当向成绩表“score”插入一行数据时,根据成绩对学生表“student”的总学分进行修改。如果成绩>=60,总学分加上该课程的学分。否则总学分不变。【任务描述】任务要求在插入数据之前对学分进行检查,所以触发时刻用BEFORE关键字,题目要求是插入数据,因此触发事件用INSERT,题目要求向学生表(student)中插入数据,所以表名用student。【任务分析】1.创建INSERT类型触发器(1)创建触发器tr_insert_student。【任务实施】①在Navicat查询编辑器窗口输入以下SQL语句,并执行。1.创建INSERT类型触发器【任务实施】②在Navicat查询编辑器窗口输入以下SQL语句,并执行。INSERTINTOstudentVALUES('23000109','王泽','男','2004-04-13','信息工程系','22大数据1',2);③查看student表数据。插入语句中设置的total_credits字段值为2,但是student表中插入数据的total_credits字段值为10,说明我们创建的触发器起作用了。1.创建INSERT类型触发器(2)创建触发器tr_insert_score。【任务实施】①在Navicat查询编辑器窗口输入以下SQL语句,并执行,创建触发器tr_insert_score,并执行。1.创建INSERT类型触发器【任务实施】②在Navicat查看向score表插入数据之前student表中学号为“'23000103”学生的总学分total_credits。可以看出,在向score表插入数据之前学号为“'23000103”学生的总学分total_credits为17。1.创建INSERT类型触发器【任务实施】③在Navicat查询编辑器窗口输入以下SQL语句,并执行,向score表中插入一条数据。1.创建INSERT类型触发器【任务实施】④在Navicat查询编辑器窗口输入以下SQL语句,并执行,查看score表新插入的数据。SELECT*FROMscoreWHEREsno='23000103';可以看出,学号为“23000103”的学生成绩插入score表中了。1.创建INSERT类型触发器【任务实施】⑤在Navicat查询编辑器窗口输入以下SQL语句,并执行,查看student表中学号为“'23000103”学生的总学分total_credits。与第②步相比,学号为“23000103”学生的总学分total_credits由17变为20,说明触发器tr_insert_score起作用了,在向score表中插入数据后,激活触发器tr_insert_score执行,触发器将student表中对应学号学生的总学分total_credits进行了修改。02创建DELETE类型触发器2.创建DELETE类型触发器在图形管理工具Navicat中对studb数据库中student表进行以下操作:创建一个触发器tr_delete_student,该触发器功能为在学生表(student)中删除一个学生记录之前,删除该学生的所有成绩记录,并进行测试。【任务描述】在编写触发器tr_delete_student时,任务要求在删除学生记录之前删除该学生的成绩记录,所以触发时刻用BEFORE关键字,题目要求是删除数据,因此触发事件用DELETE,题目要求删除学生表(student)中学生记录,所以表名用student。【任务分析】2.创建DELETE类型触发器【任务实施】①在Navicat查询编辑器窗口输入以下SQL语句,并执行。2.创建DELETE类型触发器【任务实施】②在Navicat查询编辑器窗口输入以下SQL语句,并执行,删除学号为'23000101'的学生记录,然后查看score表中数据。对比上图可以看出,当执行完删除学号为'23000101'的学生记录后,score表中该学生对应的成绩也被删除了。DELETEFROMstudentsno='23000101';执行删除语句前score表中数据执行删除语句后score表中数据03创建UPDATE类型触发器3.创建UPDATE类型触发器在图形管理工具MySQL中对studb数据库中student表进行以下操作:创建一个触发器tr_update_student,该触发器功能为更新学生表(student)中更新total_credits字段之后将用户变量info值设置为“学分已更新”,并进行测试。【任务描述】在编写触发器tr_update_student时,任务要求在更新学生表(student)字段之后设置用户变量info的值,所以触发时刻用AFTER关键字,要求是更新数据,因此触发事件用UPDATE,任务要求对学生表(student)进行操作,所以表名用student。【任务分析】3.创建UPDATE类型触发器【任务实施】①在Navicat查询编辑器窗口输入以下SQL语句,并执行。3.创建UPDATE类型触发器【任务实施】②在Navicat查询编辑器窗口输入以下SQL语句,并执行,将学号为'23000102'的学生记录total_credits字段的值加1。当更新完学号为'23000102'学生的记录后,结果中显示“学分已更新”的提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论