实验五 存储过程和触发器的定义和使用3

实验五 存储过程和触发器的定义和使用3
实验五 存储过程和触发器的定义和使用3

实验五存储过程和触发器的定义和使用

一、实验目的

1、掌握局部变量、全局变量、流程控制语句的使用方法

2、了解存储过程的类型和作用,并掌握使用对象资源管理器和Transact-SQL语句创建

存储过程的方法及使用方法。

3、理解触发器的特点和作用,并掌握使用Transact-SQL语言创建触发器的方法

二、实验内容

1.在学生成绩库中中有如下各表:

学生表(Student)

学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147 020102方露露01981-1-15信息管理计算机88297147 020103俞奇军11980-2-20信息管理计算机88297151 020104胡国强11980-11-7信息管理计算机88297151 020105薛冰11980-7-29水利工程水利系88297152 020201秦盈飞01981-3-10电子商务经济系88297161 020202董含静01980-9-25电子商务经济系88297062 020203陈伟11980-8-7电子商务经济系88297171 020204陈新江11980-7-20房建水利系88297171 create database学生成绩数据库

create table Student

(

学号Char(6)not null,

姓名Char(8)not null,

性别Bit not null,

出生日期smalldatetime,

专业Char(10),

所在系Char(10),

联系电话Char(11)null

)

课程表(Course)

课程号课程名教师开课学期学时学分

101计算机原理陈红2453

102计算方法王颐3453

103操作系统徐格2604

104数据库原理及应用应对刚3755

105网络基础吴江江4453

106高等数学孙中文1906

107英语陈刚1906

108VB程序设计赵红韦3705

create table Course

(

课程号Char(3)not null,

课程名Char(20)not null,

教师Char(10),

开课学期Tinyint,

学时Tinyint,

学分Tinyint not null,

)

学生选课成绩表(SC)

学号课程号成绩

020********

020********

020********

020********

020********

020********

020********

020********

020********

020********

create table SC

(

学号Char(6)not null,

课程号Char(3)not null,

成绩Smallint,

)

对三个表格分别导入,截图如下:

2、T-SQL语句中流程控制语句的使用

(1)全局变量的使用。显示到当前日期和时间为止试图登录SQL Server的次数。select getdate()as'当前的日期和时间',

@@connections as'试图登陆的次数'

(2)IF语句的使用。

①在Student表中,若存在学号“020205”的学生,则显示该学生的信息,否则插入

该学生的记录(020205,李萍,0,1983-7-20,电子商务,经济系,88297171)

If exists(select*from Student where学号='020205')

select*from Student where学号='020205'

Else

insert into Student values('020205','李萍','0','1983-7-20','电子商务','经济系','88297171')

②查询杨颖有没有选课,若选了课,则统计其平均成绩,若没有选课,则输出“杨颖没

有选课”

If exists(select姓名from Student,SC where姓名='杨颖'and Student.学号=SC.学号)

select avg(成绩)from SC,Student where Student.姓名='杨颖'and Student.学号=SC.学号

Else

print'杨颖没有选课!'

(3)循环语句的使用。

①用WHILE语句编程计算1-100之间所有能被3整除的数的个数及总和。DECLARE@S SMALLINT,@I SMALLINT,@NUMS SMALLINT

SET@S=0

SET@I=1

SET@NUMS=0

WHILE(@I<=100)

BEGIN

IF(@I%3=0)

BEGIN

SET@S=@S+@I

SET@NUMS=@NUMS+1

END

SET@I=@I+1

END

PRINT@S

PRINT@NUMS

②利用GOTO语句求出从1加到5的总和。

DECLARE@S SMALLINT,@I SMALLINT

SET@I=1

SET@S=0

BEG:

IF(@I<=5)

BEGIN

SET@S=@S+@I

SET@I=@I+1

GOTO BEG

END

PRINT@S

(4)WAITFOR语句的使用。

①等待5秒后执行查询Student学生信息

waitfor delay'00:00:05'

select*

from Student

②等到晚上10:20执行存储过程update_all_stats。BEGIN

WAITFOR TIME'10:20'

EXECUTE update_all_stats

END

(5)CASE语句的使用。

①查询Student的SNO,SEX,如果SEX为“1”则输出“男”,如果为“0”输出“女”。

SELECT学号,

性别=

CASE性别

WHEN'1'THEN'男'

WHEN'0'THEN'女'

END

FROM Student

②从SC表中查询所有同学选课成绩情况,凡成绩为空者输出“未考”、小于60分输出“不

及格”、60分至70分输出“及格”、70分至90分输出“良好”、大于或等于90分时输出“优秀”。

SELECT学号,课程号,

成绩=

CASE

WHEN成绩IS NULL THEN'未考'

WHEN成绩<60THEN'不及格'

WHEN成绩>=60AND成绩<70THEN'及格'

WHEN成绩>=70AND成绩<90THEN'良好'

WHEN成绩>=90THEN'优秀'

END

FROM SC

3、存储过程的的使用。在上面学生成绩库中完成如下操作:(1)创建如下不带参数的简单存储过程:

查询成绩在60至80分之间的学生的学号和课程号。create procedure SCList

as

select学号,课程号

from SC

where成绩>60and成绩<80

(2)分别创建如下的带输入参数的存储过程:

①根据用户输入的学号,删除该学生选课成绩记录;create procedure studentqk1

(@学号char(10))

as

delete成绩

from SC

where学号=@学号

②向SC表中插入数据。

create procedure sccharu

(@学号char(10),@课程号char(10),@成绩int)

as

insert into SC values(@学号,@课程号,@成绩)

(3)创建如下的带输出参数的存储过程,并写出一个执行该过程的例子:根据用户输入的学号,课程号,输出其成绩。

create procedure grade

(@学号char(10),@课程号char(10)output,@成绩int output)

as

select@成绩=成绩

from SC

where学号=@学号and课程号=@课程号

declare@成绩int

execute grade'020101','101',@成绩output

select'成绩'=@成绩

(4)创建存储过程proc_t1,要求实现如下功能:输入专业名称,产生该专业学生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用此存储过程,显示“信息管理”专业学生的选课情况列表。

create procedure proc_t1(@专业char(10))

as

select Student.学号,Student.专业,Student.姓名,

Course.课程号,Course.课程名,Course.学分,成绩

from Student,Course,SC

where Student.学号=SC.学号and Course.课程号=SC.课程号and Student.专业=@专业

exec proc_t1'信息管理'

(5)对学生成绩库中已创建的存储过程proc_t1进行修改,要求实现如下功能:输入专业

名称,产生该专业所有男生的选课情况列表,其中包括专业、学号、姓名、课程号、课程名、成绩、学分等。并调用修改后的存储过程,显示“信息管理”专业男生的选课情况列表。

alter procedure proc_t1(@专业char(10))

as

select Student.学号,Student.专业,Student.姓名,

Course.课程号,Course.课程名,Course.学分,成绩

from Student,Course,SC

where Student.学号=SC.学号and Course.课程号=SC.课程号and Student.专业=@

专业and性别=1

exec proc_t1'信息管理'

(6)删除学生成绩库中的存储过程proc_t2。

drop procedure proc_t1

(7)编写存储过程,要求实现如下功能:输入课程名称,产生该课程各分数段及其相应人数的成绩分布情况统计。

create procedure scqk(@课程名char(10))

as

begin

select课程名,

sum(case when成绩between0and59then1else0end)as'不及格',

sum(case when成绩between60and69then1else0end)as'60-69',

sum(case when成绩between70and89then1else0end)as'70-89',

sum(case when成绩between90and100then1else0end)as'90-100' from SC,Course

where SC.课程号=Course.课程号and课程名=@课程名

group by课程名

end

exec scqk'计算机原理'

4、触发器的使用。在上面学生成绩库中完成如下操作:

(1)DML触发器的使用

①创建一个INSERT触发器tri_sc_insert,当向sc表中添加数据时,如果添加的数据与

Student表中的数据不匹配(没有对应的学号),则将此数据删除。

create trigger tri_sc_insert on SC

for insert

as

begin

declare@bh char(6)

select@bh=inserted.学号

from inserted

if not exists(select学号from Student where Student.学号=@bh)

delete SC where学号=@bh

end

②创建一个UPDATE触发器tri_sc_upd,用来防止用户修改SC表的成绩。

create trigger tri_sc_upd on SC

for update

as

if update(成绩)

begin

print'修改失败。。。。'

raiserror('不能修改SC表的成绩',16,10)

rollback transaction

end

③创建一个级联修改触发器trigger_1,即当修改学生课程表Course中的某门课的课

程号时,对应学生的选课表SC中的课程号也作修改

create trigger trigger_1on Course

for update

as

if update(课程号)

begin update SC

set课程号=(select课程号from inserted)

from SC,deleted

where SC.课程号=deleted.课程号

end

④建立一个级联删除触发器trigger_2,实现,即当删除表Student中的记录时,

自动删除表sc中对应选课记录。

create trigger trigger_2on Student

for delete

as

begin

delete SC

from SC,deleted

where SC.学号=deleted.学号

end

⑤创建触发器trigger_3,实现当修改学生表中的数据时,显示提示信息“学生表被修改了”。

create trigger trigger_3on Student

for update

as

print'学生表被修改了!'

⑥修改已创建的触发器trigger_3,实现当修改学生表中的数据时,显示提示信息“学

生表中XXX号学生记录被修改了”。

alter trigger trigger_3on Student

for update

as

declare@kch char(6)

select@kch=学号

from deleted

print'学生表中学号为'+@kch+'的记录被修改了'

⑦删除学生表上的触发器trigger_3。

drop trigger trigger_3

(2)DDL触发器的使用(选作)

①使用DDL触发器来防止在数据库中创建表。创建一个safety_1触发器,禁止用户在

学生成绩库数据库创建表。并运行CREATE TABLE newtable(ID int)语句验证。

②用DDL触发器来防止在数据库中修改、删除表。创建一个safety_2触发器,禁止用

户在学生成绩库数据库中修改、删除表。并运行DROP TABLE SC语句验证

③删除触发器safety_1和safety_2

三、思考题

1、存储过程的类型有哪些?分别有什么特征?。

2、如何创建一个存储过程?试述存储过程在程序设计的作用。

3、假设必须修改数据库中的一个存储过程,同时有几个用户被授予执行这个存储过程

的权限,请问执行哪个语句可以实现修改,但又不影响现有的权限。

4、列出本实验你遇到的问题及解决办法

实验五 触发器操作实验

实验五触发器操作实验 一、实验目的和要求 1、掌握SQL Server中的触发器的使用方法; 二、实验内容和步骤 1、在学生表student上建立一个DELETE类型的触发器tr_delete,触发动作是显示信息“已删除学生表中的数据”。 2、创建名为为tr_delete1的触发器,要求实现如下功能:当删除课程表course中某一门课程的记录时,级联删除成绩表sc中有关此课程的记录。 3、创建名为tr_delete2的触发器,要求实现如下功能:当修改课程表course中某一门课程的课程号时,级联修改成绩表sc中有关此课程的课程号。 4、创建名为tr_delete3的触发器,要求如下:当同时修改student表中的姓名和性别字段时,提示用户“不能同时修改姓名和性别字段”,并撤销此次修改操作。 5、在学生表student上建立一个名为tr_sno的触发器。该触发器将被操作update所激活,将不允许用户修改表的sno字段。 二、实验环境 1.Windows7+SQL 三、调试过程 1.删除出错(级联删除) 修改:(删除sc表外键数据后再删student表)

2.更新出错(级联更新) 修改: 四、实验结果 1.

2. 3.

4. 5.

五、总结 通过此次实验: 1.本人加深对SQL和Transact-SQL语言的查询语句的理解; 2.简单了解了触发器的使用; 3.对级联删除有了再一步的理解,但是对于级联更新的处理还是不够,例如第五题依 旧没解决调试出现的约束冲突问题 六、附录 /************************************************************ 1、在学生表student上建立一个DELETE类型的触发器tr_delete,触发动作是显示信息“已删除学生表中的数据”。 *************************************************************/ create trigger tr_delete on Student after delete as begin print'已删除学生表中的数据' end delete from sc where sno='95011' delete from student where sno='95011' drop trigger tr_delete insert into student values('95011','王一鸣',20,'男','计算机系','福州市') insert into sc(sno,cno,grade)

集成触发器及其应用电路设计

华中科技大学 电子线路设计、测试与实验》实验报告 实验名称:集成运算放大器的基本应用 院(系):自动化学院 地点:南一楼东306 实验成绩: 指导教师:汪小燕 2014 年6 月7 日

、实验目的 1)了解触发器的逻辑功能及相互转换的方法。 2)掌握集成JK 触发器逻辑功能的测试方法。 3)学习用JK 触发器构成简单时序逻辑电路的方法。 4)熟悉用双踪示波器测量多个波形的方法。 (5)学习用Verliog HDL描述简单时序逻辑电路的方法,以及EDA技术 、实验元器件及条件 双JK 触发器CC4027 2 片; 四2 输入与非门CC4011 2 片; 三3 输入与非门CC4023 1 片; 计算机、MAX+PLUSII 10.2集成开发环境、可编程器件实验板及专用电缆 三、预习要求 (1)复习触发器的基本类型及其逻辑功能。 (2)掌握D触发器和JK触发器的真值表及JK触发器转化成D触发器、T触发器、T 触发器的基本方法。 (3)按硬件电路实验内容(4)(5),分别设计同步3 分频电路和同步模4 可逆计数器电路。 四、硬件电路实验内容 (1)验证JK触发器的逻辑功能。 (2)将JK触发器转换成T触发器和D触发器,并验证其功能。 (3)将两个JK触发器连接起来,即第二个JK触发器的J、K端连接在一起, 接到第一个JK触发器的输出端Q两个JK触发器的时钟端CP接在一起,并输入1kHz 正方波,用示波器分别观察和记录CP Q、Q的波形(注意它们之间的时序关系),理解2分频、4分频的概念。 (4)根据给定的器件,设计一个同步3分频电路,其输出波形如图所示。然后组装电路,并用示波器观察和记录CP Q、Q的波形。 (5)根据给定器件,设计一个可逆的同步模4 计数器,其框图如图所示。图中,M为控制变量,当M=0时,进行递增计数,当M=1时,进行递减计数;Q、 Q为计数器的状态输出,Z为进位或借位信号。然后组装电路,并测试电路的输入、输出

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器 班级:惠普测试142 学号:1408090213 姓名:闫伟明 日期:2016-11-14

1 实验目的: 1)掌握SQL进行存储过程创建和调用的方法; 2)掌握SQL进行触发器定义的方法,理解触发器的工作原理; 3)掌握触发器禁用和重新启用的方法。 2 实验平台: 操作系统:Windows xp。 实验环境:SQL Server 2000以上版本。 3 实验内容与步骤 利用实验一创建的sch_id数据库完成下列实验内容。 1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。 存储过程定义代码: CREATE PROCEDURE JSXX_PROC AS SELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND https://www.360docs.net/doc/1b12514055.html,o=https://www.360docs.net/doc/1b12514055.html,o 存储过程执行语句与执行结果截图: EXECUTE JSXX_PROC 2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、 所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。 存储过程定义代码:

CREATE PROCEDURE XM_PROC @sname VARCHAR(100) AS BEGIN IF EXISTS(SELECT NULL FROM S WHERE sn=@sname) SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE https://www.360docs.net/doc/1b12514055.html,o=https://www.360docs.net/doc/1b12514055.html,o AND SC.sno=S.sno AND S.sn=@sname ELSE PRINT'无该姓名的同学。' END 运行截图: 3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业), 统计并显示该专业各年龄段男、女生人数。如果没有该专业,则显示“无此专业”。 存储过程定义代码: CREATE PROCEDURE XBNL_PROC @departName VARCHAR(30)='计算机', @begin INT, @end INT AS

数据库原理课程设计实验[创建存储过程与触发器]

存储过程与触发器实验日期和时间: 2016 年 5 月13 日、 星 期五第节 实验室:DJ2-信息管理实验室 班级:学号:姓名: 实验环境: 1.硬件:笔记本电脑 2.软件:SQL Server 2012 实验原理: 存储过程概念:存储过程是事先编好的,存储在数据库中的一组被编译了的T-SQL命令集合,这些命令用来完成对数据库的指定操作。存储过程可以接受用户的输入参数、向客户端返回表格或标量结果和消息、调用数据定义语言(DDL)和数据操作语言(DML)语句,然后返回输入参数。 触发器概念:触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete,update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 实验任务: 此作业成绩得分根据你完成的任务的难度和数量评分,完成后在实验室给老师演示验收,课后提交电子版报告。如额外完成自拟题目应当事先将所拟题目提交给老师或在报告中明确标注题意。

假定有学校的图书馆管理信息系统,可以用于日常管理书库和同学们的借还书工作。以下列出参考的库表情况: 根据管理的业务需求来分析,该管理信息系统的数据库应至少包括如下数据表:(打★号的是必须有的表) 1.★图书现有库存表。作用:记录图书的现有库存情况。至少包括:书号、书名、 作者、简介、类别、价格、出版社、出版日期、现有库存数量、最小库存量、库 存总量、库存位置等。 2.★读者信息表。作用:记录读者信息。至少包括:读者编号、证件类型、证件号 码、姓名、性别、职业(可填写教师、学生、教工、其它……)、所属单位、地 址、联系电话等。 3.★借书记录表。作用:记录借书情况,以及是否归还。至少包括:借阅ID(主 键,可设置为自动编号)、书号、读者编号、借阅数量、借阅日期、是否归还、 管理员编号……等。 4.★还书记录表。作用:记录还书情况。至少包括:还书ID(主键,可设置为自动 编号)、书号、读者编号、归还数量、归还日期、是否超期(超过假设45天为 超期)、超期天数、管理员编号……等。(附:为简化操作,续借可视为归还后 再借)。 5.管理员信息表。作用:记录负责管理书库和借书还书工作的管理员信息。至少包 括:管理员编号、职工编号(在职工档案表中的职工编号)、用户名、密码、管 理员级别等……。 6.职工档案表表。作用:记录职工档案。至少包括: 职工编号、姓名、性别、单 位、职称、职务、出生日期、学历、……其它字段自拟。

实验六 触发器实验报告

实验五 触发器实验报告 [实验目的] 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 删除前该行的值 无定义,所有字段

实验六 存储过程和触发器

实验六存储过程与触发器 一、目的与要求 1.掌握编写数据库存储过程的方法。 2.掌握建立数据库触发器的方法,通过实验观察触发器的作用与触发条件设置 等相关操作。 二、实验准备 1.了解编写存储过程与调用的T-SQL语法; 2.了解触发器的作用; 3.了解编写触发器的T-SQL语法。 三、实验内容 (一)存储过程 在studentdb数据库中建立存储过程getPractice,查询指定院系(名称)(作为存储过程的输入参数)中参与“实践”课程学习的所有学生学号、姓名、所学课程编号与课程名称,若院系不存在,返回提示信息。 提示:D_Info表中存储了院系代码D_ID,而St_Info表中学号字段St_ID的前两位与之对应,则D_Info表与St_Info表之间的联系通过这两个字段的运算构成连接条件。 1.分别执行存储过程getPractice,查询“法学院”与“材料科学与工程学院” 的学生中参与“实践”课程的所有学生学号、姓名、所学课程编号与课程名称。 create procedure getPractice @D_Name varchar(30) output as begin if not exists (select * from D_Info where D_Name= @D_Name ) print '对不起,该院系不存在' else select st_info、St_ID,C_Info、C_No,C_Name from s_c_info inner join st_info on st_info、St_ID=s_c_info、st_id inner join C_Info on s_c_info、c_no=C_Info、C_No where st_info、St_ID in ( select St_ID from st_info join D_Info on D_Info、D_ID =left(st_info、St_ID,2) where C_Info、C_Type='实践' and D_Info、D_Name= @D_Name ) end go

触发器实验报告

. . . . .. . 实验报告 课程名称:数字电子技术基础实验 指导老师: 周箭 成绩:__________________ 实验名称:集成触发器应用 实验类型: 同组学生姓名:__邓江毅_____ 一、实验目的和要求(必填) 二、实验内容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 实验内容和原理 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 实验截图:

数电实验触发器及其应用

数电实验触发器及其应用 数字电子技术实验报告 实验三: 触发器及其应用 一、实验目的: 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被水浸沿时

存储过程与触发器 实验报告

信息工程学院实验报告 课程名称:《数据库原理》 实验项目名称:存储过程与触发器 一、实验目的: (1)了解存储过程的概念 (2)掌握创建、执行存储过程的方法 (3)了解查看、修改和删除存储过程的方法 (4)了解触发器的概念 (5)掌握创建触发器的方法 (6)掌握查看、修改、删除触发器信息的方法 二、实验设备与器件 Win7 +Sql server 2008 三、实验内容与步骤 (一)存储过程 运行实验四附录中的SQL语句,准备实验数据。然后创建下列存储过程,并调试运行存储过程,查看运行结果。 1.在企业管理器中创建一个名为StuInfo的存储过程,完成的功能是在student表中查询系号为D2的学号、姓名、性别、年龄、系号的内容。 CREATE PROCEDURE StuInfo AS SELECT SNO AS学号, SNAME AS姓名, SSEX AS性别, SAGE AS年龄, DNO AS系号 FROM student WHERE DNO='D2' 结果: stuinfo 2.使用T_SQL语句创建存储过程,完成的功能是在表student,course和study中查询以下字段:学号、姓名、性别、课程名称、考试分数。

use mydb --查询是否已存在此存储过程,如果存在,就删除它 if exists(select name from sysobjects where name='StuScoreInfo'and type='P') drop procedure StuScoreInfo go --创建存储过程 CREATE PROCEDURE StuScoreInfo as select student.sno as学号, sname as姓名, ssex as性别, https://www.360docs.net/doc/1b12514055.html,ame as课程名称, study.grade as考试分数 from student,course,study where student.sno=study.sno and https://www.360docs.net/doc/1b12514055.html,o=https://www.360docs.net/doc/1b12514055.html,o 结果: StuScoreInfo 3.使用T_SQL语句创建一个带有参数的存储过程stu_sno_info,该存储过程根据传入的学生编号,在student表中查询此学生的信息。 if exists(select name from sysobjects where name='stu_info'and type='P') drop procedure stu_info go --创建存储过程 create procedure stu_info @sno varchar(8) as select sno as学号, sname as姓名, ssex as性别, sage as年龄, dno as年级

实验五 存储过程和触发器的定义和使用3

实验五存储过程和触发器的定义和使用 一、实验目的 1、掌握局部变量、全局变量、流程控制语句的使用方法 2、了解存储过程的类型和作用,并掌握使用对象资源管理器和Transact-SQL语句创建 存储过程的方法及使用方法。 3、理解触发器的特点和作用,并掌握使用Transact-SQL语言创建触发器的方法 二、实验内容 1.在学生成绩库中中有如下各表: 学生表(Student) 学号姓名性别出生日期专业所在系联系电话020101杨颖01980-7-20计算机应用计算机88297147 020102方露露01981-1-15信息管理计算机88297147 020103俞奇军11980-2-20信息管理计算机88297151 020104胡国强11980-11-7信息管理计算机88297151 020105薛冰11980-7-29水利工程水利系88297152 020201秦盈飞01981-3-10电子商务经济系88297161 020202董含静01980-9-25电子商务经济系88297062 020203陈伟11980-8-7电子商务经济系88297171 020204陈新江11980-7-20房建水利系88297171 create database学生成绩数据库 create table Student ( 学号Char(6)not null, 姓名Char(8)not null, 性别Bit not null, 出生日期smalldatetime, 专业Char(10), 所在系Char(10), 联系电话Char(11)null ) 课程表(Course) 课程号课程名教师开课学期学时学分 101计算机原理陈红2453 102计算方法王颐3453 103操作系统徐格2604 104数据库原理及应用应对刚3755 105网络基础吴江江4453 106高等数学孙中文1906 107英语陈刚1906 108VB程序设计赵红韦3705

实验五-触发器和存储过程

实验五:触发器和存储过程 一.实验目的:理解触发器和存储过程的含义,掌握用SQL语句实现触发器和存储过程的编写,并初步掌握什么情况下使用事务。 二.实验内容: 有一个小型的图书管理数据库,包含的表为: bookstore(bookid,bookname,bookauthor,purchasedate,state);--图书库存表 borrowcard(cardid,ownername);--借书证表 borrowlog(cardid,bookid,borrowdate,returndate);--借书记录表 写一个存储过程,实现借书操作,要求有事务处理。(1)读者借书,要先设置书籍不在库标志state(借出),然后增加借书记录,在同一事务中完成。(2)要求在事务执行过程中引入错误触发事件,以此体会事务的错误保护机制和事务编程的作用。(3)要求用触发器实现表的完整性控制。 三、操作与运行 1.创建图书数据库: create table bookstore (bookid int not null primary key, bookname char(20),

bookauthor char(20), purchasedate datetime, state char(4) ) create table borrowcard (cardid int not null primary key, ownername char(20) ) create table borrowlog (cardid int not null, bookid int not null, borrowdate datetime, returndate datetime, primary key(cardid,bookid), ---foreign key(cardid)references borrowcard(cardid), ---foreign key(bookid)references bookstore(bookid) ) 通过以上语句,可以看到数据库中的表建立成功。 2.创建存储过程: create proc book_borrow @mycardid_in int, @mybookid_in int,

触发器及其应用实验报告 - 图文-

实验报告 一、实验目的和任务 1. 掌握基本RS、JK、T和D触发器的逻辑功能。 2. 掌握集成触发器的功能和使用方法。 3. 熟悉触发器之间相互转换的方法。 二、实验原理介绍 触发器是能够存储1位二进制码的逻辑电路,它有两个互补输出端,其输出状态不仅与输入有关,而且还与原先的输出状态有关。触发器有两个稳定状态,用以表示逻辑状态"1"和"0飞在二定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一个具有记忆功能的二进制信息存储器件,是构成各种时序电路的最基本逻辑单元。 1、基本RS触发器 图14-1为由两个与非门交叉祸合构成的基本RS触发器,它是无时钟控制低电平直接触发的触发器。 基本RS触发器具有置"0"、置"1"和保持三种功能。通常称s为置"1"端,因为 s=0时触发器被置"1"; R为置"0"端,因为R=0时触发器被置"0"。当S=R=1时状态保持,当S=R=0时为不定状态,应当避免这种状态。

基本RS触发器也可以用两个"或非门"组成,此时为高电平有效。 S Q S Q Q 卫R Q (a(b 图14-1 二与非门组成的基本RS触发器 (a逻辑图(b逻辑符号 基本RS触发器的逻辑符号见图14-1(b,二输入端的边框外侧都画有小圆圈,这是因为置1与置。都是低电平有效。 2、JK触发器 在输入信号为双端的情况下,JK触发器是功能完善、使用灵活和通用性较强的一种触发器。本实验采用74LS112双JK触发器,是下降边沿触发的边沿触发器。引脚逻辑图如图14-2所示;JK触发器的状态方程为: Q,,+1=J Q"+K Q 3 5

J Q CLK K B Q 图14-2JK触发器的引脚逻辑图 其中,J和IK是数据输入端,是触发器状态更新的依据,若J、K有两个或两个以上输入端时,组成"与"的关系。Q和Q为两个互补输入端。通常把Q=O、Q=1的状态定为触发器"0"状态;而把Q=l,Q=0 定为"}"状态。 JK触发器常被用作缓冲存储器,移位寄存器和计数器。 CC4027是CMOS双JK触发器,其功能与74LS112相同,但采用上升沿触发,R、S端为高电平

触发器的使用实验报告

实验II、触发器及其应用 一、实验目的 1、掌握基本RS、JK、D和T触发器的逻辑功能 2、掌握集成触发器的逻辑功能及使用方法 3、熟悉触发器之间相互转换的方法 二、实验原理 触发器具有两个稳定状态,用以表示逻辑状态“1”和“0”,在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态,它是一个具有记忆功能的二进制信息存储器件,是构成各种时序电路的最基本逻辑单元。 1、基本RS触发器 如图1为两个与非门交叉耦合构成的基本RS触发器,它是无时钟控制低电平直接触发的触发器。基本RS触发器具有置“0”、置“1”和“保持”三种功能。通常称为置“1” 段,因为=0(=1)时触发器被置为“1”;为置“0”端,因为=0(=1)时触发器被置“0”,当==1时状态保持;==0时,触发器状态不定,应避免此种情况发生,表1为基本RS 触发器的状态表。 图1、基本RS触发器 表1、基本RS触发器功能表 输入输出 0 1 1 0 1 0 0 1 1 1 0 0 不定不定 基本RS 2、JK触发器

在输入信号为双端的情况下,JK触发器的功能完善、使用灵活和通用性较强的一种触发器。本实验采用74LS112双JK触发器,是下降沿出发的边沿触发器。引脚功能及逻辑符号如图2所示。 图2、74LS112双JK触发器引脚排列及逻辑符号 JK触发器的状态方程为:=J+ J和K是数据输入端,是触发器状态更新的依据,若J、K有两个或者两个以上输入端时,组成“与”的关系。和为两个互补输出端。通常把=0,=1的状态定为触发器“0” 状态;而把=1,=0定为“1”状态。下降沿触发JK触发器功能表如表2所示。 表2、JK触发器功能表 JK触发器常被用作缓冲存储器,移位寄存器和计数器。 3、D触发器 在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为=D,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器,触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的寄存,移位寄存,分频和波形发生等。有很多种型号可供各种用途的需要而选用。如双D 74LS74、四D 74LS175、六D 74LS174等。 下图为双D774LS74的引脚排列及逻辑符号。功能表如表3.

数据库存储过程与触发器实验报告

南昌航空大学实验报告 二00 年月日 课程名称:数据库概论实验名称:数据库存储过程与触发器 班级:122031 姓名:同组人: 指导教师评定:签名: 一、实验环境 1.Windows2000或以上版本; 2.SQLServer 2005。 二、实验目的 熟悉不同数据库的存储过程和触发器,重点实践SQL Server2005,掌握SQL Server2005中有存储过程与触发器的相关知识。 三、实验要求 完成实验指导书中p115-7和p132 -4。 四、实验步骤及参考源代码 1.创建与执行存储过程 create procedure C_P_Proc as select distinct https://www.360docs.net/doc/1b12514055.html,o,cna,pna,num from paper,customer,cp where https://www.360docs.net/doc/1b12514055.html,o=https://www.360docs.net/doc/1b12514055.html,o and paper.pno=cp.pno and cna='李涛' or cna='钱金浩' go execute C_P_Proc 2.删除存储过程 drop procedure C_P_Proc 3.创建插入触发器 create trigger TR_PAPER_I ON PAKER12203125 FOR INSERT AS DECLARE @appr float DECLARE @apno int SELECT @appr=ppr,@apno=pno from inserted begin if @appr<0 or @appr is null begin

raiserror('报纸的单价为空或小于!',16,1) update paper set ppr=10 where paper.pno=@apno end end 4.创建删除触发器 create Trigger TR_PAPER_D on PAKER12203125 after delete as declare @ipno char(6) declare @icount int; select @icount= count(*) from deleted,cp where deleted.pno=cp.pno if @icount>=1 begin select @ipno=pno from deleted raiserror('级联删除cp表中的数据',16,1) delete from cp where cp.pno=@ipno end 5.创建修改触发器 create trigger TR_PAPER_U ON PAKER12203125 for update as declare @ippr float select @ippr=ppr from inserted if @ippr<0 or @ippr is null begin raiserror('输入单价不正确',16,1) rollback transaction end 6. 分别对PAKER12203125表进行插入、修改、删除操作 insert into PAKER12203125 (pno,pna,ppr)values('000006','江西日报','1') insert into PAKER12203125 (pno,pna,ppr)values('000007','江南都市报','15.5') delete from PAKER12203125 where pno='000001' update PAKER12203125 set ppr=12.5 where pno='000002' update PAKER12203125 set ppr=-2 where pno='000004' 五、实验结果

触发器实验报告

触发器实验报告 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

实验报告 课程名称:数字电子技术基础实验 指导老师: 周箭 成绩:__________________ 实验名称:集成触发器应用 实验类型: 同组学生姓名:__邓江毅_____ 一、实验目的和要求(必填) 二、实验内容和原 理(必填) 三、主要仪器设备(必填) 四、操作方法和实 验步骤 五、实验数据记录和处理 六、实验结果与分 析(必填) 七、讨论、心得 实验内容和原理 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 实验截图: 专业:电卓1501 姓名:卢倚平 学号: 日期:地点:东三404

(上:Qn ,下:CP ,J 为高电平时) 2、D 触发器转换为T ’触发器实验 设计过程:D 触发器和T ’触发器的次态方程如下: D 触发器:Q n+1= D , T ’触发器:Q n+1=!Q n 若将D 触发器转换为T ’触发器,则二者的次态方程须相等,因此有:D=!Qn 。 实验截图: (上: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 。 实验截图:

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

实验五 触发器及其应用(仿真) 一、实验目的 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的反,通过与非门封锁其他人的抢答开关。

第6章_存储过程与触发器练习题

有教师表(教师号,教师名,职称,基本工资),其中基本工资的取值与教师职称有关。实现这个约束的可行方案是( )。 A 在教师表上定义一个视图 B 在教师表上定义一个存储过程 C 在教师表上定义插入和修改操作的触发器 D 在教师表上定义一个标量函数 参考答案 C 在SQL SERVER中,执行带参数的过程,正确的方法为()。 A 过程名参数 B 过程名(参数) C 过程名=参数 D ABC均可 参考答案 A 在SQL SERVER服务器上,存储过程是一组预先定义并()的Transact-SQL语句。 A 保存 B 解释 C 编译 D 编写 参考答案 C 在SQL Server中,触发器不具有()类型。 A INSERT触发器 B UPDATE触发器 C DELETE触发器 D SELECT触发器 参考答案 D

()允许用户定义一组操作,这些操作通过对指定的表进行删除、插入和更新命令来执行或触发。 A 存储过程 B 规则 C 触发器 D 索引 参考答案 C 为了使用输出参数,需要在CREATE PROCEDURE语句中指定关键字( )。 A OPTION B OUTPUT C CHECK D DEFAULT 参考答案 B 下列( )语句用于创建触发器。 A CREATE PROCEDURE B CREATE TRIGGER C ALTER TRIGGER D DROP TRIGGER 参考答案 B 下列( )语句用于删除触发器。 A CREATE PROCEDURE B CREATE TRIGGER C ALTER TRIGGER D DROP TRIGGER 参考答案 D

D触发器及其应用实验报告

实验五D触发器及其应用 实验人员:班号:学号: 一、实验目的 1、熟悉D触发器的逻辑功能; 2、掌握用D触发器构成分频器的方法; 3、掌握简单时序逻辑电路的设计 二、实验设备 74LS00 ,74LS74,数字电路实验箱,数字双踪示波器,函数信号发生器 三、实验内容 1、用74LS74(1片)构成二分频器、四分频器,并用示波器观察波形; 74LS74是双D触发器(上升沿触发的边沿D触发器),其管脚图如下: 其功能表如下: ○1构成二分频器:用一片74LS74即可构成二分频器。实验电路图如下:

○2构成四分频器:需要用到两片74LS74。实验电路图如下: 2、实现如图所示时序脉冲(用74LS74和74LS00各1片来实现) 将欲实现功能列出真值表如下:

Q 1n+1=Q 0n =D 1 Q 0n+1=Q 1n ????=D 0 F ′=Q 1n Q 0n ???? F =F ′?CP 连接电路图如下: 四、实验结果 1、用74LS74(1片)构成二分频器、四分频器。示波器显示波形如下: ○ 1二分频器: ○ 2四分频器:

2、实现时序脉冲。示波器显示波形如下: 五、故障排除 在做“用74LS74(1片)构成二分频器、四分频器”时,连接上示波器后,发现通道二总显示的是类似于电容放电的波形,但表现出了二分频。反复排查问题均没有发现原因。最后换了一根连接示波器的线,便得到了理想的结果。 在示波器使用时想要用U盘保存电路波形,不会操作。后来在询问了同学之后才知道只需要按“print”就好。 六、心得体会 通过此次实验,我更深入地领悟了触发器的原理和用法,还复习了示波器的用法,还学会了如何保存示波器波形。

实验五--------触发器及应用

实验五触发器及应用 院系:信息科学与技术学院 专业:电子信息工程 姓名:刘晓旭 学号:2011117147 一:实验目的 1.掌握RS,D,JK触发器的电路结构及其逻辑功能。 2.学习各种触发器功能的测试及应用方法。 3.掌握触发器的应用。 二:实验器材 74LS00四2输入与非门 74LS20二4输入与非门 74LS74双D正沿触发器 74LS76双JK触发器 蜂鸣器,三极管,电阻若干,示波器,函数信号发生器,稳压电源 三:实验内容 1.单次脉冲发生器 按照图 5.7(a)所示电路接线即构成单次脉冲发生器。工作时,每按 一次按键就从Q端输出工作脉冲。波形如图5.7(b)所示。脉冲宽度 T 取决于开关按下的时间,用双踪示波器同时观察 Q,Q波形。

图1 波形如图(2) 图 2 2.测试D 触发器的逻辑功能 将D 触发器74LS74的S D ,R D 和D 分别接逻辑开关,CP 接单次脉冲。Q,Q 接发光二极管,按D 触发器的逻辑功能进行测试,记录测试结果。 按照图示连接电路

图3 当1D 接高电平时,给电路一个单次脉冲,Q 总是处于高电平; 当1D 接低电平时,给电路一个单次脉冲,Q 总是处于低电平。 满足D 触发器的特性表(1): 表1 3.测试JK 触发器的逻辑功能。 JK 触发器74LS76按图所示的电路连线,用函数发生器输出0~5V 方波信号作 图示

图4 波形如图5 : 图5 4,触发器的相互转换 (1) JK 触发器转换成T 触发器,按图(a ),(b)所示连接电路,组成T ,T ’触 发器,记录测试结果:

图6 特性图如表2 表2 当T=1时,每来一个脉冲信号,,状 而T=0时,cp信号到达后,它的波形不变 波形如图7所示: 图7

实验5触发器的定义

实验5触发器的定义 一实验题目:触发器的定义。 二实验目的:熟悉触发器的定义和使用。 三实验内容及要求: (从下面10个题目中选一个) 题目一: 学生(学号,年龄,性别,系名) 课程(课号,课名,学分,学时) 选课(学号,课号,成绩) 1.建立学生表的insert触发器,若向学生表中插入一条记录,则自动向选课表中插入一行,令该生选一门选修人数最多的课。 2.在建立学生表的delete触发器,若选课表中该生有选课记录,则拒绝删除,要求在删除学生信息同时,将相关表中的信息全部删除。 题目二: 图书(书号,书名,价格,出版社) 读者(卡号,姓名,年龄,所属单位) 借阅(书号,卡号,借阅日期) 建立图书的insert触发器,若向图书中插入一条记录,则自动向借阅表中插入一行,令该书被借阅次数最多的读者借阅。 题目三: 商品(编号,品名,进价,库存,售价,厂商编号)

顾客(卡号,姓名,电话,积分) 厂商(编号,厂址,名称、电话) 销售(顾客卡号,商品编号,数量,日期) 建立商品的delete 触发器,只有当此商品没有人买时才可删除,若有销售记录不能删除。 题目四: 图书(书号,书名,作者编号,价格,出版社编号) 作者(编号,姓名,电话) 出版社(编号,出版社名称,地址) 建立作者的delete 触发器,只有当此作者没有任何作品才可删除,若有出书的记录不能删除。 题目五: 零件(编号,名称,颜色) 车间(编号,名称,人数,主任) 产品(编号,名称,车间编号) 使用(产品编号,使用零件编号,个数) 建立零件的delete 触发器,只有当此零件没有产品用时才可删除,若有使用记录不能删除。 题目六: 药品(编号,名称,价格,厂商) 处方(药品编号,数量,医生编号) 医生(编号,姓名,科室,职称)

相关文档
最新文档