数据库实验1-6参考答案

内容发布更新时间 : 2025/5/7 7:30:37星期一 下面是文章的全部内容请认真阅读。

alter table student add check(sdept in('计算机系','数学系','信息系','物理系'))

4、触发器

(1)定义一个触发器,其基本功能是在SC表中增加或修改一个选课记录时,检查该课程的选课人数是否超过限定(可自行定义一个限定值,根据表中数据的情况而定)。若超过限定值,则拒绝操作。 触发器代码:

CREATE TRIGGER trig1 ON SC FOR INSERT,UPDATE AS

IF(SELECT COUNT(*) FROM SC WHERE CNO=(select CNO from INSERTED))>10 BEGIN

PRINT '选课人数超过上限' ROLLBACK END

(2)定义一个触发器,当删除Student表中数据时,先将删除的数据插入到另一个专门存放已删除数据的表中(实验时,首先定义一个与Student表结构相同的表用来存放删除的数据),然后执行删除操作。 触发器代码:

select top 0 * into s1 from student

create trigger trig2 on student for delete as

insert into s1 select * from deleted

5、用户权限控制

(1)在自己数据库中添加其他用户。

(2)为添加的用户进行授权和权限收回。相互检查是否获得了相应的权限。

sp_adduser 'rj107','rj107'

grant select on student to rj107

21

grant select,update(cname) on course to rj107 revoke select on course from rj107 sp_dropuser 'rj107'

四、实验小结

五、评阅成绩

实验预习20% 实验过程20% 实验结果30% 实验报告30% 总成绩 22

实验六 视图与存储过程

一、实验目的

1、掌握视图的定义及使用

2、掌握存储过程的建立和调用

二、实验预习

1、基本表与视图有什么不同?哪种视图可以更新?

2、视图定义语句格式:

3、什么是存储过程,其作用主要是什么?

三、实验内容和要求

1、视图(将执行的SQL语句写在下面)

(1)建立视图IS_STUDENT,视图中包含信息系全体学生的基本信息。 CREATE VIEW IS_STUDENT AS

SELECT * FROM STUDENT WHERE Sdept='信息系'

(2)建立视图CJ_STUDENT,视图中包含所有成绩不及格的学生的学号,姓名,课程名,成绩。

CREATE VIEW CJ_STUDENT AS

SELECT Student.Sno,Sname,Cname,Grade FROM STUDENT,Course,SC WHERE Grade<60 and Student.Sno=SC.Sno and Course.Cno=SC.Cno

23

(3)建立视图AVG_CJ,视图包括学生的学号以及他们的平均成绩,按成绩降序排列。

CREATE VIEW AVG_CJ(Sno,Gavg) AS

SELECT Sno,AVG(Grade) FROM SC GROUP

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi