数据库实验5 数据库的集合查询和统计查询实验

实验5  数据库的集合查询和统计查询实验

一、实验目的

本实验的目的是使学生熟练掌握SQL Server 2008查询分析器的使用方法,加深SQL语言查询语句的理解。熟练掌握数据查询中的分组、统计、计算和集合的操作方法。

二、实验时数  2学时

[相关知识]

(1) 分组和SQL函数查询

SQL函数是综合信息的统计函数,包括计数、求最大值、最小值、平均值、和值等,较详细的SQL函数及功能见第三章3.3节(SQL查询用的函数)。SQL函数可作为列标识符出现在SELECT子句的目标列或HAVING子句的条件中。在SQL查询语句中,如果有GROUP BY分组子句,则语句中的函数为分组统计函数;如果没有GROUP BY分组子句,则语句中的函数为全部结果集的统计函数。

表1  基本的SQL函数

函数

功能

AVG(<数值表达式>)

求与字段相关的数值表达式的平均值

SUM(<数值表达式>)

求与字段相关的数值表达式的和值

MIN(<字段表达式>)

求字段表达式的最小值

MAX(<字段表达式>)

求字段表达式的最大值

COUNT(*|<字段>)

求记录行数(*),或求不是NULL的字段的行数

(2) 集合查询

   每一个SELECT语句都能获得一个或一组元组。若要把多个SELECT语句的结果合并为一个结果,可用集合来完成。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS。

   标准SQL语言中提供了并操作UNION,没有直接提供交操作INTERSECT和差操作MINUS,但可以用其他方法来实现,具体实现方法依查询不同而不同。

三、实验内容

本实验的主要内容是:

  1. 分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。
  2. 使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。
  3. 集合查询实验。该实验并操作UNION、交操作INTERSECT和差操作MINUS的实现方法。

具体完成以下例题,将它们用SQL语句表示,在学生选课中实现其数据查询操作。

例1 求学生的总人数

 

数据库实验5 数据库的集合查询和统计查询实验

例2 求选修了课程的学生人数

数据库实验5 数据库的集合查询和统计查询实验

 

例3 求课程和选修了该课程的学生人数

数据库实验5 数据库的集合查询和统计查询实验

 

例4 求选修超过3门课的学生学号

数据库实验5 数据库的集合查询和统计查询实验

 

例5 查询计算机科学系的学生及年龄不大于19岁的学生

数据库实验5 数据库的集合查询和统计查询实验

 

例6 查询计算机科学系的学生与年龄不大于19岁的学生的交集

数据库实验5 数据库的集合查询和统计查询实验

 

例7 查询计算机科学系的学生与年龄不大于19岁的学生的差集

数据库实验5 数据库的集合查询和统计查询实验

 

例8 查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的交集

数据库实验5 数据库的集合查询和统计查询实验

数据库实验5 数据库的集合查询和统计查询实验

 

 

例9 查询选修课程‘C1’的学生集合与选修课程‘C2’的学生集合的差集

数据库实验5 数据库的集合查询和统计查询实验

 

 

数据库实验5 数据库的集合查询和统计查询实验

四、实验步骤

将查询需求用SQL语言表示:在SQL Server查询分析器的输入区中输入SQL查询语句:设置查询分析器的结果区为Standard Execute(标准执行)或Execute to Grid(网格执行)方式;发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。

五、收获体会