TA的每日心情 | 开心 2021-3-12 23:18 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
多表连接进行查询时,连接符、通配符、函数以及聚合函数都可以使用。 连接表进行聚合运算(下载例子中的表数据)
通过聚合函数可以对表中的数据进行聚合分析,同样,在连接后的表中同样也可以使用聚合函数。下面通过几个实例进行说明。 1.在内连接中使用聚合函数 内连接STUDENT表和TEACHER表,查询所有TEACHER表中的课程代码、以及在STUDENT表中修过这门课程的学生的数目。实例代码: SELECT T.CNO,COUNT(S.CNO) AS NUM_S FROM TEACHER AS T INNER JOIN STUDENT AS S
ON T. CNO = S. CNO GROUP BY T.CNO ORDER BY NUM_S 运行结果如图所示。 
由于这里STUDENT表和TEACHER表的连接采用的连接方式是内连接,所以如果TEACHER表中某位教师所教授的课程,在STUDENT表没有学生修过,那么该课程就不会被查询。 2.在外连接中使用聚合函数 左外连接STUDENT表和TEACHER表,查询所有TEACHER表中的课程代码、以及在STUDENT表中修过这门课程的学生的数目。实例代码: SELECT T.CNO,COUNT(S.CNO) AS NUM_S FROM TEACHER AS T LEFT OUTER JOIN STUDENT AS S ON T.CNO = S.CNO
GROUP BY T.CNO ORDER BY NUM_S 运行结果如图所示。
这里STUDENT表和TEACHER表的连接采用的连接方式是左外连接,所以不论TEACHER表中教师所教授的课程,在STUDENT表中是否有学生修过,那么课程的信息都会被查询。如结果表中1两行,在STUDENT表中没有学生修过这门课程,所以计数结果为0。
源码下载:http://file.javaxxz.com/2014/10/28/235855671.zip |
|