数据库原理与应用-------------触发器和视图

一,触发器

(一),触发器定义

   触发器是用户在关系表上的一类有事件驱动的特殊过程。

(二),触发器的组成

一个触发器有三个部分组成:

(1)事件。(即触发器在这些事件发生时将开始工作)

(2)条件。(即触发器启动的条件,如果满足条件,就执行相应的动作,否则什么也不做)

(3)动作。(触发器满足条件后,所执行的一系列动作)

(三),创建触发器

CREATE  TRIGGER  <触发器名称>

   ON  <表名>

{FOR | AFTER | INSTEAD OF }  <INSERT | IPDATE | DELETE >

AS  <SQL语句>

说明:

<INSERT | IPDATE | DELETE >:触发器事件,可以是输入,更新和删除,也可以是这些事件的组合。

<SQL语句>:包括触发条件和动作。

{FOR | AFTER | INSTEAD OF } :

INSTEAD OF:它的功能是不执行触发器事件(例如INSERT,DELETE),而是执行触发器中的SQL语句的操作。

FOR | AFTER:触发器中的SQL语句将在触发事件执行之后的数据库状态上执行。如果仅指定FOR关键字,则AFTER是默认设置。

(四),修改触发器

ALTER  TRIGGER  <触发器名称>

   ON  <表名>

{FOR | AFTER | INSTEAD OF }  <INSERT | IPDATE | DELETE >

AS  <SQL语句>

(五),删除触发器

DROP TRIGGER <触发器名称>

二,视图

(一),视图的定义

视图是一个虚表,用户能像操纵基本关系变量一样来操纵视图,而基本表发生改变时,对应的视图随之发生改变。

视图有用户定义,并为用户所使用。

(二),视图的创建

CREATE  VIEW  <视图名称>  [ ( <属性列名1> [,<属性列名2>, ... ] ) ]

  AS  子查询

[ WITH  CHECK  OPTION ]

说明:

(1)组成视图的属性列名或全部指定或全部省略。

(2)子查询可以是任意复杂的SELECT语句,但通常不包含ORDER BY子句和DISTINCT选项。

(3)选项[ WITH  CHECK  OPTION ]表示对视图进行UPDATE和INSERT操作时要保证修改和插入的元组必须满足视图定义的子查询所含的谓词条件。

(三),删除视图

DROP  VUEW  视图名称  【CASCADE];

【CASCADE]:如果视图上还导出了其他的视图,【CASCADE]选项可以把该视图和由它导出的所有视图一起删除,否则拒绝该操作。

(四),视图查询

视图定义后,用户可以像对基本表一样对视图进行查询。

(五),视图的更新

视图的更新指通过视图来插入,删除和修改数据。对视图的更新同意时要由系统将其转化为对基本表的更新操作。

 
(六),视图的作用

(1)视图提供了一个简化用户操作的快捷方式。

(2)视图支持多用户同时以不同的方式对相同的数据进行查询。

(3)视图对于隐蔽的数据自动提供安全保护。

(4)视图可以为用户