触发器的操作

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

存储过程
存储过程的基本概念 存储过程的定义 存储过程的执行 存储过程的删除
存储过程的基本概念
存储过程是RDBMS中的由一组SQL语句组成的程 序,存储过程被编译好后保存在数据库中 ,可以被反复调用,运行效率高。目前大 部分的RDBMS都提供了存储过程。
存储过程的基本概念
存储过程是可编程的函数,在数据库中创建 并保存,可以由SQL语句和控制结构组成。 当想要在不同的应用程序或平台上执行相 同的函数,或者封装特定功能时,存储过程 是非常有用的。数据库中的存储过程可以看 做是对编程中面向对象方法的模拟,它允许 控制数据的访问方式。
事件 insert Update delete
条件 after before
动作 SQL语句
After 条件
触发事件发生
执行触发事件
执行触发器动作
Before 条件 触发事件发生 执行触发器动作
执行触发事件
触发器的作用
对数据库中相关的表进行级联修改
撤消或回滚违反引用完整性的操作,防止非法修 改数据。
存储过程的基本概念
存储过程的优点:
(4).减少网络流量:针对同一个数据库对 象的操作(如查询、修改),如果这一操 作所涉及的Transaction-SQL语句被组织进 存储过程,那么当在客户计算机上调用该 存储过程时,网络中传送的只是该调用语 句,从而大大减少网络流量并降低了网络 负载。
存储过程的基本概念
每一个触发器一般都包括三个组成部分: 由BEFORE和AFTER关键字定
• 触发器名
义 , 使 用 BEFORE 则 表 示触发动作在触发事
• 触发器的触发事件
件之前出现,使用 AFTER则表示触发动作
• 触发器执行的操作
在触发事件之后。
触发器名即所创建的触发器的命名,触发器的触发事件是指 对表进行的插入(INSERT)、修改(UPDATE)、删除( DELETE)操作;触发器执行的操作是一个存储过程或一个批 处理,也即一个SQL的语句序列。
存储过程的执行
存储过程一经建立就可反复调用执行。 例:执行上例中创建的存储过程“学院学生总人数”。 带参调用: Call 学院学生总人数('01', @a); Select @a;
存储过程的删除
不再需要的存储过程可将其删除。
语法格式: DROP PROCEDURE <存储过程名>
触发器的操作
1.创建触发器 2.触发触发器 3.删除触发器
创建触发器
语法格式: CREATE TRIGGER 触发器名字 触发时间 触发事件 ON 表名 FOR EACH ROW BEGIN ... (SQL语句) END;
创建触发器
语法格式:
触发时间:是触发程序的动作时间。它可以是BEFORE 或AFTER
存储过程的基本概念
存储过程的优点:
(3).较快的执行速度:如果某一操作包含 大量的Transaction-SQL代码或分别被多次 执行,那么存储过程要比批处理的执行速 度快很多。因为存储过程是预编译的。在 首次运行一个存储过程时查询,优化器对 其进行分析优化,并且给出最终被存储在 系统表中的执行计划。而批处理的 Transaction-SQL语句在每次运行时都要进 行编译和优化,速度相对要慢一些。
完成比检查约束更为复杂的约束操作
比较表修改前后数据之间的差别,并根据这些差 别来进行相应的操作
对 一 个 表 上 的 不 同 操 作 ( INSERT、UPDATE 或 者 DELETE)可采取不同的触发器,对一个表上的相 同操作也可调用不同的触发器进行不同的操作。
触发器的组成
1.触发器的组成
2.触发器动作时间:
触发事件:指明了激活触发程序的语句的类型。它可以 是下述值之一:
INSERT:将新行插入表时激活Байду номын сангаас发程序 UPDATE:更改某一行时激活触发程序 DELETE:从表中删除某一行时激活触发程序
创建触发器
【例】
DELIMITER $$ create trigger trigger_Insert BEFORE insert on 班级表 for each row begin
触发器
触发器(Trigger)可用 来对表实施复杂的完整性 约束,当对触发器所保护 的数据进行增、删、改操 作时,系统会自动激发触 发操作,以防止对数据进 行不正确的修改,从而实 现数据的完整性约束。触 发器基于一个表创建,但 可针对多个表进行操作。
触发器的作用 触发器的组成 触发器的操作
触发器结构
存储过程的基本概念
存储过程的优点:
(1).增强SQL语言的功能和灵活性:存储过 程可以用控制语句编写,有很强的灵活性 ,可以完成复杂的判断和较复杂的运算。
(2).标准组件式编程:存储过程被创建后 ,可以在程序中被多次调用,而不必重新 编写该存储过程的SQL语句。而且数据库专 业人员可以随时对存储过程进行修改,对 应用程序源代码毫无影响。
END
其中:<参数表列>用于指 定默认参数、输入参 数或输出参数。
例:定义一个存储过程,计算某学院学 生总人数 。
DELIMITER // CREATE PROCEDURE 学院学生总人数
(IN 院系编号输入 varchar(10), OUT 学生总人数输出 int) BEGIN SELECT SUM( 班 级 表 . 学 生 人 数 ) INTO 学生总人数输出 FROM 班级表 WHERE 班级表.院系编号=院系编 号输入; END // DELIMITER ;
SET NEW.学生人数= IF(NEW.学生人数>0, NEW.学生人数, -1); END $$
删除触发器
触发器不再需要时可将其删除。
语法格式: DROP TRIGGER [if exists <触发器名>;
例: 删除触发器trigger_Insert。 DROP TRIGGER trigger_Insert;
存储过程的优点:
(5).作为一种安全机制来充分利用:通过 对执行某一存储过程的权限进行限制,能 够实现对相应的数据的访问权限的限制, 避免了非授权用户对数据的访问,保证了 数据的安全。
存储过程的定义
语法格式:
CREATE PROCEDURE <存储 过程名> (参数列表)
BEGIN
<SQL语句组>;
相关文档
最新文档