数据库教程:HAVING短语在结果筛选中的应用

需积分: 0 7 下载量 76 浏览量 更新于2024-08-15 收藏 4.9MB PPT 举报
"使用HAVING短语筛选最终输出结果-数据库课件" 在数据库查询中,HAVING子句是一个非常重要的概念,特别是在处理分组数据时。这个知识点主要应用于SQL语言,用于在聚合函数如COUNT(), SUM(), AVG(), MAX(), MIN()等对数据进行汇总后,对结果集进行过滤。与WHERE子句不同的是,WHERE子句通常用于在数据聚合之前筛选行,而HAVING子句则是在数据聚合之后进行筛选。 在提供的【例31】中,我们看到一个使用HAVING子句的例子。查询的目标是找出选修了3门以上课程的学生学号。首先,通过GROUP BY Sno将数据按照学生学号(Sno)进行分组,这一步是聚合操作的基础。然后,使用HAVING COUNT(*) > 3,这个条件筛选出那些在SC表中记录数(即选修课程的数量)大于3的分组,也就是学号对应的学生选修课程超过了3门。这里COUNT(*)是聚合函数,计算每个组的行数,也就是学生选修的课程数量。 关于数据库的其他知识点,教材介绍中提到这是一本经典的数据库教材,对中国早期的数据库教育有着重要影响。它强调理论部分,不专注于特定数据库系统的操作,而是探讨实现技术,这适合于培养DBA(数据库管理员)的能力。数据库的一个关键特性是数据独立性,它分为逻辑数据独立性和物理数据独立性。在描述中提到的“数据独立性差”是指在没有统一数据库管理系统的情况下,各个部门各自维护数据,导致数据冗余和不一致性。这与主从式数据库系统和分布式数据库系统的区别有关。在主从式系统中,主机负责数据库管理,而在分布式系统中,每个节点都既有DBMS功能也有应用程序执行能力,允许数据在多个节点间分布和共享,从而提高效率和可用性。 HAVING子句是SQL查询中的核心工具,用于处理分组后的数据筛选,而数据独立性则是数据库设计中的基础原则,它确保了应用程序与数据存储方式之间的分离,提高了系统的灵活性和可维护性。结合这些知识,我们可以更好地理解和设计数据库查询,以及优化数据管理策略。