计算机等级考试三级数据库历年真题解析[5]

日期:04-04| http://www.59wj.com |计算机三级考试|人气:120

计算机等级考试三级数据库历年真题解析[5]
wheresd=’计算机系’;
createviews_g(s#,gavg)asselects#,avg(grade)
fromscgroupbys#;
若用下面的sql语句对上述视图进行修改,它们能被成功执行吗?为什么?
(1)updatecs_ssetsname=’wangping’wheres#=’200301001’;
(这里假定在表s中存在学生号s#=’200301001’的行。)
(2)insertintocs_svalues(’200302189’,’yangxin’,21);
(这里假定在表s中不存在学生号s#=’200302189’的行。)
(3)updates_gsetgavg=85wheres#=’200301001’;
(这里假定在表sc中存在学生号s#=’200301001’的行。)
要求:
首先回答这三个sql语句中哪个(些)能被成功执行,哪个(些)不能被成功执行(12分),再进一步说明能被成功执行或不能被成功执行的理由(18分)。

答案:
(1).第(1)和(2)两个sql语句能被成功执行;第(3)个sql语句不能被成功执行。
(2).因为对视图的修改最终要转换为对基本表的修改。
ⅰ对于第(1)个sql语句能被成功执行的理由是:执行这个sql语句将转换成执行如下的sql语句:
updatessetsname=’wangping’
wheresd=’计算机系’ands#=’200301001’;
ⅱ对于第(2)个sql语句能被成功执行的理由是:执行这个sql语句将转换成执行如下的sql语句:
insertintosvalues(’200302189’,’yangxin’,null,21,’计算机系’)
或insertintos(s#,sname,age,sd)values(’200302189’,’yangxin’,21,’计算机系’)
转换后的这两个sql语句,在本题意的假定下是能够被成功执行的。所以第(1)和(2)个sql语句能被成功执行。
ⅲ对于第(3)个sql语句不能被成功执行的理由是:由于视图s_g中的一个行是由表sc中若干行经过分组求平均值得到的,因此对视图s_g的更新就无法转换成对基本表sc的更新。所以第(3)个sql语句不能被成功执行。

如果觉得《计算机等级考试三级数据库历年真题解析[5]》计算机三级考试,计算机三级考试试题,计算机三级考试内容,计算机三级考试真题不错,可以推荐给好友哦。
本文Tags: 计算机等级考试 - 计算机三级考试,计算机三级考试试题,计算机三级考试内容,计算机三级考试真题,
在百度中搜索相关文章:计算机等级考试三级数据库历年真题解析[5]
在谷歌中搜索相关文章:计算机等级考试三级数据库历年真题解析[5]
在soso中搜索相关文章:计算机等级考试三级数据库历年真题解析[5]
在搜狗中搜索相关文章:计算机等级考试三级数据库历年真题解析[5]
相关分类导航|
热门推荐|