数据库实验二数据查询和视图操作

实验内容:

(1)求数学系学生的学号和姓名。

(2)求选修了课程的学生学号。

(3)求选修课程号为‘2’的学生号和成绩,并要求对查询结果按成绩的降序排列,如果成绩相同按学号的升序排列

(4)求选修课程号为’2’且成绩在80~90之间的学生学号和成绩,并将成绩乘以0.8输出。

(5)求数学系或计算机系姓张的学生的信息。

(6)求缺少了成绩的学生的学号和课程号。

(7)查询各个课程号与相应的选课人数。

每条语句一个截图。

(二) 多表连接查询

(1)查询 

(2)求学生的学号、姓名、选修的课程及成绩。

(3)求选修课程号为‘1’且成绩在90分以上的学生学号、姓名和成绩。

(4)查询每一门课程的间接先行课。

(5)查询与’刘晨’在同一个系学习的学生。

(6)查询选修了课程名为‘信息系统‘的学生学号和姓名。

(7)查询平均成绩在80分以上的学生学号和平均成绩。

(8)查询选修了1门以上课程的学生的学号。

每条语句一个截图。

(三) 嵌套查询

(1)求选修了信息系统的学号和姓名。

(2)查询与刘晨在同一个系学习的学生。

(3)求选修1号课程的成绩高于刘晨的成绩(指刘晨选修的所有的课程的成绩)的学生学号及成绩。

(4)求其他系中比计算机系某一学生年龄小的学生(即年龄小于计算机系年龄最大者的学生)。

(5)求其他系中比计算机系学生年龄都小的学生姓名及年龄。

(6)求没有选修3号课程的学生姓名。

(7)查询选修了全部课程的学生姓名。

20

(8)求至少选修了学号为“200215121”的学生所选修全部课程的学生学号和姓名。

(9)求选修课程超过2门的学生的学号和姓名。

每条语句一个截图。

(四) 视图

(1)建立信息系学生的视图。并查询此视图,观察结果。

(2)(在视图上建立)建立信息系选修了1号课程的学生的视图。查询此视图,并观察结果。

(3)将学生的学号及其平均成绩定义为一个视图。查询此视图,观察结果。

(4)将Student表中所有女生记录定义为一个视图F_stu(sno,sname,sdept,sex),并设置其更新限制with check option。

(5)对4中的视图进行insert操作,将sno为200215129,sname为‘smith’,sdept为‘MA’插入视图中,结果如何?

插入失败

(6)对4中的视图进行insert操作,将sno为200215129,sname为‘smith’,sdept为‘MA’,ssex为‘女’插入视图中,结果如何?

插入成功

(7)第5、6题的执行结果有什么区别?

一个失败一个成功;

(五)思考题:

(1)Where子句中能否用聚集函数作为条件表达式。

不能

(2)多表连接查询中如果显示的某一属性不止一个表中出现,应如何处理。(例:(二)多表连接查询中的第2题)。

确定要显示的为那个表出现的属性,如确定是student.sno或sc.sno;

(3)在嵌套查询中,什么情况下用“IN”和“=”都可以。

内层查询只返回一个值。

猜你喜欢

转载自blog.csdn.net/qq_56350439/article/details/124557845