数据库实验三

实验过程

1、基于实验二数据库中的三个表Student,Course,SC,进行如下的查询:

(1) 查询每个学生及其选修课情况(使用自然连接)。
数据库实验三_第1张图片
(2) 查询每个学生的学号、姓名、选修的课程及成绩。数据库实验三_第2张图片
(3) 查询选修了2号课程且成绩在80分以上的学生姓名,年龄。数据库实验三_第3张图片
(4) 查询选修了课程名为“操作系统”的学生学号和姓名。数据库实验三_第4张图片
数据库实验三_第5张图片
数据库实验三_第6张图片
(5) 查询与“王敏”在同一个系学习的学生。(用IN嵌套实现)
数据库实验三_第7张图片
(6) 查询其它系中比信息系某一学生年龄大的学生姓名和年龄。数据库实验三_第8张图片

(7) 查询选修了课程1或者选修了课程2的学生。(写出2种形式的查询语句)
1>自然连接
数据库实验三_第9张图片
2>嵌套循环
数据库实验三_第10张图片
(8) 查询没有选修2号课程的学生姓名。
数据库实验三_第11张图片
(9) 查询选修课程1的学生集合与选修课程2的学生集合的交集。
数据库实验三_第12张图片
(10) 查询信息系的学生与年龄不大于19岁的学生的差集。数据库实验三_第13张图片
2、用SQL语句实现“Student_DB_姓名首字母缩写”数据库中数据表的更新(给出查询语句或截图):
(1)删除信息系(IS)所有学生的选课记录。
数据库实验三_第14张图片
(2)修改Cno为“1”的记录的课程名为“数据库原理及应用”。数据库实验三_第15张图片
数据库实验三_第16张图片
(3)将信息系全体学生的成绩改为80。
数据库实验三_第17张图片
(4)删除姓名为张立的学生记录。
数据库实验三_第18张图片
数据库实验三_第19张图片
(5)将自己的信息添加到学生表中,院系写成IS(信息系)。(注:若学号太长超过9位,则从左边删除使其保留9位即可。)
数据库实验三_第20张图片
数据库实验三_第21张图片
(6)使用SQL增加一条记录到course表中,增加的记录内容如下:
(’9’,’数据挖掘’,’1’,5)
数据库实验三_第22张图片
数据库实验三_第23张图片
3、用SQL语句建立视图并对视图做相应的操作:
(1)建立计算机系学生的视图CS_View,要求视图中包含学生表中的所有属性,并要求进行修改和插入操作时仍须保证该视图只有计算机系的学生。
数据库实验三_第24张图片
(2)建立计算机系选修了’3’号课程且成绩在90分以下的学生视图CS_SC_View,并对此视图进行查询。
1> 建立视图
数据库实验三_第25张图片
2>查询视图
数据库实验三_第26张图片
(3)将学生的学号和平均成绩定义为一个视图。
数据库实验三_第27张图片
(4)利用所建立的视图,查询选修了2号课程的计算机系的学生。
数据库实验三_第28张图片
(5)将视图CS_View中学号为201215122的学生姓名改为“刘留”,并查看Student表中此学生姓名是否有变化,如有变化请说明原因。
1>修改数据
数据库实验三_第29张图片
数据库实验三_第30张图片
姓名改变原因:
未执行with check option条件,可以插入非计算机系的学生数据
(6)向视图CS_View中插入一条新的学生记录,其中学号为201215126,姓名为李三,年龄为20岁,院系为IS,若未能执行成功,则分析下执行结果。
数据库实验三_第31张图片
未执行成功原因:
插入值未与视图属性列一一对应,所以导致无法插入
(7)将视图CS_View中学号为201215121的学生院系改为IS,查看Student表中此学生院系是否发生变化。
数据库实验三_第32张图片
无法修改原因:
因为不满足视图创建时定义的with check option 条件,即只是可以操作为cs系学生。

你可能感兴趣的:(SQL,数据库)