数据库原理与技术实验三

                                                                                         南华大学

                                                                                    计 算 机 学 院

                                                                                         实验报告

 

                                                                              ( 2018学年春季学期 )

 

课程名称

数据库原理与技术A

实验名称

交互式SQL(2)

 

 

姓名

LFY

学号

2016

 

专业

 

班级

 

 

地点

 

教师

 

 

 

 

 

注意:次报告基于某固定人员学号RZxxxx号

  • 实验题目

(1)创建查询窗口,设置查询环境。

(2)组查询。

(3)统计查询。

(4)嵌套查询。

  1. 统计选修了【数据库原理】课程的学生人数。
  2. 查询没有选修【数据库原理】课程的学生信息。
  3. 查询其他系中比计算机系学生年龄都小的学生。
  4. 查询被0602001 学生或0602002 学生所选修的课程的课程号(用UNION 组合查询与IN 条件查询两种方法实现)。
  5. 查询0602001 学生和0602002 学生同时选修的课程的课程号(用 INTERSECT 组合查询与EXISTS 嵌套子查询两种方法实现)。
  6. 查询被0602001 学生选修,但没有被0602002 学生所选修的课程的课程 号(用EXCEPT 组合查询与NOT EXISTS 嵌套子查询两种方法实现)。

 

  • 实验要求

掌握查询中嵌套查询和组合查询的操作方法,进一步加深对 SELECT 语句的理解。 注意事项:子句的使用;注意语句的层次嵌套关系和括号的配对使用问题; 注意输入SQL 语句时均应使用西文操作符号。

代码截图要求:首先是题目,然后是一张截图,截图中应包括:SQL语句、结果和影响行数。代码和结果应该通过截图形式给出,并要求代码和结果应该在一张图上,并清晰地显示“表的名称”、“完整的查询语句”、“完整的结果(结果少于20行的情况下)”、“语句执行影响的行数”。

 

  • 实验代码

(1)创建查询窗口,设置查询环境。

数据库原理与技术实验三

(2)统计选修了【数据库原理】课程的学生人数

数据库原理与技术实验三

(3)查询没有选修【数据库原理】课程的学生信息

数据库原理与技术实验三

(4)查询其他系中比计算机系学生年龄都小的学生

数据库原理与技术实验三

数据库原理与技术实验三

(5)查询被0602001 学生或0602002 学生所选修的课程的课程号(用UNION 组合查询与IN 条件查询两种方法实现)

数据库原理与技术实验三

数据库原理与技术实验三

(6)查询0602001 学生和0602002 学生同时选修的课程的课程号(用 INTERSECT 组合查询与EXISTS 嵌套子查询两种方法实现)

数据库原理与技术实验三

数据库原理与技术实验三

(7)查询被0602001 学生选修,但没有被0602002 学生所选修的课程的课程 号(用EXCEPT 组合查询与NOT EXISTS 嵌套子查询两种方法实现)

数据库原理与技术实验三

数据库原理与技术实验三

  • 实验总结

        通过此次实验,主要的是训练对子查询的SQL语句,包括集合的比较,UNION组合查询、INTERSECT组合查询、EXCEPT组合查询以及IN条件查询,他们分别对应关系代数里面的并、且、减关系。不过这次实验里面最最最难的莫过于嵌条的子查询了,稍微不注意就容易把他们之间的嵌套逻辑关系弄混乱,而且容易漏括号,尤其是not exists嵌套子查询,有点类似于负负得正的味道,我理了半天的逻辑关系才把最后一题的not exists嵌套子查询SQL给理出来。不过受益匪浅,学到了也提升了不少。加强了select语句的理解和编写,达到了实验的最初设计目的。