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

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

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


 

实验目的

 

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

 

相关知识

 

  • 分组和SQL函数查询

 

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

 

  • 基本的SQL函数


 image.png


  • 集合查询

 

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

 

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

 

实验内容

 

  • 本实验的主要内容是:

 

分组查询实验。该实验包括分组条件表达、选择组条件表达的方法。

 

使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。

 

集合查询实验。该实验并操作UNION、交操作INTERSECT和差操作except的实现方法。

 

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

 

  • 1.求学生的总人数

 

select COUNT(*) '总人数' from S


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


select COUNT(distinct sno) '选课人数' from S


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

 

select cno,COUNT(SNO) from SC
group by cno;


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

 

select sno from SC
group by sno
having COUNT(*)>3


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

 

select * from S  where sdept='CS'
union
select * from S where sage<=19


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

 

select * from S where sdept='CS'
intersect
select * from S where sage<=19


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

 

select * from S where sdept='CS'
except 
select * from S where sage<=19


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

 

select SNO from SC where cno='1'
intersect
select sno from SC where cno='2'


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

 

select SNO from SC where cno='1'
except
select sno from SC where cno='2'


实验步骤

 

将查询需求用SQL语言表示:在SQL Server查询分析器的输入区中输入SQL查询语句:执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止

 

收获体会

 

整体上这次试验不难,一定程度上让我对集合操作有了新的认识,它主要包括并操作UNION、交操作INTERSECT和差操作MINUS(EXCEPT)。通过反复练习,对集合操作有了基本掌握

 

相关文章
|
14天前
|
存储 缓存 固态存储
怎么让数据库查询更快
【10月更文挑战第28天】
24 2
|
16天前
|
存储 缓存 关系型数据库
怎么让数据库查询更快
【10月更文挑战第25天】通过以上综合的方法,可以有效地提高数据库查询的速度,提升应用程序的性能和响应速度。但在优化过程中,需要根据具体的数据库系统、应用场景和数据特点进行合理的调整和测试,以找到最适合的优化方案。
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
82 1
|
17天前
|
存储 关系型数据库 MySQL
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
查询服务器CPU、内存、磁盘、网络IO、队列、数据库占用空间等等信息
191 2
|
16天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第26天】数据库作为现代应用系统的核心组件,其性能优化至关重要。本文主要探讨MySQL的索引策略与查询性能调优。通过合理创建索引(如B-Tree、复合索引)和优化查询语句(如使用EXPLAIN、优化分页查询),可以显著提升数据库的响应速度和稳定性。实践中还需定期审查慢查询日志,持续优化性能。
47 0
|
9天前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
23 4
|
7天前
|
SQL 关系型数据库 MySQL
12 PHP配置数据库MySQL
路老师分享了PHP操作MySQL数据库的方法,包括安装并连接MySQL服务器、选择数据库、执行SQL语句(如插入、更新、删除和查询),以及将结果集返回到数组。通过具体示例代码,详细介绍了每一步的操作流程,帮助读者快速入门PHP与MySQL的交互。
20 1
|
1月前
|
存储 关系型数据库 MySQL
Mysql(4)—数据库索引
数据库索引是用于提高数据检索效率的数据结构,类似于书籍中的索引。它允许用户快速找到数据,而无需扫描整个表。MySQL中的索引可以显著提升查询速度,使数据库操作更加高效。索引的发展经历了从无索引、简单索引到B-树、哈希索引、位图索引、全文索引等多个阶段。
61 3
Mysql(4)—数据库索引
|
18天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
60 2
|
21天前
|
存储 关系型数据库 MySQL
MySQL vs. PostgreSQL:选择适合你的开源数据库
在众多开源数据库中,MySQL和PostgreSQL无疑是最受欢迎的两个。它们都有着强大的功能、广泛的社区支持和丰富的生态系统。然而,它们在设计理念、性能特点、功能特性等方面存在着显著的差异。本文将从这三个方面对MySQL和PostgreSQL进行比较,以帮助您选择更适合您需求的开源数据库。
81 4