数据库系统概论|第三章:关系数据库标准语言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的学生。++


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


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

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

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语句可以同时实现选择查询以及连接查询

相关推荐
sunshine22 girl1 小时前
Java学习二 基本语法2, 算术运算符
java·学习
2601_962218611 小时前
万象生鲜系统业财一体化底层打通技术自动生成经营账单
大数据·数据库·人工智能·python·算法
李高钢2 小时前
Python FastAPI 框架入门:从零搭建你的第一个高性能 API 服务
数据库·python·fastapi
柳鲲鹏2 小时前
运气学概论:提纲草案
笔记
yuzhiboyouye4 小时前
那xml对应的sql语法,列举一下
xml·数据库·sql
. . . . .4 小时前
乐观锁 vs 悲观锁
数据库·sql
衡石科技4 小时前
Data_Agent记忆机制与经验复用衡石分析智能体会话记忆与长期学习技术解析
人工智能·科技·学习·算法·企业级bi
Leo.yuan4 小时前
2026年多数据库实时同步的四种架构方案及工具推荐
数据库·架构
传奇开心果编程5 小时前
【Xilem基础语法学与练】第7课:Xilem与Masonry底层构建技术解析
学习·rust·前端框架
hasty5 小时前
Origin 校验不是身份认证:MySQL MCP Server 漏洞给 AI 平台的警告
数据库·mysql·安全