分组查询
select 查询信息 from 表名
where 条件
group by 按照列分组(可多个 ,隔开)
order by 排序方式
(查询信息如果列名和聚合函数同时出现,要么在聚合函数中出现,要么就使用分组进行查询)
having 条件 分组筛选(一般和group by连用,位置在其后)
where:用来筛选from子句指定的操作所产生的行
group by:用来分组where子句输出
having:用来从分组的结果中筛选行
1.分组查询是针对表中不同的组分类统计和输出的
2.having子句能够在分组的基础上,再次进行筛选
3.在SQL语句中使用次序,where-->group by-->having
解剖:
1.select 查询什么
2.from 从哪里查询
3.where 列名条件(模糊查询,关系表达式查询)
4.grop by 分组查询
5.haing 分组后的聚合函数筛选
表连接
select 列 from 表1,表2
where 条件(表1.主键列=表2.外键列)
内连接(inner join)
select 列 from 表1 inner join 表2
on 条件(表1.主键列=表2.外键列)
as也可以为表赋别名
外连接(两外连接主表位置相反)
左外连接(left join)
select 列
from 主表
left outer join 从表
on (表1.主键列=表2.外键列)
右外连接(right join)
select 列
from 从表
right outer join 主表
on (表1.主键列=表2.外键列)
主表(左表/右表)中的数据逐条匹配从表中的数据
1.匹配,返回到结果集
2.无匹配,null值返回到结果集