数据库实验报告(7个实验完整附截图) 联系客服

发布时间 : 星期一 文章数据库实验报告(7个实验完整附截图)更新完毕开始阅读171d0eef27d3240c8447eff6

ELSE SET BJ=1; END IF; END $$ Delimiter ;

调用该存储过程:CALL COMPA('2008002','2008003',@BJ);

查看结果:SELECT @BJ

2、触发器:

(1)创建触发器,在 student表中删除学生信息的同时将 sc表中该学生的 选课信息删除,以确保数据的完整性:

CREATE TRIGGER deleteSm before DELETE ON student FOR EACH ROW DELETE FROM sc WHERE Sno=OLD.Sno;

删除student 表中的一行数据,然后查看 sc表的变化: DELETE FROM student WHERE Sno='2008007'

观察sc表的变化;

(2)假设student1 表和student表的结构和内容都相同,在 student 上创 建一个触发器,如果添加一个学生的信息,该信息也会被添加到 student1 表中: delimiter $$

CREATE TRIGGER student_Ins

AFTER INSERT ON student FOR EACH ROW BEGIN

INSERT INTO student1

VALUES(new.Sno,new.Sname,new.Ssex,new.Sage,new.Sdept); END $$ Delimiter ;

向student 表中添加一条新信息('2008006','杨过','男',19,'IS') : INSERT INTO student

VALUES('2008006','杨过','男',19,'IS'); 观察student1表的变化;

(3)定义一个BEFORE行级触发器,为teacher 表定义完整性规则“插入教 授的信息时,工资不得低于 4000元,如果低于 4000元,则自动改为4000 元”: Create table teacher

( Tno varchar(20) primary key, Tname varchar(20), Tsex varchar(2), Job varchar(10), Income varchar(10) );

CREATE TRIGGER teacher_Income BEFORE INSERT ON teacher FOR EACH ROW BEGIN

IF(new.Job='教授')AND(new.salary<4000) THEN Set new.salary=4000; END IF; END;

向teacher表中添加两条新信息('10006','林涛','男','教授',3500)和 ('10007','冯巩','男','讲师',3500),以对比效果:

INSERT INTO teacher

VALUES('10006','林涛','男','教授',3500);

INSERT INTO teacher

VALUES('10007','冯巩','男','讲师',3500); SELECT * FROM teacher;

观察teacher表的结果;

(4)删除teacher 表上的触发器teacher_Income 。 DROP TRIGGER teacher_Income;

五、调试过程 1、

提示在第四行出现语法错误,将DECLARE SR1,SR2,FLOAT(10); 改为DECLARE SR1,SR2 FLOAT(10); 2、