第六章连接和分组查询
一、分组查询:
1.语法:select 列名 from 表名 where 条件 group by 分组的列 order by 列名 排序方式(asc/desc)
2.多列分组的语法:
select 列名1,列名2 from 表名 where 条件 group by 分组的列1,分组的列2 order by 列名
3.分组的注意事项:
(1)除聚合函数所在的列之外,from前面的列必须和group by 子句的列一一对应。
(2)order by 后面可以跟聚合函数,eg:order by sum(result) desc,按照总分数降序显示
4.分组筛选:
(1)having:先分组在筛选
(2)语法:
select 列名 from 表名 group by 列名
having 筛选条件
order by 排序方式
(3)查询顺序:
where -->group by -->order by
(4)查询的语法:
select 列名 from 表名 where 条件 group by 分组列 having 筛选列 order by 排序列
二、连接查询:
1.内联接:
语法:select 列名 from 表名1,表名2
select 列名 from 表名1 join 表名2 on 表名1.外键 = 表名2.外键
2.外联接:
需要显示哪个表的全部信息,然后观察这个表在左边还是右边,左边的话用左外链接,右边的话用右外连接
(1)左外联接
查询左表的全部数据
select 列名 from 表1 left join 表2 on 表1.外键=表2.外键
(2)右外联接
查询右表的全部数据
select 列名 from 表1 right join 表2 on 表1.外键=表2.外键