数据库系统概论|第三章:关系数据库标准语言SQL—课程笔记4

前言

前面详细介绍了关于SELECT语句的相关使用方法,继续上文的介绍,本文将继续介绍数据查询的其他相关操作,主要包括排序(ORDER BY)子句、分组(GROUP BY)子句 。与此同时,介绍完单表查询之后,本文还将介绍**多表查询(连接查询)**的相关基本语句。

注:本文中所涉及的数据库前文中已经介绍(指路:数据库系统概论|第三章:关系数据库标准语言SQL---课程笔记1)

一、排序子句

排序子句(ORDER BY)主要用于对于查询结果进行按照一个或者多个属性进行升序或者降序排列,按照ASC或者DESC来控制升序降序,默认为进行升序排列。

R 复制代码
SELECT Sno,Grade
FROM SC
WHERE Cno = '3'
ORDER BY Grade DESC, Sno

上述代码的含义为++查询SC表中的Sno与Grade这两列,将Cno为3的学生学号与姓名进行筛选,并将这两列结果按照成绩降序,学号升序(成绩相同的两人按照学号升序排列)的方法进行排列。++

二、分组子句

分组子句(GROUP BY)主要用于将查询结果按照一列或者多列的值进行分组,值相等的为一组。分组后,聚集函数将作用于每一组,即每一组都有一个函数值。

R 复制代码
SELECT Cno, COUNT(Sno)
FROM SC
GROUP BY Cno

上述代码的含义为++查询SC表中的Cno属性,并根据Cno进行分组,即Cno相同的自动归为同一组,再根据分组后的Cno,将其中所包含的Sno进行计数统计。【求各个课程号及相应的选课人数】++

R 复制代码
SELECT Sno, AVG(Grade)
FROM SC
GROUP BY Sno
HAVING AVG(Grade) >= 90

如果想要输出满足指定条件的分组结果,那就要将分组后的情况再次进行筛选,此时,筛选语句便不再使用"WHERE",而是采用"HAVING"进行条件筛选,如上述代码,++查询SC表中的Sno属性,并根据Sno进行分组,即统计每个学生的平均成绩,并且筛选出那些平均成绩大于等于90的学生。++


基于此,我们已经介绍完了关于单表查询的相关代码以及具体实例,接下来,我们将进一步介绍有关多表查询,即连接查询的相关代码与实例


三、等值与非等值连接查询

在实际查询过程中,经常会遇到某一次查询可能会涉及到多表的情况,比如查询每一个学生的选课情况,便要涉及Student 与SC两个表,同时还要构建两个表之间的连接,才能更好的进行数据的查看。

R 复制代码
SELECT Student.*, SC.*
FROM Student, SC
WHERE Student.Sno = SC.Sno

上述代码的含义为++查询每一个学生的具体选课情况。【在本示例中应该着重关注关于前缀的使用,在两个表Student与SC中,均具有Sno这一属性名,因此要增加前缀予以区分,如果属性名并不相同,即不会引起歧义,则无需增加前缀】++

R 复制代码
SELECT Student.Sno, Sname
FROM Student, SC
WHERE Student.Sno = SC.Sno AND SC.Cno = '2' AND SC.Grade > 90

上述代码的含义为++查询选择2号课程且成绩在90分以上的所有同学的学号和姓名。++

上述代码首先根据Student表与SC表的等值连接,以展示每一个学生的选课情况以及成绩,进而通过WHERE语句进行了进一步的条件限制。

WHERE语句可以同时实现选择查询以及连接查询

相关推荐
行思理25 分钟前
go语言学习难度及适合学习的人群
开发语言·学习·golang
lzhdim4 小时前
100条常用SQL语句
数据库·sql·mysql·mybatis
天河归来4 小时前
从原始消息到业务数据:三层数据架构的设计与实践
数据库·数据仓库·架构
数据库小学妹4 小时前
金融数据库成本怎么算?五笔钱加一张TCO表
数据库·金融行业·数据库选型·国产化替代·tco·金融数据库
楚山之石4 小时前
【Medical Image Analysis】深度学习医学图像合成综述:伪CT、合成MRI与合成PET的架构、性能与临床边界
图像处理·人工智能·学习·mr·mri
KaiwuDB5 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
auspicious航5 小时前
PostgreSQL的备份与恢复
数据库·postgresql
这个DBA有点耶5 小时前
从 MySQL 到时序数据库:我帮朋友做迁移的完整记录
数据库·架构·dba
Li_RuiQi5 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
泡海椒5 小时前
深度解析JQuick-SQL AST到逻辑计划转换机制|分布式SQL原理
数据库·分布式·sql