Mysql数据库连接表、聚合函数及分组

表连接函数:
内连接(小频率):只关联有关联的数据,即拼接的每个表都要有某人
    A inner join B on A.id=B.id
    只有A与B中同时存在的id号才会被查询到
    
    
外连接:左表全查 右表查出对应数据 如果不对应 null值显示

    1.左连接 left join
    A left join B on A.id=B.id
    只要A中存在的id,都会被查询到;
    A中存在B中不存在的id也会被查询到,但B因为没有对应的id,所以B的其他字段为null值
(一旦使用外连接,必须一直使用外连接)
    
    2.右连接 right join
    A right join B on A.id=B.id
    与左连接相反,基本不用;
    
    查询时连接表注意事项:
        1.一旦使用left join 不能再使用inner join
        2.一旦使用left join,再使用where条件也会导致
        left join失效,可在连接条件on后and其他条件代替

全连接:
    1.union
    特点:
    1>通过union连接的SQL上下表查询出来的列的数量必须保持一致,
    上下表的列的类型也必须保持一致
    2>使用union 时,完全相等的行,将会被合并,
    由于合并比较耗时,一般不直接使用 union 进行合并,而是通常采用union all 进行合并;
    3>被union 连接的sql 子句,单个子句中不用写order by ,
    因为不会有排序的效果。但可以对最终的结果集进行排序
    使用:
    (select colum1,colum2...columN from A ) union 
    (select colum1,colum2...columN from B )
    2.union all
    特点:
    会保留那些重复的数据;
    使用:
    (select colum1,colum2...columN from A ) union all
    (select colum1,colum2...columN from B )


聚合函数
sum   求和
avg   平均值
max   最大值
min   最小值 
count(*) count(变量) 求数量
注:在查询中若使用了聚合函数,前面的变量都要用group by分组

order by 索引排序(asc默认值正序/desc倒序)
group by 变量1...n 分组依据某些变量来分组
    (1)Group by语法可以根据给定数据列的每个成员对查询结果进行
        分组,这里的分组就是将一个“数据集合”划分成若干个“小块”,
        然后对这些“小块”进行数据处理。最终得到按一个分组汇总的结果表。
    (2)SELECT子句后面的字段一般是聚合函数或者是Group by 后面的。
    (3)Group by 一般和sum、max、avg等聚合函数一起使用。
    (4)一般我们在Group by子句后面增加一个HAVING子句,来获得满足条件
        的分组的返回结果。HAVING可对限定条件进行分组, HAVING子句后
        可以通过一个或多个用AND和OR作为连接条件。

dateformat 将时间转换成指定格式

变量 in(值1,值2,值n) 查询变量中包含某值

substring(截取变量,开始第x个字符,结束第y个字符) 截取变量字符
可缩写:substr(截取变量,开始第x个字符,结束第y个字符)

replace(变量,‘aa’,‘bbb’) 将变量中的aa替换成bbb

ifnull(变量,'N/A') 将变量中的控制替换成‘N/A’或其他字符串
在Oracle中:nvl(变量,'N/A')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

憨子周

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值