大数据库实验6触发器实验报告材料

合集下载

[计算机]数据库实验报告六

[计算机]数据库实验报告六

____专业__日期:实验六:存储过程与触发器的应用一、实验目的1、掌握创建存储过程的方法和步骤。

2.掌握存储过程的使用方法。

3.掌握创建触发器的方法和步骤。

4.掌握触发器的使用方法。

二、实验内容1、存储过程的创建、执行和删除;2、触发器的创建、执行和删除。

三、实验步骤1、存储过程的创建、执行和删除。

(1)使用S_C数据库中的student表、course表;sc表创建一个带参数的存储过程—cjjicx。

该存储过程的作用是:当任意输入一个学生的XX时,将从三个表中返回该学生的学号、选修的课程名称和课程成绩。

Cjjicx的创建语句:createprocedure[dbo].[cjjicx]@sname nchar(10)asselect s.sno,ame,sc.gradefrom student as s innerjoin sc as sc on s.sno=sc.sno innerjoin course as c on o= owhere sname=@sname(2)执行cjjicx存储过程,查询“XXX”(自己选个名字)的学号、选修课程和课程成绩。

执行语句:结果描述:(3)使用系统存储过程sp_helptext查看存储过程cjjicx的文本信息。

查看结果描述:(4)使用S_C数据库中的student表,为其创建一个存储过程—jmxs。

该存储过程的作用是:当执行该存储过程时,将返回物流工程系学生的所有信息。

Jmxs创建语句:(5)执行jmxs存储过程,查看物流工程系学生的情况。

执行语句:结果描述:(6)删除jmxs存储过程。

删除语句:2、触发器的创建、执行和删除。

(1)在S_C数据库中建立一个名为insert_xh的INSERT触发器,存储在sc表中。

该触发器的作用是:当用户向sc表中插入记录时,如果插入了在student表中没有的学生学号sno,则提示用户不能插入记录,否则提示记录插入成功。

触发器实验报告

触发器实验报告

触发器实验报告触发器实验报告引言:触发器是数字电路中一种重要的元件,它能够存储和处理信息。

在本次实验中,我们将学习并探索触发器的工作原理、应用以及相关的实验。

一、触发器的工作原理触发器是一种具有两个稳定状态的电子开关,它能够在特定的输入条件下切换状态。

触发器的工作原理基于存储元件的特性,通过输入信号的变化来触发状态的改变。

二、RS触发器实验RS触发器是最简单的一种触发器,它由两个交叉连接的反馈回路组成。

在本次实验中,我们将通过构建一个RS触发器电路来深入理解其工作原理。

1. 实验材料和仪器本次实验所需材料包括电路板、电源、电阻、开关、LED灯等。

仪器包括示波器、数字万用表等。

2. 实验步骤(1)按照电路图连接电路板上的元件,确保连接正确且紧固。

(2)接通电源,调整电压至合适范围。

(3)使用示波器和数字万用表测量电路的输入和输出信号。

(4)按下开关,观察LED灯的亮灭情况,并记录数据。

(5)根据实验数据分析触发器的工作状态和逻辑。

3. 实验结果与分析通过实验测量数据,我们可以观察到RS触发器在不同输入条件下的状态变化。

当输入为00或11时,触发器的状态保持不变;当输入为01或10时,触发器的状态发生改变。

这说明RS触发器能够存储信息,并且在特定输入条件下进行状态切换。

三、JK触发器实验JK触发器是一种基于RS触发器改进而来的触发器,它具有更多的功能和应用场景。

在本次实验中,我们将学习JK触发器的原理和特性。

1. 实验材料和仪器本次实验所需材料和仪器与RS触发器实验相同。

2. 实验步骤(1)按照电路图连接电路板上的元件,确保连接正确且紧固。

(2)接通电源,调整电压至合适范围。

(3)使用示波器和数字万用表测量电路的输入和输出信号。

(4)按下开关,观察LED灯的亮灭情况,并记录数据。

(5)根据实验数据分析JK触发器的工作状态和逻辑。

3. 实验结果与分析通过实验测量数据,我们可以观察到JK触发器在不同输入条件下的状态变化。

触发器实验报告

触发器实验报告

触发器实验报告一、实验目的本次实验的目的是理解触发器(Flip-Flop)的工作原理和应用,并通过实验验证其稳定性和可靠性。

二、实验原理触发器是一种通过外部信号控制内部状态的电路装置,常用于数字逻辑电路中。

通过输入的控制信号,触发器可以切换输出信号的状态。

常见的触发器有RS触发器、D触发器、JK触发器等。

其中,RS触发器通过两个控制输入S和R来控制输出状态,D触发器只有一个输入D,通过时钟信号来控制状态,JK触发器则同时具备RS和D触发器的功能。

在实验中,我们使用了RS触发器和JK触发器,并通过控制输入信号和时钟信号进行实验观察。

三、实验步骤1. 按照电路图连接电路,将电路连接好后进行电源连接。

2. 先测试RS触发器,调整S和R的状态,观察输出状态并记录。

3. 然后测试JK触发器,调整J和K的状态及时钟信号,观察输出状态并记录。

4. 对比两种触发器的输出状态,并分析其原因。

五、实验结果与分析通过实验观察,我们可以发现,RS触发器具有一定的稳定性,但在输入信号不清晰或时钟信号干扰的情况下会出现状态错乱的情况。

而JK触发器具有更高的可靠性,能够在各种输入信号和时钟信号的情况下稳定输出。

这是因为JK触发器具有更灵活的控制方式,能够通过J和K的状态同时控制输出状态,在使用时比RS触发器更加方便。

六、总结本次实验通过观察和分析不同类型的触发器,加深了我们对数字电路中触发器的理解和应用。

在实际应用中,应根据具体需求选择不同类型的触发器,并注意输入信号和时钟信号的干扰,保证电路的准确性和可靠性。

实验六 触发器实验报告

实验六 触发器实验报告

实验五 触发器实验报告[实验目的]1. 理解Oracle 触发器的种类和用途2. 掌握行级触发器的编写[预备知识]1. PL/SQL 程序设计[实验原理]1. 建立触发器CREATE [OR REPLACE] TRIGGER <触发器名>BEFORE|AFTERINSERT|DELETE|UPDATE OF <列名> ON <表名>[FOR EACH ROW]WHEN (<条件>)<PL/SQL 程序块>ON 子句中的名称识别与数据库触发器关联的数据库表触发器事件指定了影响表的 SQL DML 语句 ( INSERT 、 DELETE 或 UPDATE)AFTER 指定了触发器在处理完成后触发BEFORE 指定了触发器在处理完成前触发默认情况下,触发器每个表触发一次FOR EACH ROW 选项指定触发器每行触发一次(即触发器为行级触发器)要使触发器触发,WHEN 子句中布尔型表达式的值必须判定为 TRUE可以将 REPLACE 添加到 CREATE 语句以自动删除和重建触发器2. 行级触发器中引用表数据在行级触发器中,使用伪记录来表示旧数据:old 和新数据:new引用示例::new.customer_name, :old.customer_name3. 行级触发器中的谓词在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:触发事件 :old :newInsert 无定义,所有字段都是NULL该语句完成后插入的值Update 更新前该行的旧值 更新后该行的值Delete 删除前该行的值 无定义,所有字段inserting,updating,deleting。

示例:IF Inserting THEN语句;END IF;IF Updating THEN语句;END IF; IF Deleting THEN语句;END IF;4.触发器的限制SELECT 语句必须是SELECT INTO 语句或内部游标声明。

实验六 触发器实验报告

实验六 触发器实验报告

实验六触发器实验报告
触发器是数据库中非常重要的组成部分,它可以触发特定的动作,多用于数据库的实时更新和存储过程的管理。

本次实验主要了解不同类型的触发器,应用在增删改查动作中的效果,以增强数据库安全性和完整性。

首先,我们创建库,然后建立一张名为学生信息的表,用于存放学生的信息,包括姓名、学号、性别等,再建立一张名为考试成绩的表,用于存放考试成绩,包括课程名称、成绩等。

接着,我们分别使用表级、行级、语句级的触发器来监视学生信息和考试成绩表的增删改查操作,可以通过结果看出触发器的效果。

例如,使用表级触发器,在插入新学生信息或修改存在学生信息时,触发器会自动根据触发条件将其记录在日志表中;使用行级触发器,当有学生成绩超过及格线时,改变考试成绩的状态;使用语句级触发器,当考试成绩有更新时,将记录学生更新信息。

通过本次实验,我们能够熟悉触发器的使用,学会不同类型触发器之间的区别以及应用在数据库操作上的效果,大大提高了数据库的安全性和完整性。

数据库实验六报告

数据库实验六报告

实验项目SQL Server 2000中数据库完整性约束触发器设置所属课程数据库原理实验目的1)熟悉通过SQL对数据进行完整性约束触发器控制。

2)完成作业的上机练习。

实验环境SQL Server 2000 window XP实验内容要求:在SQLSERVER2000中利用SQL语句完成以下操作。

1)通过SQL对表建立完整性约束。

2)通过SQL创建插入触发器。

3)通过SQL创建删除触发器。

4)通过SQL创建更新触发器实验过程1)复制生成xscj数据库的代码并运行。

2)为student表的年龄字段增加名为Checkage约束条件,限制年龄介于15到25之间。

3)为student表建立触发器Sinsert,如果student表中插入一条记录,则取消插入并提示错误。

4)为student表建立触发器Smodi,如果student表中某一学生年龄加1,则SC表中该学生的各门成绩都加15)为student表建立触发器Sdel,如果student表中某一学生删除,则SC表中该学生记录也删除。

实验结果及分析1.首先打开SQL查询分析器,复制生成xscj数据库的代码并运行实验操作步骤通过SQL Server 2000软件运行后所得截图如下:2:新建约束条件checkage:3:测试sinsert触发器:4.建立触发器Smodi:运行smodi触发器,当学好为2002151121的学生的年龄加一,sc表中,该同学的成绩加1.5:创建触发器sdel:运行sdel触发器,如图,删除学号为2002151121的在student表中的学生记录,相应的SC表中的记录也删除了。

实验心得总结通过这次的实验,我熟悉掌握了通过SQL对表建立完整性约束,了解了创建插入触发器,更加深入地学习了数据库的一些知识,充分地运用SQL软件的功能。

在为student表建立触发器Sdel,如果student表中某一学生删除,则SC表中该学生记录也删除的过程中存在着很多困难,多次运行失败,我通过查询资料以及翻阅课本知识,深入了解触发器的一些知识,对问题有了一些头绪,能够运行成功,基本解决的这个问题。

实验六 触发器

实验六  触发器

实验六触发器一、实验目的1. 学习触发器逻辑功能的测试方法。

2. 熟悉基本RS触发器的组成、工作原理和性能。

3. 熟悉集成JK触发器和D触发器的逻辑功能及触发方式。

二、实验原理触发器具有两个稳定状态,用以表示逻辑状态“1”和逻辑状态“0”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一个具有记忆功能的二进制信息存储器件,是构成各种时序电路的最基本的逻辑单元。

1.基本RS触发器基本RS触发器是一种无时钟控制的低电平直接触发的触发器。

它具有置“0”、置“1”和“保持”三种功能。

通常S端为置“1”端,因为S=0时触发器被置“1”;R为置“0”端,因为R=0时触发器被置“0”;当S=R=1时,状态保持。

基本RS触发器可以用两个“与非门”(如图6-1)或两个“或非门”组成。

2.JK触发器在输入信号为双端输入的情况下,JK触发器是功能完善、使用灵活和通用性较强的一Q+K Q n,J和K是数据输入端,是触发器状态更新的种触发器。

其状态方程为:Q n+1=J n依据,若J、K有两个或两个以上输入端时,组成“与”的关系。

Q与Q为两个互补输出端,通常把Q=0、Q=1的状态规定为触发器的“0”状态;而把Q=1、Q=0规定为“1”状态。

JK触发器输出状态的更新发生在CP脉冲的下降沿。

JK触发器通常被用作缓冲存储器、移位寄存器和计数器等。

3.D触发器在输入信号为单端输入的情况下,D触发器用起来比较方便。

它的状态方程为:Q n+1=D n,其输出状态的更新发生在CP脉冲的上升沿,所以又称为上升沿触发的边沿触发器。

触发器的状态只取决于时钟到来前D端的状态,D触发器可用作数字信号的寄存、移位寄存、分频和波形发生等。

4.触发器间的转换在集成触发器中,每一种触发器都有自己固定的逻辑功能。

我们可以利用转换的方法获得具有其它功能的触发器。

例如将JK触发器转换成T和Tˊ触发器,也可将JK触发器转换成D触发器。

三、实验仪器及器件1. DS1052E型示波器2. EL-ELL-Ⅳ型数字电路实验系统3. 器件:集成电路芯片74LS00 74LS112 74LS74四、实验内容及步骤1.基本RS 触发器的逻辑功能测试在实验仪上选用74LS00,按图6-1连接实验电路,即为基本RS 触发器。

实验六 触发器实验报告

实验六 触发器实验报告

实验六触发器实验报告一、实验目的本次实验的主要目的是深入理解触发器的工作原理和应用,通过实际操作和观察,掌握触发器在数字电路中的功能和特性。

二、实验原理触发器是一种具有记忆功能的基本逻辑单元,能够存储一位二进制信息。

常见的触发器类型有 SR 触发器、JK 触发器、D 触发器和 T 触发器等。

以 D 触发器为例,其工作原理是在时钟脉冲的上升沿或下降沿,将输入数据D 传递到输出端Q。

在没有时钟脉冲时,输出状态保持不变。

三、实验设备与材料1、数字电路实验箱2、 74LS74 双 D 触发器芯片3、示波器4、导线若干四、实验内容与步骤1、用 74LS74 芯片搭建 D 触发器电路将芯片插入实验箱的插座中,按照芯片引脚功能连接电源、地和输入输出引脚。

使用导线将 D 输入端连接到逻辑电平开关,将时钟输入端连接到脉冲信号源,将 Q 和 Q'输出端连接到发光二极管或逻辑电平指示器。

2、测试 D 触发器的功能置 D 输入端为高电平(1),观察在时钟脉冲作用下 Q 输出端的变化。

置 D 输入端为低电平(0),再次观察时钟脉冲作用下 Q 输出端的变化。

3、观察 D 触发器的异步置位和复位功能将异步置位端(PRE)和异步复位端(CLR)分别连接到逻辑电平开关,测试在置位和复位信号作用下触发器的状态。

4、用示波器观察时钟脉冲和 Q 输出端的波形将示波器的探头分别连接到时钟脉冲输入端和 Q 输出端,调整示波器的设置,观察并记录波形。

五、实验结果与分析1、在 D 输入端为高电平时,每当时钟脉冲的上升沿到来,Q 输出端变为高电平;在D 输入端为低电平时,每当时钟脉冲的上升沿到来,Q 输出端变为低电平,验证了 D 触发器的正常功能。

2、当异步置位端(PRE)为低电平时,无论其他输入如何,Q 输出端立即变为高电平;当异步复位端(CLR)为低电平时,Q 输出端立即变为低电平,表明异步置位和复位功能有效。

3、从示波器观察到的波形可以清晰地看到时钟脉冲与 Q 输出端的关系,进一步验证了触发器的工作特性。

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

淮海工学院计算机工程学院实验报告书课程名:《数据库原理及应用》题目:存储过程和触发器班级:软件132学号: 2013122907姓名:孙莹莹评语:成绩:指导教师:批阅时间:年月日一.目的与要求1.掌握存储过程的创建方法;2.掌握存储过程的执行、修改和删除等操作;3.掌握触发器的创建方法;4.掌握触发器的使用、修改和删除等相关内容二.实验内容基于前面建立的factory数据库,使用T-SQL语句完成如下各小题的功能:1.创建一个为worker表添加职工记录的存储过程Addworker;2.创建一个存储过程Delworker删除worker表中指定职工号的记录。

3.显示存储过程Delworker;4.删除存储过程Addworker和Delworker.三.实验步骤1 .(1)建立存储过程USE factoryGOCREATE PROCEDURE Addworker@no int=NULL,@name char(10)=NULL,@sex char(2)=NULL,@birthday datetime=NULL,@na char(2)=NULL,@wtime datetime=NULL,@depno int=NULLASIF @no IS NULL OR @name IS NULL OR @sex IS NULL OR@birthday IS NULL OR @depno IS NULLBEGINPRINT '请重新输入该职工信息!'PRINT '你必须提供职工号、姓名、性别、出生日期、部门号'RETURNENDBEGIN TRANSACTIONINSERT INTO workerVALUES(@no,@name,@sex,@birthday,@na,@wtime,@depno)IF @@error<>0BEGINROLLBACK TRANRETURNENDCOMMIT TRANSACTIONPRINT '职工'+@name+'的信息成功添加到表worker中'(2)验证存储过程USE factoryGOAddworker 20,'陈立','女','55/03/08','否','75/10/10',4GOSELECT 职工号,姓名,性别,党员否 FROM workerGO2.(1)建立存储程序USE factoryGOCREATE PROCEDURE Delworker@no int=NULLASIF @no IS NULLBEGINPRINT '必须输入职工号!'RETURNENDBEGIN TRANSACTIONDELETE FROM worker WHERE 职工号=@noIF @@error<>0BEGINROLLBACK TRANRETURNENDCOMMIT TRANSACTIONPRINT '成功删除职工号为'+CAST(@no AS CHAR(2))+'的职工记录' 执行下列语句,可验证存储过程的正确性:USE factoryGODelworker 20GOSELECT 职工号,姓名,性别,党员否 FROM workerGO3.USE factoryGOEXEC sp_helptext DelworkerGO4.USE factoryGOIF EXISTS (SELECT name FROM sysobjectsWHERE name = 'Addworker' AND type ='P') DROP PROCEDURE AddworkerGOIF EXISTS (SELECT name FROM sysobjectsWHERE name = 'Delworker' AND type ='P') DROP PROCEDURE DelworkerGO5.建立触发器depart_update的程序如下:USE factoryGOIF EXISTS (SELECT name FROM sysobjectsWHERE type='TR' AND name='depart_update')DROP TRIGGER depart_updateGOCREATE TRIGGER depart_update ON departAFTER UPDATEASDECLARE @olddepno int,@newdepno intSELECT @olddepno=部门号FROM deletedSELECT @newdepno=部门号FROM inserted UPDATE workerSET 部门号=@newdepnoWHERE 部门号=@olddepnoGO执行下列语句,可验证存储过程的正确性:USE factoryGOPRINT '将部门号改为'UPDATE departSET 部门号=105WHERE 部门号=101GOSELECT 职工号,姓名,部门号FROM workerGOPRINT '将部门号改为'UPDATE departSET 部门号=101WHERE 部门号=105GOSELECT 职工号,姓名,部门号FROM workerGO6.建立触发器worker_delete的程序如下:USE factoryGOIF EXISTS(SELECT name FROM sysobjectsWHERE type='TR'AND name='worker_delete')DROP TRIGGER worker_deleteGOCREATE TRIGGER worker_delete ON workerFOR DELETEASDECLARE @no intSELECT @no=职工号FROM deletedDELETE FROM salaryWHERE职工号=@noGO执行下列语句,可验证存储过程的正确性:USE factoryGOPRINT'删除前的工资记录'SELECT*FROM salaryGODELETE FROM workerWHERE职工号=15GOPRINT'删除职工号为的职工记录后的工资记录'SELECT*FROM salaryGO7.删除触发器depart_update的程序如下:USE factoryGODROP TRIGGER depart_updateGO8.删除触发器worker_delete的程序如下:USE factoryGODROP TRIGGER worker_deleteGO四.测试数据与实验结果第1题图第2题图第3题图第5题图第6题图五.结果分析与实验体会CREATE PROCEDURE语句允许创建、编译并在MS-SQL Server上保存存储过程。

在默认情况下,只有数据库拥有者(DBO)具有对数据库的CREATE PROCEDURE访问权。

但是,DBO可执行以下形式的GRANT语句向由语句中的<username>所标识的用户ID授予CREATE PROCEDURE访问权: GRANT CREATE PROCEDURE <username>CREATE PROCEDURE语句的句法如下:CREATE PROCEDURE <procedure name> [;<version number>][{@<parameter name><data type> [VARYING][=<default value>] [OUTPUT][…,n]}][WITH {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}][FOR REPLICATION]AS <Transact-SQL statement(s)>其中:<procedure name>是存储过程的名称,名称至多可有128个字符。

<version number>允许创建多个有相同名称的存储过程。

通过在执行命令中包括版本号从而执行指定版本的存储过程,如下面的语句所示:EXEC usp_proc;2。

如果调用存储过程时没有指定版本号,DBMS将执行具有相同名称的存储过程组中最高版本号的存储过程。

通过在DROP语句中包括版本号,如DROP PROCEDURE usp_proc;2所示,可以删除特定版本号的存储过程,或者忽略版本号,如DROP PROCEDURE usp_proc从而一次删除存储过程的所有版本。

<parameter name>是可用作存储过程中的变量的参数名。

每个参数的值必须在存储过程调用中提供或者作为CREATE PROCEDURE语句的一部分设置为缺省值。

虽然参数可用作存储过程中的变量名,但参数不能用作列名、表名或是其他数据库对象的名称。

<data type>是参数的数据类型。

参数可以是任何合法的SQL数据类型(包括TEXT、NTEXT和IMAGE)或用户定义的数据类型。

如果参数是CURSOR数据类型,该参数还必须被指定为VARYING和OUTPUT。

VARYING仅对数据类型为CURSOR的参数才是合法的。

指明该参数将包括内容会变化的结果集,其内容由存储过程中的语句动态地构成。

<default value>是参数的默认值。

如果指定,则过程可在不指定参数的情况下执行。

OUTPUT指明参数在存储过程中可以变化,而且修改后的值可返回给主调过程。

…,n指明CREATE PROCEDURE语句可有多达2100个参数。

RECOMPILE每当存储过程被调用时告诉MS-SQL Server都要进行编译(也就是生成新的执行计划)。

如果没有此选项项,DBMS在执行CREATE PROCEDURE语句时编码存储过程,每次调用时都使用同一执行计划。

ENCRYPTION告诉MS-SQL Server加密SYSCOMMENTS表中存储过程条目的文本,以防止用户查看编译后的存储过程中的语句。

指定此选项还可防止存储过程被除数作为MS-SQL Server的复制过程而分开。

由于创建的触发器在条件成立时会自动被调用,可能影响后面示例的执行,所以当一个触发器不再需要时,需将其禁用,禁用trigop触发器的操作是:选中factory表节点,展开下方的触发器节点,右击trigop,在出现的快捷菜单中选择禁用命令。

相关文档
最新文档