数据库实验报告 (7)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三

实验名称:多表查询、数据更新、视图、实验性质:设计性、成绩:实验学时数:6学时、姓名:李娟、学号:5009140013

(2)查询每个学生的学号、姓名、选修的课程及成绩。

(3)查询选修了2号课程且成绩在80分以上的学生姓名,年龄。

(4)查询选修了课程名为“操作系统”的学生学号和姓名。

(5)查询与“王敏”在同一个系学习的学生。(用IN嵌套实现)

(6)查询其它系中比信息系某一学生年龄大的学生姓名和年龄。(写出2种形式的查询语句)

方式一:

方式二:

(7)查询选修了课程1或者选修了课程2的学生。(写出2种形式的查询语句)

方式一:

方式二;

(8)查询没有选修2号课程的学生姓名。

(9)查询选修课程1的学生集合与选修课程2的学生集合的交集。

(10)查询信息系的学生与年龄不大于19岁的学生的差集。

2、用SQL语句实现Student_DB数据库中数据表的更新(给出查询语句或截图):

(1)删除信息系(IS)所有学生的选课记录。

由于信息系学生没有选课,所以0行影响

(2)修改Cno为“1”的记录的课程名为“数据库原理及应用”。

检验

(3)将信息系全体学生的成绩改为80。

由于信息系无选课学生所以更改成绩无效

(4)删除姓名为张立的学生记录。

检验

(5)添加学生记录,姓名为张立,学号为200215125,性别为男,年龄19,院系为信息系(IS)。

检验

(6)使用SQL增加一条记录到course表中,增加的记录内容如下:(’9’,’数据挖掘’,’1’,5)

检验

3、用SQL语句建立视图并对视图做相应的操作:

(1)建立计算机系学生的视图CS_View(视图中包含学生表中所有属性),并要求进行修改和插入操作时仍须保证该视图只有计算机系的学生。

(2)建立计算机系选修了’3’号课程且成绩在90分以下的学生视图CS_SC_View

(3)将学生的学号和平均成绩定义为一个视图。

(4)利用所建立的视图,查询选修了2号课程的计算机系的学生。

(5)将视图CS_View中学号为201215122的学生姓名改为“刘留”,并查看Student表中此学生姓名是否有变化,如有变化请说明原因。

有变化,原因:视图CS_View是从Student表导出的表,是一个不实际存储数据的虚表,对视图的更新最终要通过视图消解转化为对基本表的更新

检验

(6)向视图CS_View中插入一条新的学生记录,其中学号为201215126,姓名为李三,年龄为20岁,院系为IS,若未能执行

成功,则分析下执行结果。

第一次失败分析原因:第(1)问建立的视图只有学号,姓名,年龄三列,与添加信息属性列对不上,所以删除视图CS_View,重新建立视图CS_View,这次视图中包括Student表中所有的属性列

第二次失败的原因:重新建立的视图CS_View指定了WITH CHECK OPTION 使得操作更新的行必须满足视图定义中谓语条件,即CS。而新

插入的学生记录中IS与其矛盾,所以无法执行。所以需要再次删除视图CS_View,重新建立视图CS_View,这次视图没有WITH CHECK OPTION 语句

第三次成功:

(7)将视图CS_View中学号为201215121的学生院系改为IS,查看Student表中此学生院系是否发生变化。然后删除视图CS_View 中学号为201215121的记录,并查看Student表中此学生是否被

删除,如被删除请说明原因。

更改成功

检验

删除记录:0行受影响,因为视图CS_View只存在CS系的学生记录,再有上一步的更改使得视图CS_View中不存在学号为201215121且在IS 系中学生行,所以删除学号为201215121的记录无效

相关文档
最新文档