mysql 13 窗口函数&windos环境下自动备份数据库——个人笔记

本文详细介绍了MySQL8.0及以上版本中窗口函数rank(), dense_rank(), row_number()的用法和区别,重点讲解了它们在部门业绩排名问题中的应用。窗口函数在处理排名时不局限于GROUP BY的功能,避免了数据丢失。rank()会让相同名次的索引继续递增,dense_rank()则保持连续索引,row_number()不允许名次并列。此外,还提供了一段Windows批处理脚本,用于定时自动备份MySQL数据库,确保数据安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

窗口函数

  1. 仅支持MySQL8.0以上的版本
  2. 排名问题:每个部门按业绩来排名
  3. 窗口函数有rank, dense_rank, row_number
  4. 优点不会像group by 一样一行只留一列

窗口函数的区别

  1. rank 同名次的会并列名次,但index仍然会继续走下去 (即如果2人并列第五名,那么下一人会是第七名 而没有第六名)
  2. dense_rank 同名次会并列,但是索引不往下走
  3. row_number 同名此不会并列

窗口函数语法

select 
col1,col2,col3....,
rank() over(partition by col ORDER BY col desc) as raking 
from table  where ....

具体参这位大佬的文章

windos环境下mysql数据库自动备份

  1. 新建一个txt文件
  2. 把下面代码按照你的需求放进去
  3. 把后缀改成.bat
  4. win+R ——》输入taskschd.msc 进到计划任务 把这个脚本加入到计划任务
rem ******MySQL backup start******

@echo off

::删除一周前的备份数据  这里"D:\Mysql_BakUp\" 换成你备份文件夹路径
forfiles /p "D:\Mysql_BakUp\" /m backup_*.sql -d -7 /c "cmd /c del /f @path"
forfiles /p "D:\Mysql_BakUp\" /m backup_*.sql -d -7 /c "cmd /c del /f @path"


::设置时间变量   用于保存的时候自带时间
if %time:~0,2% leq 9 (set hour=0%time:~1,1%) else (set hour=%time:~0,2%)
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%%hour%%time:~3,2%%time:~6,2%"

::进入mysql安装目录的bin目录下
cd C:\Program Files\MySQL\MySQL Server 8.0\bin\

::执行备份操作    >后面是你自己的备份文件夹和上面一样   
mysqldump --opt --single-transaction=TRUE --user=root --password=数据库密码 --host=ip地址 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE --routines --events "DBName" > D:\Mysql_BakUp\test\backup_%Ymd%.sql



如果需要备份多个数据库把上面这条复制多分修改路径就行


@echo on

rem ******MySQL backup end******

pause
脚本执行完后不主要自动关闭

具体参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值