数据库实验三

内容

1.基于实验1中建立的表,完成如下的视图操作:

(1)建立一个计算机系(CS)学生的视图COMPUTE_S,并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生;

(2) 建立一个信息系(IS)选修了’1’号课程且成绩在80分以上的学生视图IS_S1;

(3) 建立一个所有计算机系学生的学号、姓名、选修课程名以及成绩的视图COMPUTE_GRADE;

  1. 对视图进行SELECT、INSERT、UPDATE、DELETE操作

(1)通过COMPUTE_S视图插入一个新学生的信息:201215127,王建,21,男。

要求插入成功后student表中该学生的系值必须为“CS”,如不是,请修改视图后重新插入。

(2)更新COMPUTE_S视图中所有男生的年龄,都增加一岁,注意观察非计算机系男生的年龄是否被修改。

(3)假如你是计算机学院的教务人员,通过COMPUTE_GRADE视图查询数据库这门课程所有不及格学生的名单,体会视图在简化用户操作过程中的作用。

(4)对COMPUTE_GRADE进行插入:201215128,张杰,数据库,80。观察结果并分析失败原因。

(5)删除COMPUTE_S视图中所有学生的信息

代码

/*1*/
CREATE view COMPUTE_S
as
    select sno, sname, ssex,sage,sdept
    FROM student2020205224
    WHERE sdept='CS'
    WITH CHECK OPTION

CREATE VIEW IS_S1
AS
    select student2020205224.sno, sname, ssex
    FROM student2020205224, sc2020205224
    WHERE 
        student2020205224.sno=sc2020205224.sno AND
        student2020205224.sdept='IS' AND
        sc2020205224.grade>='80'
CREATE VIEW COMPUTE_GRADE
AS
    SELECT student2020205224.sno, sname, student2020205224.sdept, sc2020205224.grade
    FROM student2020205224, sc2020205224
    WHERE 
    student2020205224.sno=sc2020205224.sno 
/*添加学生*/
INSERT 
INTO COMPUTE_S
VALUES('201215127', '王建', '男', '18', 'CS')
/*更新年龄*/
update COMPUTE_S
set sage=sage+1
/*查询不及格*/
SELECT sno, sname
FROM COMPUTE_GRADE
where 
    sdept='IS'AND
    grade<60
/*尝试*/
代码:
INSERT 
INTO COMPUTE_GRADE
VALUES('201215128', '张杰', '数据库','80')
报错:
    提示不可更新因为修改会影响多个基表
/*删除*/
delete from COMPUTE_S
where sno!='null'
posted @   W-xzg  阅读(299)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
1 2 3
4
点击右上角即可分享
微信分享提示