当前位置:首页 > 数据库实验1-6参考答案
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 BY Sno
SELECT * FROM AVG_CJ ORDER BY Gavg DESC
(4)修改视图IS_STUDENT,将年龄均加1。观察基本表Student中相应的数据是否发生变化。
UPDATE IS_STUDENT SET Sage=Sage+1
相应变化
(5)在视图IS_STUDENT中插入新的记录,学号为9531103,姓名为张玉,女,21岁。
INSERT INTO IS_STUDENT
VALUES('9531103','张玉','女',21,'')
(6)根据视图AVG_CJ,查询平均成绩大于60的学生的学号。 SELECT Sno FROM AVG_CJ WHERE Gavg>60
2、存储过程
(1)建立存储过程student_Grade1,功能是查询计算机系学生的成绩,包括学号,姓名,课程名,成绩,按学号升序排序。 存储过程代码:
CREATE PROC STUDENT_GRADE1 AS
SELECT STUDENT.SNO,SNAME,CNAME,GRADE FROM STUDENT,SC,COURSE WHERE STUDENT.SNO=SC.SNO
AND SC.CNO=COURSE.CNO AND SDEPT='计算机系' ORDER BY STUDENT.SNO ASC
执行存储过程代码:EXEC STUDENT_GRADE1
(2)建立存储过程student_Grade2,功能是根据参数提供的系名,查询该系学生的成绩,包括学号,姓名,课程名,成绩,按学号升序排序。
24
共分享92篇相关文档