数据库系统概论|第三章:关系数据库标准语言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语句可以同时实现选择查询以及连接查询

相关推荐
NineData10 小时前
NineData 迁移评估功能正式上线
数据库·dba
tingshuo291710 小时前
S001 【模板】从前缀函数到KMP应用 字符串匹配 字符串周期
笔记
NineData15 小时前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
阿里云大数据AI技术15 小时前
用 SQL 调大模型?Hologres + 百炼,让数据开发直接“对话”AI
sql·llm
赵渝强老师17 小时前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石21 小时前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
倔强的石头_2 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou643 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤4 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区5 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba