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

简介: 本实验的目的是使学生熟练掌握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)。通过反复练习,对集合操作有了基本掌握

 

相关文章
|
3天前
|
缓存 关系型数据库 数据库
关系型数据库高效查询和统计
【5月更文挑战第8天】关系型数据库高效查询和统计
21 7
|
1天前
|
缓存 关系型数据库 MySQL
如何优化MySQL数据库查询性能
MySQL是一款常用的关系型数据库,但在实际使用过程中,由于数据量增加和查询操作复杂度增加,会导致查询性能下降。本文将介绍一些优化MySQL数据库查询性能的方法。
|
2天前
|
存储 SQL 关系型数据库
关系型数据库结构化数据存储查询方式
【5月更文挑战第10天】关系型数据库结构化数据存储查询方式
16 2
|
3天前
|
存储 Cloud Native 关系型数据库
PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
【5月更文挑战第14天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
31 2
|
3天前
|
存储 Oracle 关系型数据库
实验三 Oracle数据库的创建和管理
实验三 Oracle数据库的创建和管理
13 1
|
3天前
|
SQL Oracle 关系型数据库
实验一 安装和使用Oracle数据库
实验一 安装和使用Oracle数据库
13 1
|
3天前
|
SQL 关系型数据库 MySQL
MySQL数据库的约束+进阶版新增与查询-2
MySQL数据库的约束+进阶版新增与查询
15 1
|
3天前
|
关系型数据库 MySQL 测试技术
MySQL数据库的约束+进阶版新增与查询-1
MySQL数据库的约束+进阶版新增与查询
16 1
|
3天前
|
SQL 数据库
SQL数据库基础语法-查询语句
SQL数据库基础语法-查询语句
|
3天前
|
存储 监控 Apache
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践
网易的灵犀办公和云信利用 Apache Doris 改进了大规模日志和时序数据处理,取代了 Elasticsearch 和 InfluxDB。Doris 实现了更低的服务器资源消耗和更高的查询性能,相比 Elasticsearch,查询速度提升至少 11 倍,存储资源节省达 70%。Doris 的列式存储、高压缩比和倒排索引等功能,优化了日志和时序数据的存储与分析,降低了存储成本并提高了查询效率。在灵犀办公和云信的实际应用中,Doris 显示出显著的性能优势,成功应对了数据增长带来的挑战。
查询提速11倍、资源节省70%,阿里云数据库内核版 Apache Doris 在网易日志和时序场景的实践