Mysql学习3

一、组函数(分组函数,聚合函数) Group Function

单行函数: ifnull – 每一行数据经过函数计算都会得到一行结果

组函数: 统计类型的数据,求平均值,求和,求最大最小值,计数
一组数据,经过函数计算会得到一个结果

求平均:avg()
求和:sum()
求最大值:max()
求最小值:min()
求计数:count()

二、分组句式 GROUP BY

对查询样本进行分组统计
重要!:进行分组查询时,只有在GROUP BY中出现的列,才能出现在SELECT中。

GROUP BY 列 按照列进行分组,该列中数据相同数据行自动归为1组,有多少个组就统计多少个数据。

GROUP BY可以同时使用多个列进行分组,分组效果按照多列的数据组合

三、对组函数的筛选

having 专门用于分组函数的数据筛选
DQL 的执行顺序:
– from 从表中获取数据
– where进行筛选需要的数据行
– group by 对筛选后的数据进行分组,并计算分组函数
– having 专门用于筛选分组函数的条件
– select 筛选数据列,计算算术表达式,列的别名
– order by 排序
– limit 结果分页分段

注意:在where中不能使用分组函数

四、多表关联查询的基础-- 笛卡尔积

A{X,Y,Z} B{M,N}
A*B={XM,XN,YM,YN,ZM,ZN}

SQL中,笛卡儿积使用"交叉连接"来实现
cross join
也可以直接用 join

select*
from 表a cross join 表b

select *
from 表a,表b

五、等值连接( 关联 )

一般来说都是两个具有相同的实际意义的列来进行连接
a 表 join b表 on (连接条件)
a表 join b 表 on(a.a列= b.b列) a,b列具有相同的实际意义

六、外连接

左外连接(左连接):查全左边的表
右外连接(右连接)
全连接(全连接) – mysql不支持

七、自连接

自连接方式来模拟或实现层级关系
一张表用两次
如:a 表 a1 join a表 a2 on(a1.a1列=a2.a2列)

八、集合操作

1.求查询的并集
使用union 操作,会去掉重复数据
union all 不会去重复
左右连接之后,在union

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值