数据库原理与技术实验二

                                                                                        南华大学

                                                                                   计 算 机 学 院

                                                                                        实验报告

 

                                                                              ( 2018学年春季学期 )

 

课程名称

数据库原理与技术A

实验名称

交互式SQL(1)

 

 

姓名

LFY

学号

2016

 

专业

 

班级

 

 

地点

 

教师

 

 

 

注意:次报告基于某固定人员学号RZxxxx号
一、数据库单表查询

  • 实验题目

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

(2)单表查询。

① 查询计算机系全体学生的信息。

② 查询姓“李”的学生的学号和姓名。

③ 查询课程表中先行课为空的课程名。

④ 查询考试成绩有不及格的学生的学号。

⑤ 求选修了C1 课程或C2 课程的学生的学号及成绩。

⑥ 查询全体计算机系学生的姓名及其年龄。

⑦ 查询计算机系在1986-1987 年之间出生的学生的姓名。

⑧ 查询姓“李”的前两个学生的学号和姓名。

⑨ 查询选修了两门以上课程的学生学号与课程数。

⑩ 查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按照平均成绩降序排列。

  • 实验要求

掌握单表查询SELECT、FROM、WHERE 的用法,特别要掌握比较运 算符、逻辑运算符的使用。

注意事项:子句WHERE<条件>表示元组筛选条件;子句HAVING<条件>表示元组选择条件;子句HAVING<条件>必须和GROUP BY 子句配合使用;注意输入SQL 语 句时均应使用西文操作符号。

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

 

  • 实验代码
  1. 创建查询窗口,设置查询环境。

数据库原理与技术实验二

   2.查询计算机系全体学生的信息

数据库原理与技术实验二

  3.查询姓“李”的学生的学号和姓名

数据库原理与技术实验二

  4.查询课程表中先行课为空的课程名

数据库原理与技术实验二

  5.查询考试成绩有不及格的学生的学号

数据库原理与技术实验二

  6.求选修了C1 课程或C2 课程的学生的学号及成绩

数据库原理与技术实验二

  7.查询全体计算机系学生的姓名及其年龄

数据库原理与技术实验二

  8.查询计算机系在1986-1987 年之间出生的学生的姓名

数据库原理与技术实验二

  9.查询姓“李”的前两个学生的学号和姓名

数据库原理与技术实验二

  10.查询选修了两门以上课程的学生学号与课程数

数据库原理与技术实验二

  11.查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按照平均成绩降序排列

数据库原理与技术实验二

二、数据库多表连接查询

一.实验题目

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

(2) 多表复杂查询。

  (2.1) 查询选修了【数据库原理】的计算机系的学生学号和姓名。

  (2.2) 查询每一门课的间接先行课(即先行课的先行课)。

  (2.3) 查询学生的学号、姓名、选修课程的名称和成绩。

  (2.4) 查询选修了课程的学生姓名。

  (2.5) 查询所有学生的信息和所选修的课程。

  (2.6) 查询已被选修的课程的情况和所有课程的名字。

  (2.7) 列出学生所有可能的选修情况。

  (2.8) 查找计算机系的学生选修课程数大于2 的学生的姓名、平均成绩和选课 门数,并按平均成绩降序排列。

 

二.实验要求

理解多表查询的概念;掌握多表查询的SELECT、 FROM、WHERE、 JOIN子句的用法,特别要求比较内连接、外连接的结果。

注意事项:内连接、左外连接和右外连接的含义及表达方法;注意输入SQL 语 句时均应使用西文操作符号。

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

 

三.实验代码

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

数据库原理与技术实验二

(2.1) 查询选修了【数据库原理】的计算机系的学生学号和姓名

数据库原理与技术实验二

(2.2) 查询每一门课的间接先行课(即先行课的先行课)

数据库原理与技术实验二

(2.3) 查询学生的学号、姓名、选修课程的名称和成绩

数据库原理与技术实验二

(2.4) 查询选修了课程的学生姓名

数据库原理与技术实验二

(2.5) 查询所有学生的信息和所选修的课程

数据库原理与技术实验二

(2.6) 查询已被选修的课程的情况和所有课程的名字

数据库原理与技术实验二

数据库原理与技术实验二

(2.7) 列出学生所有可能的选修情况

 

数据库原理与技术实验二

(2.8) 查找计算机系的学生选修课程数大于2 的学生的姓名、平均成绩和选课 门数,并按平均成绩降序排列

数据库原理与技术实验二

四.实验总结

        通过此次实验,使得我对单表查询、多表连接查询以及子查询的SQL有了更进一步的熟练,不过后面部分实验有些题目感觉有点绕,题目意思有点读不太明了。

        通过此次的单表查询实验训练,我进一步实际操作学习到了模糊查询、聚合函数、排序、以及一些基本查询操作。另外通过多表连接查询的实验,我复习了内连接、外连接、子查询等SQL语句的查询操作。不过我相信查询操作是数据库里面用得最多最频繁的操作,可见其重要性,所以对查询操作的学习含糊不得,此实验中我们学习可能只是查询操作里面最最最基础的一部分,要学好学精还需要自己不断加以练习。当然通过后面章节的理论课学习我也了解到,仅仅是查询远远不够的,还需要考虑查询的效率,这就引发出了查询的代数优化和物理优化。

        题目虽少,但学问可多,只有通过自己动手去操作,动脑去想怎么书写实现的SQL语句才会有较大的进步。