7实验七--触发器

7实验七--触发器
7实验七--触发器

实验七触发器

一、实验目的

(1)理解触发器的用途、类型和工作原理

(2)掌握利用T-SQL语句创建和维护触发器的方法

(3)掌握利用企业管理器创建、维护触发器的方法

二、实验容

1.创建after触发器

(1)创建一个在插入时触发的触发器sc_insert,当向sc表插入数据时,须确保插入的学号已在Student表中存在,并且还须确保插入的课程号在Course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件(注:Student表与sc表的外键约束要先取消)。

create trigger sc_insert

on sc

after insert

as

if not exists(select*from student,inserted

where student.sno=inserted.sno)

begin

print'插入信息的学号不在学生表中!'

if not exists(select*from course,inserted where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o) print'插入信息的课程号不在课程表中!'

rollback

end

else

begin

if not exists(select*from course,inserted where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o)

begin

print'插入信息的课程号不在课程表中!'

rollback

end

end

执行:

①、insert into SC

values('20110112','001','78')

删除外键约束:

alter table SC

drop constraint FK__SC__Sno__182C9B23

②、insert into SC

values('20110002','001','78')

③、insert into SC

values('20110002','006','78')

(2)为Course表创建一个触发器Course_del,当删除了Course表中的一条课程信息时,同时将表sc表中相应的学生选课记录删除掉。

create trigger course_del

on course

after delete

as

if exists(select*from sc,deleted

where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o)

begin

delete from sc

where https://www.360docs.net/doc/a713597295.html,o in(select o from deleted)

end

delete from Course

where Cno='003'

select*from SC

(3)在Course表中添加一个平均成绩avg_Grade字段(记录每门课程的平均成绩),创建一个触发器Grade_modify,当SC表中的某学生的成绩发生变化时,则Course表中的平均成绩也能及时相应的发生改变。

alter table Course

add avg_Grade smallint

update Course

set avg_Grade=(select AVG(Grade)from SC

where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o)

select*from Course

create trigger Grade_modify

on sc

after update

as

if update(grade)

begin

update course

set avg_grade=(select avg(grade)

from sc where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o

group by o)

end

update SC

set Grade='90'

where Sno='20050001'and Cno='001'

(4)测试上述三个触发器。

测试过程在(1)、(2)、(3)中均给出

2.创建instead of 触发器

(1)创建一视图Student_view,包含学号、、课程号、课程名、成绩等属性,在Student_view上创建一个触发器Grade_moidfy,当对Student_view中的学生的成绩进行修改时,实际修改的是sc中的相应记录。

create view Student_view

as

select s.Sno,Sname,https://www.360docs.net/doc/a713597295.html,o,Cname,Grade

from Student s,Course c,SC

where s.Sno=SC.Sno and https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o

select*from Student_view

create trigger Grade_moidfy

on Student_view

instead of update

as

if UPDATE(Grade)

begin

update SC

set Grade=(select Grade from inserted)where

Sno=(select Sno from inserted)and

Cno=(select Cno from inserted)

end

update Student_view

set Grade=40

where Sno='20110001'and Cno='002'

select*from Student_view

select*from SC

(2)在SC表中插入一个getcredit字段(记录某学生,所选课程所获学分的情况),创建一个触发器ins_credit,当更改(注:含插入时)SC表中的学生成绩时,如果新成绩大于等于60分,则该生可获得这门课的学分,且该学分须与Course表中的值一致;如果新成绩小于60分,则该生未能获得学分,修改值为0。

alter table SC

add getcredit smallint

select*from SC

update SC

set getcredit=(select credit from Course

where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o) where Grade>=60

update SC

set getcredit=0

where Grade<60

create trigger ins_credit

on SC

instead of update,insert

as

begin

declare s_no char(8),c_no char(3),new_grade smallint,cred smallint select s_no=sno,c_no=cno,new_grade=grade from inserted

select cred=credit from course where o=c_no

if(new_grade>=60)

begin

delete from SC where sno=s_no and o=c_no

insert into SC values(s_no,c_no,new_grade,cred)

end

else

begin

delete from SC where sno=s_no and o=c_no

insert into SC values(s_no,c_no,new_grade,0)

end

end

insert into SC(sno,cno,grade)values('20081800','002',85)

(3)测试上述两个触发器。

测试结果在(1)、(2)中均已给出

3. 使用T-SQL语句管理和维护

(1)用系统存储过程sp_helptrigger查看触发器Grade_modify的相关信息sp_helptrigger Student_view

(2)使用系统存储过程sp_helptext查看触发器Grade_modify中的定义容。sp_helptext Grade_moidfy

(3) 使用select语句查看触发器Grade_modify的定义容。

select o.id,c.text

from sysobjects o inner join syscomments c

on o.id=c.id

where o.type='TR'and https://www.360docs.net/doc/a713597295.html,='Grade_modify'

(4)用系统存储过程sp_depends查看触发器Grade_modify的相关性。

sp_depends Grade_modify

(5)将sc_insert触发器改为instead of 触发器,实现的功能不变。

drop trigger sc_insert

create trigger sc_insert

on sc

instead of insert

as

if not exists(select*from student,inserted

where student.sno=inserted.sno)

begin

print'插入信息的学号不在学生表中!'

if not exists(select*from course,inserted where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o) print'插入信息的课程号不在课程表中!'

rollback

end

else

begin

if not exists(select*from course,inserted where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o)

begin

print'插入信息的课程号不在课程表中!'

rollback

end

end

insert into SC

values('20110005','001','78','6')

(6)将触发器sc_insert删除。

drop trigger sc_insert

4.使用SQL Server Management Studio管理存储过程

(1)在SQL Server Management Studio中重新创建刚删除的触发器sc_insert 选中SC表,展开→右击“触发器”→新建触发器

出现如下界面:

编写余下的SQL语句:

CREATE TRIGGER sc_insert

ON SC

INSTEAD OF INSERT

AS

BEGIN

if not exists(select*from student,inserted

where student.sno=inserted.sno)

begin

print'插入信息的学号不在学生表中!'

if not exists(select*from course,inserted where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o) print'插入信息的课程号不在课程表中!'

rollback

end

else

begin

if not exists(select*from course,inserted where https://www.360docs.net/doc/a713597295.html,o=https://www.360docs.net/doc/a713597295.html,o)

begin

print'插入信息的课程号不在课程表中!'

rollback

end

end

END

(2)查看触发器sc_insert 的容。

展开表SC→触发器→选择sc_insert触发器→查看依赖关系

出现如下界面:

(3)删除触发器sc_insert

选中sc_insert触发器,右击→删除

实验七 触发器解读

实验七、触发器 一、实验目的 (1)理解触发器的用途、类型和工作原理。 (2)掌握利用T-SQL语句创建和维护触发器的方法。(3)掌握利用SQL Server Management Studio创建、维护触发器的方法。 二、实验内容、 1、创建AFTER触发器 (1)创建一个在插入时触发的触发器sc_insert,当向SC表插入数据时,须确保插入的学号已在Student表中存在,并且还须确保插入课程号在Course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件。(注:Student表与SC表的外键约束要先取消。)

(2)为Course表创建一个触发器Course_del,当删除了Course表中的一条课程信息时,同时将表SC中相应的学生选课记录也删除。 (3)在Course表中添加一个平均成绩avg_modify,当SC表中某学

生的成绩发生变化时,则Course表中的平均成绩也能及时相应发生改变。 (4)测试上述三个触发器。

2、创建INSERTED OF 触发器 (1)创建一视图student_view,包含学号、姓名、课程号、课程名、成绩等属性,在student_view上创建一个触发器grade_modify,当对student_view中的学生的成绩进行修改时,实际修改的是SC中的相应记录。

(2)在Student表中插入一个getcredit字段(记录学生所获学分的情况),创建一个触发器ins_credit,当更改(注:含插入时)SC表中的学生成绩时,如果新成绩大于等于60分,则该生可获得这门课的学分,如果新成绩小于60分,则该生未能获得这门课的学分。 (3)测试上述两个触发器。

触发器功能的模拟实现实验报告-

武汉轻工大学数学与计算机学院 数字逻辑实验报告 学校:武汉轻工大学 院系:数学与计算机学院 班级:计算机类1304班 姓名:田恒 学号: 1305110089 指导老师:刘昌华 2014年12月10日

目录 1、实验名称 2、实验目的 3、实验原理 4、实验环境 5、实验内容 一、DFF仿真分析 二、“维持阻塞”型DFF仿真分析 三、思考练习 四、故障排除 五、实验总结

【实验名称】触发器功能的模拟实现 【实验目的】学习时序电路的设计,了解基本触发器的功能,利用QuartusII软件的原理图输入,设计一个钟控R-S触发器形成的D触发器和边沿触发型D触发器,并验证其功能。 【实验原理】(1)钟控R-S触发器,在时钟信号作用期间,当输入R、S同时为1时,触发器会出现状态不稳定现象。为了解决这个问题,对钟控R-S触发器的控制电路进行修改,用G4门的输出信号替换G3门的S输入信号,将剩下的输入R记作D,就形成只有一个输入端的D触发器。 (2)在上述D触发器的基础上增加“维持”、“阻塞”结构,从而形成“维持阻塞”型D触发器。

【实验环境】PC机(Windows xp,QuartusII) 【实验内容】QuartusII开发数字电路的设计流程完成DFF和“维持阻塞”型D触发器的原理设计输入,编译仿真和波形仿真。 一、DFF仿真分析: step1、启动QuartusII Step2、建立工作库目录文件夹以便设计工程项目的存储 Step3、输入设计:根据上部原理图完成原理图文件,截图如下: Step4、单击存盘命令新建工程 Step5、编译综合 Step6、仿真测试 Step7、仿真结果

触发器实验 3

实验(一):MS SQL Server的使用和管理 一、实验目的 ①掌握T-SQL语言中几个常用流程控制语句的使用。 ②通过对常用系统存储过程的使用,了解存储过程的类型。 ③通过创建和执行存储过程,了解存储过程的基本概念,掌握使用存储过程的操作技巧和方法。 二、实验内容 ①用两种方法(if…else语句与while、break和continue语句)实现1+2+3……+100值的计算。 ②活期存款中,“储户”通过‘存取款单’和“存储所”发生关系。假定储户包括:账号,姓名,电话,地址,存款额;“储蓄所”包括:储蓄所编号,名称,电话,地址。假定一个储户可以在不同的储蓄所存取款,试完成以下设计: 1.创建一个数据库名为SA VE,按要求在SA VE数据库中创建以上的那三个表“储户”、“存取款单”、“储蓄所”。在三张表中自己选择应该在哪些列创建主键外键约束。 2.为“存取款单”表创建一个CHECK约束,使存取标志列的值要么是1要么是0。3.创建一个触发器TR1完成下面的内容: 当向“存取名单”表中插入数据时,如果存取标志=1则应该更正储户表让存款额加上存取金额,如果存取标志=0则应该更正储户表让存款额减去存取金额,如果余额不足则显示余额不足错误。 4.创建一个视图显示用户账号、用户姓名、存款额和所在银行。 5.创建存储过程INPUT_PROC,OUT_PROC分别用于存款和取款,即向存取款单中插入数据。 三、实验步骤 1.启动sql查询分析器,运行相关sql脚本。 2.脚本文件如下: 创建一个数据库名为SA VE: CREATE DATABASE[SA VE] ON PRIMARY (NAME=lfm1_dat, FILLENAME='c:\SAVE.DA TA.mdf', SIZE=10, MAXSIZE=50, FILEGROWTH=15%) LOG ON (NAME='lfm_log', FILENAME='c:\SAVELOG.ldf', SIZE=5MB, MAXSIZE=25MB, FILEGROWTH=5MB) 创建以上的那三个表“储户”、“存取款单”、“储蓄所”,在三张表中自己选择应该在哪些列创建主键外键约束。 CREATE TABLE 储户 (账号INT PRIMARY KEY,姓名CHAR(10),电话INT,地址CHAR(10),存款额MONEY)

数据库实验报告(7)-触发器

桂林航天工业学院学生实验报告 实验七 实验名称触发器实验日期2019.11.12 实验目的 1.了解触发器的基本原理,掌握创建触发器的方法。 2.掌握修改和删除触发器的方法,能够设计简单的触发器。 实验内容触发器 实验方法及步骤 1、创建一个触发器InsStud,当向student表插入一条记录时,同时把该记录插入到关系student2。 CREATE TRIGGER InsStud on student FOR INSERT AS insert into student2 select*from inserted 2、向student表中插入一条记录('201215130','张三','男',20,'CS'),查看student和student2表中记录的变化是什么? student和student2表中都能插入('201215130','张三','男',20,'CS')这条记录 insert student values('201215130','张三','男',20,'CS'); select*from student select*from student2 3、创建一个触发器DelStud,当向student表删除一条记录时,同时把该记录从student2表删除掉。

CREATE TRIGGER DelStud on student FOR delete AS delete student2 select*from deleted 4、删除student表中的sno为201215130的元组,同时查看student2表中元组的变化是什么? student和student2表中都能删除('201215130','张三','男',20,'CS')这条记录。 delete student where sno='201215130' select*from student select*from student2 5、为course表创建一个名为del_rollback_tr的DELETE触发器,该触发器的作用是禁止删除course表中的记录。 CREATE TRIGGER del_rollback_tr on course FOR delete AS if (exists(select*from deleted)) rollback insert course values('8','张','5',2); delete course where cno='8'

实验六 触发器实验报告

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

实验七触发器

实验七触发器 文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

实验七触发器 一、实验目的 (1)理解触发器的用途、类型和工作原理 (2)掌握利用T-SQL语句创建和维护触发器的方法 (3)掌握利用企业管理器创建、维护触发器的方法 二、实验内容 1.创建after触发器 (1)创建一个在插入时触发的触发器sc_insert,当向sc表插入数据时,须确保插入的学号已在Student表中存在,并且还须确保插入的课程号在Course表中存在;若不存在,则给出相应的提示信息,并取消插入操作,提示信息要求指明插入信息是学号不满足条件还是课程号不满足条件(注:Student表与sc表的外键约束要先取消)。 create trigger sc_insert on sc after insert as

if not exists(select*from student,inserted where= begin print'插入信息的学号不在学生表中!' if not exists(select*from course,inserted where= print'插入信息的课程号不在课程表中!' rollback end else begin if not exists(select*from course,inserted where= begin print'插入信息的课程号不在课程表中!' rollback end

end 执行: ①、insert into SC values(,'001','78') 删除外键约束: alter table SC drop constraint FK__SC__Sno__182C9B23 ②、insert into SC values(,'001','78') ③、insert into SC values('','006','78') (2)为Course表创建一个触发器Course_del,当删除了Course表中的一条课程信息时,同时将表sc表中相应的学生选课记录删除掉。 create trigger course_del on course after delete

实验五触发器及其应用(仿真)一、实验目的

实验五 触发器及其应用(仿真) 一、实验目的 1.掌握JK 触发器和D 触发器的逻辑功能。 2.掌握触发器相互转换的方法。 3.掌握集成JK 触发器和集成D 触发器的使用方法。 二、实验相关知识 1.JK 触发器 数字集成触发器74112内部有两个独立的下降沿触发的JK 触发器,其逻辑符号和仿真元件引线排列 如图5-1所示。 CLR 是异步置0端D R , PRE 是异步置1端D S 。特性方程是: 2.D 触发器 数字集成触发器7474内部有两个独立的上升沿触发的D 触发器,其逻辑符号和仿真元件引线排列如图5-2所示。其特点是次态(Q n+1)输出仅取决于CP 上升沿到达时D 端输入信号的状态,而与在此以前或以后D 的状态无关。其特性方程是: Q n+1 = D 三、实验预习要求与思考 1.阅读实验相关知识。 2.按要求设计“实验内容”中的电路,画出逻辑图。 n n n Q K Q J Q 1 (b ) 仿真元件引线排列 (a ) 逻辑符号 图5-1 74112的逻辑符号和仿真元件引线排列 1J C1 1K Q > J CP K R D S D R S Q (a ) 逻辑符号 (b ) 仿真元件引线排列 图5-2 7474的逻辑符号和仿真元件引线排列

四、实验内容 1.设计电路验证JK触发器74112的逻辑功能。建议示波器A通道接时钟脉冲、B通道接输出端Q,Q 和Q端接指示灯。 表5-1 JK触发器逻辑功能验证表 (1)由表5-1可以得出PRE’和CLR’的优先级哪个高? (2)由表5-1可以得出JK触发器的特性方程:。 2.设计电路验证D触发器7474的逻辑功能。建议示波器A通道接时钟脉冲、B通道接输出端Q,Q 和Q端接指示灯。 表5-2 D触发器逻辑功能验证表 (1)比较7474和74112的复位、置位端的异同。 (2)由表5-2可以得出D触发器的特性方程: 。 3.比较D触发器、JK触发器逻辑表达式,用适当的逻辑门实现D触发器与JK触发器的逻辑功能互相转换,并验证之。 4.任选一种触发器设计一个四人抢答器。要求当四人中任一人先按下开关后,有LED指示,其他人再按开关无效;复位后又可正常工作。画出原理图,仿真验证。 提示:利用复位端清零,抢答者的起始端接地,抢答成功者先按下开关时,D由0变1,Q变为高电平,同时用Q的反,通过与非门封锁其他人的抢答开关。

实验六 触发器实验报告

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

义,所有字段都是NULL引用示例::new、 customer_name, :old、customer_name3、行级触发器中的谓词在一个多条件触发的触发器中,使用谓词可以区分当前触发的操作的类型:inserting,updating,deleting。 示例: IF Inserting THEN 语句 ; END IF; IF Updating THEN 语句 ; END IF; IF Deleting THEN 语句 ; END IF;4、触发器的限制 SELECT 语句必须是 SELECT INTO 语句或内部游标声明。 行级触发器不可以对触发表进行查询,包括其调用的子过程中。 不允许 DDL 声明和事务控制语句。 如果由触发器调用存储子过程,则存储子程序不能包括事务控制语句。 :old 和 :new 值的类型不能是 LONG 和 LONG RAW。 [实验内容]1、给Customer表增加一列Savings,类型为int,来存放每个顾客的存款总额。A LTER TABLE customer ADD (saving varchar2(30));select * from customer;2、更新Customer表,使得Savings字段的值正确。 3、在Account表上增加一个行级触发器,当对account的balance进行update和insert一个记录时同步修改Customer的Savings字段,保证数据的一致性。

mysql触发器异常处理

MySQL触发器异常处理 MySQL触发器更新本表数据异常:Can't update table 'tbl' in stored function/trigger because it is already used by statement which invoked this 如果你在触发器里面对刚刚插入的数据进行了 insert/update, 则出现这个问题。因为会造 成循环的调用. create trigger test before update on test for each row update test set NEW.updateTime = NOW() where id=NEW.ID; END 应该使用set操作,而不是在触发器里使用 update,比如 create trigger test before update on test for each row set NEW.updateTime = NOW(); END MySQL触发器执行复合语句 触发器1.自增表中商品分类编码值+1,添加商品分类前给商品分类编码属性赋其对应的自 增表中的值 CREATE TRIGGER trigger1 BEFORE INSERT ON dw_base_commodity_category_info FOR EACH ROW BEGIN UPDATE sequence SET current_value=current_value+1 WHERE `name`='dw_base_commodity_category_info'; SET NEW.code=(SELECT current_value FROM sequence WHERE `name`='dw_base_commodity_category_info'); END; 删除触发器1:DROP TRIGGER trigger1; 触发器2.自增表中商品编码值+1,添加商品前给商品编码属性赋其对应的自增表中的值 CREATE TRIGGER trigger2 BEFORE INSERT ON dw_commodity_fact_info

基本RS触发器实验

第5章基本RS触发器 5.同步触发器(同步RS触发器) 目的与要求: 1 掌握时序电路的定义、分类、触发器的特点。 2 掌握基本RS触发器的电路结构、工作原理、逻辑功能。 3 掌握同步RS触发器的工作原理、逻辑功能。 4 掌握触发器逻辑功能的表示方法。 5 掌握时序电路的一些基本概念。 重点与难点:1 基本概念要正确建立。难点:现态、次态、不定状态的正确理解。 2 基本RS触发器的逻辑功能、触发方式。 5.1概述 一、触发器的概念 复习:组合电路的定义?构成其电路的门电路有何特点?组合电路与时序电路的区别? 门电路:在某一时刻的输出信号完全取决于该时刻的输入信号,没有记忆作用。 触发器:具有记忆功能的基本逻辑电路,能存储二进制信息(数字信息)。 触发器有三个基本特性: (1)有两个稳态,可分别表示二进制数码0和1,无外触发时可维持稳态; (2)外触发下,两个稳态可相互转换(称翻转),已转换的稳定状态可长期保持下来,这就使得触发器能够记忆二进制信息,常用作二进制存储单元。 (3)有两个互补输出端,分别用Q和Q 二、触发器的逻辑功能描述: 特性表、激励表(又称驱动表)、特性方程、状态转换图和波形图(又称时序图) 三、触发器的分类:根据 逻辑功能不同:RS触发器、D触发器、JK触发器、T触发器和触发器等。 触发方式不同:电平触发器、边沿触发器和主从触发器等。 电路结构不同:基本RS触发器,同步触发器、维持阻塞触发器、主从触发器和边沿触发器等。 5.2 触发器的基本形式 5.2.1 基本RS触发器 一、由与非门组成的基本RS触发器 1.电路结构 电路组成:两个与非门输入和输出交叉耦合(反馈延时)。逻辑图如图(a)所示。 逻辑符号如图(b)所示。

触发器实验报告

. . . . .. . 实验报告 课程名称:数字电子技术基础实验 指导老师: 周箭 成绩:__________________ 实验名称:集成触发器应用 实验类型: 同组学生姓名:__邓江毅_____ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验内容和原理 1、D →J-K 的转换实验 设计过程:J-K 触发器和D 触发器的次态方程如下: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将D 触发器转换为J-K 触发器,则有:n n Q Q J =D K +。 实验结果: J K Qn-1 Qn 功能 0 0 0 0 保持 1 1 0 1 0 0 置0 1 0 1 1 0 1 翻转 1 0 1 0 1 置1 1 1 (上:Qn ,下:CP ,J 为高电平时) 2、D 触发器转换为T ’触发器实验 设计过程:D 触发器和T ’触发器的次态方程如下: D 触发器:Q n+1= D , T ’触发器:Q n+1=!Q n 若将D 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:D=!Qn 。 实验截图: 专业:电卓1501 姓名:卢倚平 学号:3150101215 日期:2017.6.01 地点:东三404

实验名称:集成触发器应用实验 姓名: 卢倚平 学号: 2 (上:Qn ,下:!Qn )CP 为1024Hz 的脉冲。 3、J-K →D 的转换实验。 ①设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, D 触发器:Qn+1=D 若将J-K 触发器转换为D 触发器,则二者的次态方程须相等,因此有:J=D ,K=!D 。 实验截图: (上:Qn ,下:CP ) (上:Qn ,下:D ) 4、J-K →T ′的转换实验。 设计过程: J-K 触发器:n n 1 +n Q Q J =Q K +, T ’触发器:Qn+1=!Qn 若将J-K 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:J=K=1 实验截图:

mysql设置触发器权限问题的解决方法

本文实例讲述了mysql设置触发器权限的方法,针对权限错误的情况非常实用。具体分析如下: mysql导入数据提示没有super privilege权限处理,如下所示: 1 error 1419 (hy000): you do not have the super privilege and binary logging is enabled 导入function 、trigger 到mysql database,报错: 1 you do not have the super privilege and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)”. 原因: function / trigger 中有dangerous statements修改数据库,错误只在启用binary logging选项进行主从复制的服务器上出现。 解决方法如下: 1)导入数据的用户不仅需要create routine, alter routine, create trigger, alter trigger, create function 和alter function 权限,还需要super privileges 权限,使用超级用户导入数据。 2)让所有用户具有执行类似functions的权限,危险,不推荐, 123 o by specifying it on the server start, like: –log-bin-trust-function-creators=1 o by setting it to 1 through the set global statement, like: mysql> set global log_bin_trust_function_creators = 1; 3)如果不需要复制,或者是从库,关闭binlog, 1234 # binary logging –not required for slaves, but recommended #log-bin=mysql-bin # binary logging format –mixed recommended #binlog_format=mixed 希望本文所述对大家的mysql数据库设计有所帮助。 更多信息请查看IT技术专栏

实验二D触发器的设计和仿真

实验报告 哈尔滨工程大学教务处制 实验二 D触发器的设计和仿真 一、实验目的 1、学习模拟数字电路单元的基本设计方法。 2、学习Cadence工具下电路设计的基本操作和方法。 3、学习Sprectre工具的仿真操作方法。 二、实验内容

本实验通过设计一个异步清零的D触发器电路学习Cadence工具下电路的设计和仿真方法。实验内容包括:完成反相器、与非门、传输门电路的设计和仿真验证;完成各个单元电路symbol的建立;利用建立的单元电路symbol完成D触发器电路的设计和仿真;分析仿真结果。该电路设计采用上华CSMC0.5umCMOS工艺设计,工作电压5V。 三、实验步骤 1、登陆到UNIX系统。 在登陆界面,输入用户名和密码,用户名和密码都为学生学号。 2、Cadence的启动。 启动Cadence软件的命令有很多,不同的启动命令可以启动不同的工具集,常用的启动命令有icfb,icca等,也可以单独启动单个工具。 3、原理图的输入。 (1)Composer的启动。在CIW窗口新建一个单元的Schematic 视图。 (2)添加器件。在comparator schematic窗口点击Add-Instance 或者直接点i,就可以选择所需的器件。 (3)添加连线。执行Add-Wire,将需要连接的部分用线连接起来。 (4)添加管脚。执行Add-Pin和直接点p,弹出添加管脚界面。 (5)添加线名。为设计中某些连线添加有意义的名称有助于在

波形显示窗口中显出该条线的信号名称,也可以帮助检查电路错误。点击Add-Wire Name,弹出新窗口,为输入输出线添加名称。为四端的MOS器件的衬底添加名称vdd!或gnd!,其中!表示全局变量。 (6)添加电源信号。选择Vdd和Gnd的symbol各一个,在两个symbol之间连接一个vdc,设置直流电压5V。 (6)保存并检查。点击schematic窗口上的Check and Save按钮,察看是否有警告或者错误。如果有,察看CIW窗口的提示。 4、电路仿真。 (1)启动模拟仿真环境。在comparator schematic窗口,选择Tools-Analog Environment,弹出模拟仿真环境界面。 (2)选择仿真器。在仿真窗口,选择Setup-Simulator/Directory/Host,设置仿真器为spectre,然后点击OK。 (3)设置模型库。 (4)设置分析类型。在仿真窗口,点击Choose Analyses按钮,弹出Choose Analyses窗口,该窗口中列出了各种仿真类型,在本实验中只需进行瞬态仿真,所以选择tran,时间设为3um。 (5)设置设计变量,在仿真窗口中,点击Edit Variables 按钮,弹出变量设置窗口,点击Copy From按钮,整个设计本扫描一遍,设计中的各个变量被列出来。 (6)创建网表。选择Simulation-Netlist-Create,产生了该设计的网表。 (7)设置波形显示工具。Cadence中有两种波形显示工具:AWD

数电实验触发器及其应用

数电实验触发器及其应用 数字电子技术实验报告 实验三: 触发器及其应用 一、实验目的: 1、熟悉基本RS触发器,D触发器的功能测试。 2、了解触发器的两种触发方式(脉冲电平触发和脉冲边沿触发)及触发特点 3、熟悉触发器的实际应用。 二、实验设备: 1 、数字电路实验箱; 2、数字双综示波器; 3、指示灯; 4、74LS00、74LS74。 三、实验原理: 1、触发器是一个具有记忆功能的二进制信息存储器件,是构成多种时序 电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。在数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即“0”和“ 1 ”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。触发器有集成触发器和门电路(主要是“与非门” )组成的触发器。 按其功能可分为有RS触发器、JK触发器、D触发器、T功能等触发器。触发方式有电平触发和边沿触发两种。 2、基本RS触发器是最基本的触发器,可由两个与非门交叉耦合构成。 基本RS触发器具有置“ 0”、置“ 1”和“保持”三种功能。基本RS触发器

也可以用二个“或非门”组成,此时为高电平触发有效。 3、D触发器在CP的前沿发生翻转,触发器的次态取决于CP脉冲上升沿n+1来到之前D端的状态,即Q = D。因此,它具有置“ 0”和“T两种功能。由于在CP=1期间电路具有阻塞作用,在CP=1期间,D端数据结构变RS化,不会影响触发器的输出状态。和分别是置“ 0”端和置“ 1” DD 端,不需要强迫置“ 0”和置“ 1”时,都应是高电平。74LS74(CC4013, 74LS74(CC4042均为上升沿触发器。以下为74LS74的引脚图和逻辑图。 馬LD 1CP 1云IQ LQ GM) 四、实验原理图和实验结果: 设计实验: 1、一个水塔液位显示控制示意图,虚线表示水位。传感器A、B被水浸沿时

MySQL触发器

MySQL 5.0 触发器 MySQL 5.0 新特性系列 C 第 2 部分 MySQL 技术白皮书 Peter Gulutzan March, 2005 翻译:陈朋奕 毕业于西安电子科技大学 现泛华讯电脑技术 版权说明版权说明::本手册参考之原文本手册参考之原文的版权属的版权属 MySQL AB,而本手册可自由使用而本手册可自由使用、、修改修改、、散发散发、、转载和商业用途转载和商业用途,, 但必须保留译者署名但必须保留译者署名。。由此引发的版权问题由此引发的版权问题,,译者不负责任译者不负责任。。(btw :可能会有错别字或错误可能会有错别字或错误,,但不影响阅读但不影响阅读)) Cop yright 2005, MySQL AB

Table of Contents Introduction (3) Conventions and Styles (3) Why Triggers (3) 1. Syntax: Name (4) 2. Syntax: Time (5) 3. Syntax: Event (5) 4. Syntax: Table (5) 5. Syntax: Granularity (5) 6. Syntax: Statement (6) Privileges (6) Referring to OLD and NEW columns (6) Example of CREATE and INSERT (7) Example of a "check" constraint (7) Conclusion (9) About MySQL (9) Copyri ght 2005, MySQL AB Page 2

数字电路实验报告第七章触发器

数字电路与逻辑设计基础实验 任课教师:陈志坚 实验名称:触发器(实验七) 云南大学信息学院 一、实验目的 ⑴学习触发器逻辑功能的测试方法 ⑵进一步熟悉RS触发器、集成D触发器和JK触发器的逻辑功能及其触发方式二、实验器材 ⑴直流稳压电源、数字逻辑实验箱 ⑵74LS00、74LS74、74LS76 三、实验内容和仿真

1.基本RS触发器 基本RS触发器用与非门74LS00构成,按图7-1接好线。在输入端加上不同的信号,通过发光二极管观察电路输出端的状态。把结果填入自制的表中。 图7-1 基本RS触发器图7-2 D触发器的预置和清零功能 用带预置和清除的双D型触发器74LS74来测试上升沿触发集成D型触发器的逻辑功能。先按图7-2接线,在时钟脉冲的不同电平状态,改变预置端PRE 和清除端CLR的信号,通过发光二极管观察触发器的输出状态。把结果填入自制的表中。然后,按图7-3接线,测试D触发器的逻辑功能。 在D触发器的逻辑功能测试中,先将数据输入端D分别置入“0”或“1”,再用清零端CLR和预置端PRE分别将触发器的输出端清除为“0”或置位为“1”,最后再用单脉冲按钮向触发器的时钟输入端CLK发出脉冲的上升边沿和下降边沿,同时观察电路输出端Q的输出状态,把结果填入表7-1中。 注意:清零和置位之后,清除端CLK和预置端PRE必须置成“1”状态。 图7-3 D触发器逻辑功能测试7-4 JK触发器清除和预置功能的测试

D触发器仿真(1) D触发器仿真(2

1 3.JK触发器 用带预置和清除的双JK触发器74LS76来测试下降沿触发集成JK触发器的逻辑功能。先按图7-4接线,改变预置端PRE和清除端CLR的信号,通过发光二极管观察触发器Q输出端的输出状态。把结果填入自制的表中。然后,按图7-5接线,测试JK触发器的逻辑功能。 图7-5 JK触发器逻辑功能测试

实验七 触发器的仿真

实验七触发器的仿真 实验目的 1.用逻辑图和VHDL语言设计D锁存器,并进行仿真与分析; 2.参看Maxplus中器件7474(边沿D触发器)的逻辑功能,用VHDL语言设计边沿触发式D触发器,并进行仿真与分析。 3.参看Maxplus中器件7476(边沿JK触发器)的逻辑功能,用VHDL语言设计边沿触发式JK触发器,并进行仿真与分析。 1.D锁存器(D Latch) 实验设计思想 使能端EN输入为1时,输出Q与输入D值相同;使能端EN输入为0时,输出Q保持不变。 实验原理图 实验VHDL源程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ex71 IS PORT( C,D:IN STD_LOGIC; Q,QN:BUFFER STD_LOGIC); END ex71; architecture bhv OF ex71 IS BEGIN PROCESS(C,D,Q) BEGIN IF (C='1') THEN Q<=D;ELSE Q<=Q;END IF; QN<=NOT Q; END PROCESS; END bhv; 实验波形仿真

Preset , Clear and Complementary Outputs) 实验原理图

实验VHDL源程序 library ieee; use ieee.std_logic_1164.all; entity ex72 is port( D,CLK,PR_L,CLR_L:IN std_logic; Q,QN:out std_logic); end ex72; architecture vhb of ex72 is signal PR,CLR:STD_LOGIC; BEGIN process(CLR_L,CLR,PR_L,PR,CLK) begin PR<=not PR_L;CLR<=not CLR_L; if(CLR AND PR)='1'then Q<='1';QN<='1'; elsif CLR='1' then Q<='0';QN<='1'; elsif PR='1'then Q<='1';QN<='0'; elsif (CLK'event and CLK='1')then Q<=D;QN<=not D; end if; end process; end vhb; 实验波形仿真

实验四 触发器 实验报告

实验四触发器实验报告 徐旭东 11180243 物理112班 一、实验目的 1. 熟悉并掌握R-S、D、J-K触发器的特性和功能测试方法。 2. 学会正确使用触发器集成芯片。 3. 了解不同逻辑功能FF相互转换的方法。 二、实验仪器及材料 1. 实验仪器设备:双踪示波器、数字万用表、数字电路实验箱 2. 器件 74LS00 二输入端四与非门 1片 74LS74 双D触发器 1片 74LS76 双J-K触发器 1片 三、实验内容步骤及记录 1. 基本RS触发器功能测试: 两个TTL与非门首尾相接构成的基本RS触发器的电路。如图5.1所示。

(1)试按下面的顺序在S R 端加信号: d S =0 d R =1 d S =1 d R =1 d S =1 d R =0 d S =1 d R =1 观察并记录触发器的Q 、Q _ 端的状态,将结果填入 下表4.1中,并说明在上述各种输入状态下,RS 执行的是什么逻辑功能? 表4.1 d S d R Q 逻辑功能 0 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 置1 保持 置0 保持 (2)当d S 、d R 都接低电平时,观察Q 、Q _ 端的状态,当d S 、d R 同时由低电平跳为高电平时,注意观察Q 、Q _ 端的状态,重复3~5次看Q 、Q _ 端的状态是否相同,以正确理解“不定” 状态的含义。 结论: 当d S 、d R 都接低电平时,Q 和Q _ 端的状态不定。 2. 维持- 阻塞型D 触发器功能测试 双D 型正边沿维持-阻塞型触发器74LS74的逻辑符号如图4.2所示。 图中d S 、d R 端为异步置1端,置0端(或称异步置位,复位端),CP 为时钟脉冲端。试按下面步骤做实验: (1)分别在d S 、d R 端加低电平,观察并记录Q 、Q _ 端的状态。 (2)令d S 、d R 端为高电平,D 端分别接高,低电平,用点动脉 冲作为CP ,观察并记录当CP 为0、 、1、 时Q 端状态的变化。 图4.1 基本RS 触发器电 图4.2D 逻辑符号

mysql 触发器使用实例

mysql 触发器使用实例(修改一个表内容的同时另一个表内容自动变化) [分享]触发器小例子 触发器能进行一些约束. 这是个小例子,当Student表的StudentID列被发生更改时,BorrowStudent表的StudentID列也跟着更改.如果Student表删除某记录,BorrowStudent也删除对应StudentID的记录. /*先删除将要创建而存在的表*/ drop table if exists Student; drop table if exists BorrowStudent; /*创建表*/ create table Student( StudentID int not null primary key, StudentName varchar(30) not null, StudentSex enum('m','f') default 'm' )engine=myisam; create table BorrowStudent( BorrowRecord int not null auto_increment primary key, StudentID int not null, BorrorDate date, ReturnDate date, foreign key(StudentID) references Student(StudentID) )engine=myisam; /*插入记录*/ insert into Student values(1235412,'java','m'); insert into Student values(3214562,'jiajia','m'); insert into Student values(5441253,'purana','f'); insert into BorrowStudent(StudentID,BorrorDate,ReturnDate) values(1235412,'2007-01-01','2007-01-07'); insert into BorrowStudent(StudentID,BorrorDate,ReturnDate)

实验七设计基本触发器

实验七设计基本触发器一、实验准备 该实验不需要使用七个模块组中的功能单元,所以拨码开关状态;拨码开关MODEL_SEL5-8全置于“OFF状态,以使用JTAG下载方式,这里用户可根据自己所用的下载线来选择适当的下载方式。矚慫润厲钐瘗睞枥庑赖賃軔朧。 二、实验目的 熟悉利用Quartusll开发数字电路的基本流程和Quartusll软件的相关操作, 介绍Quartusll的软件,掌握基本的设计思路,软件环境参数配置,仿真,管脚分配,下载等基本操作。 了解VHDL或原理图设计方法与定制IP模块的思想。 掌握基本触发器的设计思路及工作原理 三、实验原理 通过开关分别输入单bit的数据,并用开关作为控制信号,实现置位和复位。将 T触发器的结果分别在2个LED上显示。聞創沟燴鐺險爱氇谴净祸測樅。 四、实验内容 1、用VHDL语言设计D触发器和T触发器;注意时钟要用到分频电路。 2、用Quartusll软件进行编译,仿真,下载到实验平台进行验证。 五、设计原理框图 六、引脚分配情况 D A21 CLK P25 CLR F6 P SET B21 QT AA11 Q AC10 MODEL SEL1-3 均置于“OFF D触发器和

Q,QT 为D 触发器和T 触发器的输出信号,分别对应平台上的 LED0和LED7。CLR,PSET 为高电平清零和置位信号, CLK 为时钟信号。残骛楼諍锩瀨濟溆塹籟婭骤東。 七、结果分析 波形仿真 如上所述,Q,QT 作为D 触发器和T 触发器的输出信号,分别对应平台 CLR,PSET 为高电平清零和置位信号, CLK 为时 这里简单列出波形图, 实际可以自己加上其他的 八、VHDL 源程序代码 --D flip flop library IEEE; use IEEE.std_logic_1164.all; ENTITY DFFL OP IS PORT ( D: in STD_LOGIC; CLK,CLR, PSET: in STD_LOGIC;-- 时钟,清零,置位 Q: out STD LOGIC --输出 ); END DFFL OP; ARCHITECTURE FFA OF DFFL OP IS BEGIN P ROCESS(CLK ,P SET,CLR) BEGIN Q<='1'; ELSIF CLR='1' THEN Q<='0'; ELSIF CLK'EVENT AND CLK='1' THEN Name CLK CLR £ FS ET G QT Value a 11.£5 ] B B B B B B ]ps ISO. 0 ILS 11.25 ns -J ______________ -rLZFLZFLFLJnLJn_J^ 4S0 0 ns 从上图可以看出, 上的LED0和LED7,正确对应了结果。 钟信 号,都实现了相应的功能, 限于篇幅, 信号进行仿真。酽锕极額閉镇桧猪訣锥顧荭钯。 --输入 IF P SET='1' THEN --异步置位 --异步7冃零

相关文档
最新文档