首页 > 其他分享 >触发器实验

触发器实验

时间:2023-11-29 22:57:25浏览次数:30  
标签:触发器 SNAME SNO AGE 实验 Student StudentBak

1. 登录到PDB数据库,使用SCOTT/TIGER用户。

 

2. 创建表Student和StudentBak,结构相同,字段信息如下:

 

   名称      是否为空?   类型

   SNO       NOT NULL  NUMBER(4)

   SNAME         空     VARCHAR2(10)

   AGE           空     NUMBER(4)

 

3. 编写DML触发器,名称自定,使得Student表和StudentBak表的数据时刻都完全相同。以下是触发器的生成代码:

 

   ```

   CREATE TRIGGER trg_student

   BEFORE INSERT ON Student

   FOR EACH ROW

   BEGIN

     INSERT INTO StudentBak (SNO, SNAME, AGE)

     VALUES (:NEW.SNO, :NEW.SNAME, :NEW.AGE);

   END;

   ```

 

4. 在Student表上进行insert、update、delete操作。

 

5. 输出操作后的Student表和StudentBak表的数据。

 

实验结果:

 

1. 插入操作:

 

   在Student表插入一条数据,如下:

 

   ```

   INSERT INTO Student (SNO, SNAME, AGE)

   VALUES (1, '小花', 20);

   ```

 

   执行插入操作后,Student表和StudentBak表的数据相同。

 

2. 更新操作:

 

   更新Student表中的数据,如下:

 

   ```

   UPDATE Student

   SET SNAME = '小红'

   WHERE SNO = 1;

   ```

 

   执行更新操作后,Student表和StudentBak表的数据相同。

 

3. 删除操作:

 

   删除Student表中的数据,如下:

 

   ```

   DELETE FROM Student

   WHERE SNO = 1;

   ```

 

   执行删除操作后,Student表和StudentBak表的数据相同。

 

 

四、心得体会

通过本次实验,我对DML触发器的语法结构、定义方法和触发时机有了更深入的了解。在实际应用中,触发器可以有效地保证数据的一致性和完整性,提高了数据库管理的效率。同时,实验也锻炼了我灵活运用PL/SQL语言的能力

标签:触发器,SNAME,SNO,AGE,实验,Student,StudentBak
From: https://www.cnblogs.com/zhouzhengyang/p/17866106.html

相关文章

  • 实验5—C语言指针应用编程
    1、实验任务1task1_1源代码1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;1112......
  • 实验四 现代C++标准库与类模板
    task5textcoder.hpp#include<iostream>#include<string>usingstd::string;classTextCoder{private:stringtext;voidencoder();voiddecoder();public:TextCoder(string&str);TextCode......
  • 实验6:原型模式
    2.提交源代码(用C++完成);3.注意编程规范。#include<iostream> classVector{private:    int*data;//指向向量数据的指针    intsize;//向量的长度 public:    //构造函数    Vector(intsize){        this->size=size;   ......
  • 实验7:单例模式
     本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解单例模式的动机,掌握该模式的结构;2、能够利用单列模式解决实际问题。 [实验任务一]:学号的单一仿照课堂的身份证的例子,实现每个同学仅有一个学号这一问题。实验要求:1. 画出对应的类图;2.提交源代码;3.注......
  • 实验8:适配器模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图;2.提交源代码;3.注意编......
  • 实验9:桥接模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。#include<iostream>......
  • 实验4
    Textcoder.hpp#include<iostream>#include<string>usingnamespacestd;classTextcoder{public:Textcoder(stringt);stringget_ciphertext();stringget_deciphertext();private:stringtext;voidencoder();voiddeco......
  • 实验10:组合模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解组合模式的动机,掌握该模式的结构;2、能够利用组合模式解决实际问题。 [实验任务一]:组合模式用透明组合模式实现教材中的“文件夹浏览”这个例子。1.文件的执行不需真正实现,只需简单提示即可;2.提交源代码;3.......
  • 实验5
    实验任务1.1实验任务1.2实验任务2.1实验任务2.2实验任务3实验任务4.1 实验任务4.2 实验任务5.1实验任务5.2 实验任务6  实验任务7 ......
  • 实验八第二部分所需要的依赖
    <repositories><repository><id>alimaven</id><name>aliyunmaven</name><url>https://maven.aliyun.com/nexus/content/groups/public/</url></repository>......