MySql数据库触发器学年论文.doc_第1页
MySql数据库触发器学年论文.doc_第2页
MySql数据库触发器学年论文.doc_第3页
MySql数据库触发器学年论文.doc_第4页
MySql数据库触发器学年论文.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

数学与计算科学学院学年论文(课程设计)题 目 触发器在MySQL数据库中的应用 姓 名 吴碧青 学 号 1309401050 专业年级 2013级信息与计算科学 指导教师 李玉梅副教授 2015年 12 月10 日学年论文(课程设计)成绩评定表评价项目评 价 指 标分值评分学习态度与工作量学习态度认真,自觉遵守纪律;工作作风严谨务实,能虚心地接纳老师的指导;工作量饱满,按期圆满完成规定的任务。10文献查询与英文翻译能独立查阅文献和从事其他形式调研;能较好理解课题任务并提出实施方案;具有收集、整理各种信息及获取新知识的能力,查阅文献有一定广泛性;英文翻译符合规定要求,译文准确,质量好; 20研究水平与实际能力能独立开展研究工作;能熟练掌握和运用所学专业基本理论、基本知识和基本技能分析解决相关理论和实际问题;实验设计合理,实验数据准确可靠,理论分析与计算正确;有较强的实际动手能力、经济分析能力和现代技术应用能力。30组织结构与表达水平论文结构严谨,层次清晰,结论正确,技术用语准确;行文流畅,语句通畅;论文格式符合规范要求;图表完备、整洁,符号统一,编号齐全。30学术创新与应用价值具有一定的学术水平或应用价值;对与课题相关的理论或实际问题有较深刻的认识,有新的见解,有一定的创新。10 总分: 指导教师评定意见:指导教师签名:年 月 日学院意见:院长(签字): 年 月 日触发器在MySQL数据库中的应用摘要触发器是SQL server提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表的事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发。我们这篇文章中提到的是三个基本触发器的相关应用,当我们对一个表进行操作插入、更新、删除时来然后去激活它执行。在本文中阐述了三种常见的触发器:insert触发器、delete触发器、update触发器,而这三种触发器是在MySQL数据库中的应用的比较广泛,实用性也很强。这三种触发器都可以查询其他表,也可以包含复杂SQL语句。它们主要用于强制服从复杂的业务规则或要求。我们可以利用这三个触发器来改变一些数据库表中的数据,比如:当教师的底薪升高了,而我们需要改变教师表和工资表中底薪我们就可以用触发器来实现同时把两个表中的信息修改到自己想要的值。关键词触发器、insert触发器、delete触发器、update触发器Application of trigger in MySQL databaseAbstractThe trigger is a way to ensure data integrity by server SQL, which is a special storage process associated with a table event. It is not a program call, nor a manual, but an event. The relevant application of the three basic triggers, when we use a table to insert, update, delete, and then activate it.In this paper, three kinds of common triggers are described in this paper: insert, delete, update, and these three kinds of flip flops are widely used in MySQL database. These three triggers can query other tables, also can contain complex SQL statements. They are mainly used to enforce compliance with complex business rules or requirements. We can change some database table data, using the three triggers such as: when the teachers salary has increased, and we need to change the teachers salary and wage table table we can use triggers to implement the two tables in the information you want to modify the value. Key wordsTrigger、insert Trigger、delete Trigger、update Triggerii1 前言触发器是一个被指定关联到一个表的数据库对象,当对一个表的特定事件出现时,它将被激活。我们将要提到的触发器是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。我们根据触发的事件,可分为insert, delete和update等等触发器。下文我们将建立一个insert触发器,从insert触发器中调用SQL语句,然后在SQL语句中去执行相关的语句,从而实现insert触发器的功能,同时将从触发器的创建到执行再到删除来阐述这三个触发器的实际应用。2 触发器的创建和查看2.1 触发器创建的语法格式Create trigger Before | After on For each row 说明:trigger_name:触发器的名字,是触发器在改数据库中的唯一也是必须要具备的民称,在某个特定的数据库中建立的时候一定要加上它的数据库名称。trigger_event;所需要触发的事件,一般指的是插入、删除、更新等语句。trigger _statement:触发动作,包含了触发器需要执行的语句,当然如果需要使用多个语句的时候就需要用到beginand等复合语句。table_name:与触发器触发相关的表,但是同一个表中不能出现多个触发器。例2.1:创建一个表tb1,其中只有一列sjk,在表上创建一个触发器,每次插入操作时,将变量str的值设定为“trigger is ture”。Create table tbl (a integer);Create trigger tbl_insert after intsert on table tbl for each rowSet str =trigger is ture;向tbl中插入一行数据:Insert into tbl values(5);查看str的值:Select str; 图 2.1 执行触发器后的结果图2.2 触发器的查看查看触发器是指查看数据库中己存在的触发器的定义、状态和语法信自、等。查看当前数据库中的触发器语句为: show TRIGGERS ,但执行该语句显示的触发器信息较为混乱,可以在show TRIGGERS命令后加“G ,这样显示的信息相对而言更有条理。在MySQL数据库中,所有的触发器定义都存放在系统自带的数据库informationschema的triggers表中,所以可以通过语句“select * frominformation_ schema.triggers where trigger name=触发器名称”,查看满足指定条件的触发器,该方法更为实用。例2.2:查看数据库中已经存在的触发器:Show triggersG;图2.2 查看已有的触发器3 常见的触发器及相关应用3.1 insert触发器insert触发器可在insert语句执行之前或之后执行。需注意以下几点:在insert触发器代码内,可引用一个名为new的虚拟表,来访问被插入的行。在before insert触发器中,new中的值可被更新,即允许更改被插入的值(只要具有对应的操作权限)。对于auto_increment列,new在insert执行前包含的是0值,在insert执行之后将包含新的自动生成值。创建教师表TeacherCREATE TABLE Teacher ( Tno NUMERIC(4) Primary Key, Tname Char(10),/教师编号 Job CHAR(8),/教师职称 Sal Numeric(7,2)/工资 );、创建工资变化日志表Sal_log CREATE TABLE Sal_log(Tno NUMERIC(4) references teacher(Tno), Sal NUMERIC(7,2), Username char(20), Date TIMESTAMP );例3.1:下面创造一个触发器,创建一个before行级触发器Insert_Sal,实现当插入一条记录,该记录的job值为“副教授”,且工资小于4000时,自动将工资改为4000;Delimiter / (注释:使;失效由/来做结尾符)create trigger insert_sal before insert on teacher for each row begin if(new.job=副教授) and new.sal(4000)then set new .sal=4000;end if; end/3.1 insert触发器的应用图3.2 验证触发器3.2 delete触发器delete触发器可在delete语句执行之前或之后执行。在 delete触发器代码内,可以引用一个名为old的虚拟表,来访问被删除的行。但old中的值全部是只读的,不能被更新。3.3 update触发器相比insert触发器和delete触发器,update触发器既可使用new虚拟表,也可以使用old虚拟表。new虚拟表可以访问更新后的值,而old虚拟表可以访问、update语句执行前)的值。同样,old中的值全部是只读的,不能被更新。特别要注意的是,当触发器涉及对触发表自身的更新操作时,只能使用before update触发器,而after update触发器将不被允许。例3.2:如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);4 触发器的删除格式:drop TRIGGER 触发器名字

温馨提示

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

评论

0/150

提交评论