MySQL笔记

j### distinct
去除查询到的字段的重复项,一般只用在一个字段上,若作用在多个字段则需要所有字段都相等才去除

内连接

内连接只会查询到满足条件的数据
在这里插入图片描述

内连接的语法
tablename inner join tablename on 条件

外连接

外连接分为左外连接、右外连接、满外连接

左外连接(left join…on)

不仅仅包含两张表的交集(内连接的数据),还包含左表中剩余未和右表匹配的数据
在这里插入图片描述

右外连接(right join…on)

不仅仅包含两张表的交集(内连接的数据),还包含右表中剩余未和左表匹配的数据
在这里插入图片描述

满外连接(full join…on)MySQL数据库不支持

包括左表和右表的交集,也包括左表剩余未和右表匹配的数据和右表剩余未和左表匹配的数据
在这里插入图片描述

窗口函数

语法
<窗口函数> over (partition by <分组列>
			    order by <排序列>)

窗口函数的位置可以放两种函数:

  • 专用窗口函数,如:rank、dense_rank、row_number等;
  • 聚合函数,如,sum、avg、max、min、count等。
窗口函数具有的功能:
  1. 同时具有分组(partition by)和排序(order by)的功能;
  2. 不减少原表的行数,所以经常用来在每组内排名。
注意事项

窗口函数原则上只能写在select子句中

使用场景

业务需求“在每组内排名”,比如:

  • 排名问题,每个部门按业绩来排名;
  • topN问题,找出每个部门排名前N的员工。
具体使用
select 成绩, 
rank() over (order by 成绩 desc) as ranking,
dense_rank() over (order by 成绩 desc) as dense_rank,
row_number() over (order by 成绩 desc) as row_number
from grade;

在这里插入图片描述
三种专业窗口函数的区别:

  • rank() 排序时会将相同的数据记为同一名次,并且每个数据都会占用名次位;
  • dense_rank() 排序时会将相同的数据记为同一名次,相同的数据不会占用名次位;
  • row_number() 排序时就算是相同的数据也不会出现一样的名次;
使用聚合函数作为窗口函数
  • max(列)
    由于窗口函数的分组不会影响查询到数据的条数,使用max函数作为窗口函数时,会统计当前行与之前查到的所有行中的该列的最大值,并赋值;

  • min(列)、avg(列)、sum(列)、count(列)的效果都是统计查询到的数据行和之前的数据进行聚合计算。

导出数据库中某张表的数据

mysqldump -u root -p -h 127.0.0.1 varms simplex_index_data > /home/simplex_index_data.sql
  • varms:库名;
  • simplex_index_data :表名。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CSDN_SmallAnnum

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

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

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

打赏作者

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

抵扣说明:

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

余额充值