实验 #12 从控制中心创建一个触发器

实验目标
触发器一种数据库对象,它会在数据表的数据发生改变时激发并执行指定的逻辑操作。在本实
验中,您会使用控制中心创建一个触发器,这个触发器出于审计的需要,会记录 SALES表的更改。
它将记录更改这个表的用户 ID和更改时间。
实验过程
1.  打开 控制中心。
 
2.  创建一个数据表用于记录信息。这个表的信息如下:
表名:saleslog(属于express库)
第一列:
  属性名:userid
  数据类型:VARCHAR(128)
  其它属性: NOT NULL
第二列
  属性名:daytime
  数据类型: TIMESTAMP
  其它属性: NOT NULL
  提示: 在命令编辑器(Command Editor)中使用CREATE TABLE语句或者控制中心里的
创建表向导(Create Table wizard)来创建这个表。
 
3.  在控制中心中展开EXPRESS数据库文件夹,右键单击 Triggers文件夹,然后选择创建
(Create)选项,打开创建触发器(Create Trigger)对话框。
 
4.  在对话框中输入下面的信息:
触发器模式(Trigger schema):您登录数据库的用户ID(应当为默认的设置)
触发器名字(Trigger name):audit_sales
数据表或者试图模式(Table or view name):您登录数据库的用户ID(应当为默认的设置)
表或视图名字(Table or view name):SALES
触发器激活时机(Time to trigger action):After
激活触发器的操作(Operation that causes the trigger to be executed):Update of columns
(不要指明属性列,因为我们想记录这个表任何的更新)
Comment: Logs all update actions on Sales table.
备注(Comment):填入“记录Sales表的所有更新”
 
5.  在触发器动作(Triggered action)标签页,选择For Each STATEMENT选项,在触发器动
作输入框中输入下面的语句:
WHEN ( 1=1 )
BEGIN ATOMIC
  INSERT INTO saleslog (userid, daytime) VALUES (CURRENT USER,CURRENT TIMESTAMP);
END
点击OK来创建一个触发器。
(注意:对于语句的触发器会在关联的触发语句执行完成后激活,对于行的触发器,会在关联的
触发语句操作完任意一行的时候激活。)
 
6.  现在您可以在控制中心的触发器(Triggers)文件夹中看到刚才创建的触发器。

7.  检索saleslog表,确保里面没有数据,如果里面有数据,请将它们全部删除(DELETE FORM salelog)。
 
8.  尝试更新 sale表的记录。(提示:使用命令编辑器Command Editor或者SQL帮助向导SQL Assist Wizard)

9.  再次检索 saleslog表的数据,您发现里面有什么?
update sales set price=5.82 where book_id=80024;
select * from saleslog;
userid        daytime
ZHJ        2009-07-29 09:52:42.515


实验 #13 使用 IBM Data Studio创建用户定义函数(UDF)

实验目标
在本实验中,您要使用 IBM Data Studio创建一个标量用户定义函数。您能够获得更多的使用
Data Studio经验,同样也能够提高您使用SQL PL创建用户定义函数的熟练程度。
 

实验 #14 - SQL/XML 和 XQuery

实验目标
至此,您已经看到为数不少的SQL/XML 和 XQuery语法示例,DB2命令编辑器和 IBM Data
Studio也已经做过介绍。本实验中,您可以测试您对SQL/XML 和 XQuery掌握的程度,同时获得这
些工具的动手经验。请使用“mydb”数据库完成这些练习,本章前面解释了创建这个数据库的
table_creation.txt脚本文件。
 
09-05 16:13