在"学生-选课-课程"数据库中有三个关系:S(S,SNAME,SEX,AGE,S@D)@, SC(S,C,GRADE), C(C,CNAME,TEA
在"学生-选课-课程"数据库中有三个关系:S(S,SNAME,SEX,AGE,S@D)@, SC(S,C,GRADE), C(C,CNAME,TEACHER)。它们的主码分别是S,(S,C),C,并且其他属性都允许为空值(NULL)。用下面的SQL语句创建了两个视图:
create view CS_S as select S,SNAME,AGE from S where SD = 计算机系 ;
create view S_G(S,GAVG) as select S,avg(GRADE) from SC group by S ;
若用下面的SQL语句对上述视图进行修改,它们能被成功执行吗?为什么?
(1) update CS_S set SNAME = WANG PING where S = 200301001 ;
(这里假定在表S中存在学生号S = 200301001 的行。)
(2) insert into CS_S values ( 200302189 , YANG XIN , 21 ) ;
(这里假定在表S中不存在学生号S = 200302189 的行。)
(3) update S_G set GAVG = 85 where S = 200301001 ;
(这里假定在表SC中存在学生号S = 200301001 的行。)
要求:
首先回答这三个SQL语句中哪个(些)能被成功执行,哪个(些)不能被成功执行,再进一步说明能被成功执行或不能被成功执行的理由。
参考答案: