count() 函数用于统计记录数。

min() 函数用于统计指定字段的最小值。

max() 函数用于统计指定字段的最大值。

avg() 函数用于统计指定字段的平均值。

sum() 函数用于统计指定字段的总和。

group by 子句用于对指定字段进行分组。

having 子句用于对分组后的数据进行条件筛选,与 where 子句相似,但只针对分组后的数据,where 子句无法筛选聚合函数。

笛卡尔积是指两个集合的所有可能组合。例如,集合 A={a,b},集合 B={0,1,2},则两个集合的笛卡尔积为{(a,0),(a,1),(a,2),(b,0),(b,1), (b,2)}。可以扩展到多个集合的情况。类似的例子有,如果 A 表示某学校学生的集合,B 表示该学校所有课程的集合,则 A 与 B 的笛卡尔积表示所有可能的选课情况。

inner join(内连接)也叫等值连接,查询符合 A 表与 B 表匹配关系的数据。注释:join 与 inner join 是一样的效果,所以在使用 inner join 时可将 inner 省略。

explicit inner join 与 implicit inner join 是一样的效果,所以在使用 explicit inner join 时可将 explicit 省略。

left join(左连接)是从左表产生一套完整的记录,与匹配的记录(右表)。如果没有匹配,右侧将包含 null。注释:left join 与 left outer join 是一样的效果,所以在使用 left outer join 时可将 outer 省略。

right join(右连接)是从右表产生一套完整的记录,与匹配的记录(左表)。如果没有匹配,右侧将包含 null。注释:right join 与 right outer join 是一样的效果,所以在使用 right outer join 时可将 outer 省略。

full join(全连接)产生的所有记录(双方匹配记录)在表 A 和表 B。如果一张表没有匹配,则另一张表将包含 null。注释:可以看出,全连接的方式需要查询两次 student 表,而自连接的方式是笛卡尔积,只需要查询一次 student 表,效率方面肯定是高于子查询方式的,所以在能够使用自连接方式查询的时候尽量不要使用子查询。