MariaDB数据库版本更新和进行相同成绩排名的方法


简单描述

    最近要完成一个简单的根据成绩排序,如果分数相同就排名一致。在Mysql和Oracle上可以使用rank()这个函数,但在本地的MariaDB上无论怎么试都不行。于是查了一下官网,rank()功能函数的使用,发现这是10.2版本才支持的函数。
    官网地址:\http\s://mariadb.com/kb/en/library/rank/,所以一顿操作下来先

查看本地数据库版本

查看本地MariaDB数据库版本,进入数据库,然后在数据库命名行输入‘status’命令。输出会显示服务器的版本还有协议版本,或者直接进入数据库第一行就可以看到~~

status, 看Service version

本机的版本是5.1的所以要升为 10.2。继续:


升级为10.2(以下都在Centos7下操作)


  1. 升级前,先对数据库进行一次备份
mysqldump  -uroot  -p  --database database_name >name.sql
  1. 创建/etc/yum.repos.d/MariaDB.repo文件 用的国内的源,下载速度会比较快
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.2/centos7-amd64
gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
  1. 关闭并卸载旧版本的mariadb,安装新版本的mariadb。
卸载mariadb:
yum remove mariadb
删除配置文件:
rm -f /etc/my.cnf
删除数据目录:
rm -rf /var/lib/mysql/
清除yum源缓存数据
yum clean all
生成新的yum源数据缓存
yum makecache all
安装mariadb10.2
yum install MariaDB-server MariaDB-client -y
  1. 下载完进行配置
启动并添加开机自启:
systemctl start mariadb.service
systemctl enable mariadb.service
  1. 进行初始化
/usr/bin/mysql_secure_installation
--其中有一条需要注意的,拒绝管理员远程登录
Disallow root login remotely? [Y/n]: n
  1. 导入数据到新版本mariadb

这样我们的数据库升级就完成了


查询

导入我们需要的数据库,然后输入查询语句,区别写在语句后。

 select *, rank() over(order by score desc)as f from students; // 可以排序,但是会在重复2次之后,下一个排序是3
 select *, dense_rank() over(order by score desc)as f from students; //推荐使用,可以得到重复的分数就同一排名
select *, row_number() over(order by score desc)as f from students; // 可以按成绩顺序依次的123456

这样就可以了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值