2020河南国家电网公司人力资源招聘计算机专业考点(834)
DBMS实现视图更新的方法:转换为对基本表的更新。视图消解法(View Resolution)。
只有对成为“可更新”视图才能进行更新操作。
SQL2对“可更新”视图给出正式定义:从关系R选出某些属性(用select 而不是 select distinct)定义的视图,R本身可以是可更新的视图;Where中不能嵌套涉及R的子查询;Select必须包括足够多的属性,所有not null的属性必须包括。
对于视图元组的更新操作(INSERT、DELETE、UPDATA),有以下三条规则:
如果一个视图是从多个基本表使用联接操作导出的,那么不允许对这个视图执行更新操作。
如果在导出视图的过程中,使用了分组和聚集函数操作,也不允许对这个视图执行更新操作。
行列子集视图可以执行更新操作。
在SQL2中,允许更新的视图在定义时,必须加上“WITH CHECK OPTION”短语。DBMS在更新视图时会进行检查,防止用户通过视图对不属于视图范围内的基本表数据进行更新。
例:将信息系学生视图IS_Student中学号200215122的学生姓名改为“刘辰”。
UPDATE IS_Student
SET Sname= '刘辰'
WHERE Sno= ' 200215122 ';
转换后的语句:
UPDATE Student
SET Sname= '刘辰'
WHERE Sno= ' 200215122 ' AND Sdept= 'IS';
例:向信息系学生视图IS_S中插入一个新的学生记录:200215129,赵新,20岁
INSERT
INTO IS_Student
VALUES(‘95029’,‘赵新’,20);
转换为对基本表的更新:
INSERT
INTO Student(Sno,Sname,Sage,Sdept)
VALUES(‘200215129 ','赵新',20,'IS' );
例:删除信息系学生视图IS_Student中学号为200215129的记录
DELETE
FROM IS_Student
WHERE Sno= ' 200215129 ';
转换为对基本表的更新:
DELETE
FROM Student
WHERE Sno= ' 200215129 ' AND Sdept= 'IS';
更新视图的限制:一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新。对其他类型视图的更新不同系统有不同限制:
(1) 若视图是由两个以上基本表导出的,则此视图不允许更新
(2) 若视图的字段来自字段表达式或常数,则不允许对此视图执行INSERT和UPDATE操作,但允许执行DELETE操作。
(3) 若视图的字段来自集函数,则此视图不允许更新。
(4) 若视图定义中含有GROUP BY子句,则此视图不允许更新。
(5) 若视图定义中含有DISTINCT短语,则此视图不允许更新。
(6) 若视图定义中有嵌套查询,并且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。
(7) 一个不允许更新的视图上定义的视图也不允许更新
1.近日,上海口岸迎来一批特殊商品――约200公斤意大利面团。作为第二届中国国际进口博览会的参展食品,这批面团将在上海“化身”为面包等意式美食,呈现给第二届进博会上的中国采购商和消费者。
2.第二届中国国际进口博览会志愿者19日在国家会展中心(上海)宣誓上岗。
3.应执政的朱比利党邀请,中共中央委员、西藏自治区党委书记吴英杰率中共代表团于16日至19日访问肯尼亚,分别会见了肯尼亚国民议会代议长切博伊、朱比利党总书记图朱,表示愿进一步深化与朱比利党的关系,推动两国各领域交流合作不断深入发展。
4.英国议会下院19日投票通过一项关键修正案,实质上将迫使首相约翰逊致信欧盟、寻求再度推迟“脱欧”。但约翰逊随后表示,即使有法律要求,自己也不会再与欧盟谈判推迟“脱欧”。
5.智利军方19日晚宣布在首都圣地亚哥实施宵禁,以避免因公交系统涨价引发的暴力抗议进一步升级。
编辑推荐:
温馨提示:因考试政策、内容不断变化与调整,长理培训网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准! (责任编辑:长理培训)
点击加载更多评论>>