大二数据库实验

实验三

1.实验题目:数据表的查询

2.实验目和要求:

1)掌握SQL语句灵活的查询功能

2)熟悉SQL语言的基本查询,包括单表查询,分组统计查询,连接查询

3)掌握SQL的复杂查询,包括嵌套查询,集合查询

4)理解和掌握SQL查询语句各个子句的特点和作用,按照SQL语言规范写出具体的SQL查询语句并调试通过

3.实验步骤:

  1. 按实验内容要求完成各项操作
  2. 根据题目要求给出解决方案
  3. 提交实验报告

4.实验内容:

        1)查询学生的学号和所在系

        2)查询管理系的学生所选修的课程和成绩

        3)统计有学生选修的课程门数。

        4)统计HU老师所授每门课程的学生平均成绩。

        5)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。

        6)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。

        7)检索‘OS’课成绩高于该课平均成绩的同学学号。

        8)检索计算机系女生的学号和姓名。

        9)检索全体学生都选修的课程号和课程名。

        10)检索未选修任何课程的学生学号。

        11)检索WANG老师所授课程号、课程名。

        12)检索所有姓LI同学的基本信息。

        13)检索选修‘DATABASE’课程的学生学号。

        14)检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。

        15)检索至少选修了一门TIAN老师所授课程的学生姓名、学号。

5.实验总结

大二数据库实验_第1张图片

大二数据库实验_第2张图片

大二数据库实验_第3张图片

(1)查询学生的学号和所在系

 大二数据库实验_第4张图片

(2)查询管理系的学生所选修的课程和成绩

 大二数据库实验_第5张图片

(3)统计有学生选修的课程门数

大二数据库实验_第6张图片

(4)统计HU老师所授每门课程的学生平均成绩。

大二数据库实验_第7张图片

(5)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。

大二数据库实验_第8张图片

(6)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。

大二数据库实验_第9张图片

(7)检索‘OS’课成绩高于该课平均成绩的同学学号。

大二数据库实验_第10张图片

(8)检索计算机系女生的学号和姓名。

大二数据库实验_第11张图片

(9)检索全体学生都选修的课程号和课程名。 

大二数据库实验_第12张图片

(10)检索未选修任何课程的学生学号。

大二数据库实验_第13张图片

(11)检索WANG老师所授课程号、课程名。

大二数据库实验_第14张图片

 (12)检索所有姓LI同学的基本信息。

大二数据库实验_第15张图片

(13)检索选修‘DATABASE’课程的学生学号。

大二数据库实验_第16张图片

(14)检索年龄介于LIPING(小李)同学年龄和28岁之间的学生基本信息。

大二数据库实验_第17张图片

(15)检索至少选修了一门TIAN老师所授课程的学生姓名、学号。 

大二数据库实验_第18张图片

6、思考

  1. 举例说明在分组统计中,WHERE和HAVING有何区别

答:  类型:“Where”是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在结果返回之前起作用,且where后面不能使用“聚合函数”;

“Having”是一个过滤声明,所谓过滤是在查询数据库的结果返回之后进行过滤,即在结果返回之后起作用,并且having后面可以使用“聚合函数”。

使用的角度:

where后面之所以不能使用聚合函数是因为where的执行顺序在聚合函数之前。

  1. 请分析相干子查询和不相干子查询的区别

答:

处理次数不同:①相关子查询:相关子查询的处理不只一次,要反复求值,以供外层查询使用。②不相关子查询:不相关子查询的处理总共执行一次,执行完毕后将值传递给外部查询。

依赖不同:①相关子查询:相关子查询中查询条件依赖于外层查询中的某个值。②不相关子查询:不相关子查询是独立于外部查询的子查询,不依赖于外层查询中的某个值。

效率不同:①相关子查询:相关子查询可以嵌套多层,但嵌套层越多,效率越低。②不相关子查询:不相关子查询不可以嵌套,效率相较于相关子查询更高。

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