数据库实验三
内容
1.基于实验1中建立的表,完成如下的视图操作:
(1)建立一个计算机系(CS)学生的视图COMPUTE_S,并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生;
(2) 建立一个信息系(IS)选修了’1’号课程且成绩在80分以上的学生视图IS_S1;
(3) 建立一个所有计算机系学生的学号、姓名、选修课程名以及成绩的视图COMPUTE_GRADE;
- 对视图进行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'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!