mysql8其它新特性

news2024/11/25 14:28:57

文章目录

  • MySQL8.0新特性
    • 新特性1:窗口函数
      • 序号函数
        • ROW_NUMBER()函数
        • RANK()函数
        • DENSE_RANK()函数
      • 分布函数
        • PERCENT_RANK()
        • CUME_DIST()函数
      • 前后函数
        • LAG(expr,n)函数
        • LEAD(expr,n)函数
      • 首尾函数
        • FIRST_VALUE(expr)函数
        • LAST_VALUE(expr)函数
      • 其它函数
        • NTH_VALUE(expr,n)函数
        • NTILE(n)函数
    • 新特性2:公用表表达式
      • 普通公用表表达式
      • 递归公用表表达式

MySQL8.0新特性

MySQL从5.7版本直接跳跃发布了8.0版本,可见这是一个令人兴奋的里程碑版本。MySQL 8版本在功能上做了显著的改进与增强,开发者对MySQL的源代码进行了重构,最突出的一点是MySQL Optimizer优化器进行了改进。不仅在速度上得到了改善,还为用户带来了更好的性能和更棒的体验。

新特性1:窗口函数

可以分组,而且可以再分组内排序。另外,窗口函数不会因为分组而减少原表的行数,这对我们在原表数据的基础上进行统计和排序非常有用。
窗口函数的语法结构:
函数 OVER([PARTITION BY 字段名 ORDER BY 字段名 ASC|DESC])
或者是
函数 OVER 窗口名 ... WINDOW 窗口名 AS ([PARTITION BY 字段名 ORDER BY 字段名 ASC|DESC])

序号函数

ROW_NUMBER()函数

举例:查询goods数据表中每个商品分类下价格降序排列的各个商品信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RANK()函数

使用Rank()函数能够对序号进行并列排序,并且会跳过重复的序号,比如需要为1,1,3
在这里插入图片描述
在这里插入图片描述

DENSE_RANK()函数

在这里插入图片描述
在这里插入图片描述

分布函数

PERCENT_RANK()

等级值百分比函数: (rank - 1) / (rows - 1)
其中,rank的值为使用RANK函数产生的序号,rows的值为当前窗口的总计录值。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

CUME_DIST()函数

主要用于查询小于或等于某个值的比例。
在这里插入图片描述
在这里插入图片描述

前后函数

LAG(expr,n)函数

返回当前行的前n行的expr的值。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

LEAD(expr,n)函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

首尾函数

FIRST_VALUE(expr)函数

FIRST_VALUE(expr)函数返回第一个expr的值
在这里插入图片描述
在这里插入图片描述

LAST_VALUE(expr)函数

FIRST_VALUE(expr)函数返回最后一个expr的值

其它函数

NTH_VALUE(expr,n)函数

NTH_VALUE(expr,n)函数返回第n个expr的值
在这里插入图片描述
在这里插入图片描述

NTILE(n)函数

将分区中的有序数据分为n个桶,记录桶编号
在这里插入图片描述
在这里插入图片描述

新特性2:公用表表达式

公用表表达式的作用是可以替代子查询,而且可以被多次引用。递归公用表表达式对查询有一个共同根节点的树形结构数据非常高效,可以轻松搞定其他查询方式难以处理的查询。

普通公用表表达式

语法结构:

WITH CTE名称
AS (子查询)
SELECT|DELETE|UPDATE 语句;

在这里插入图片描述
在这里插入图片描述
CTE实现
在这里插入图片描述
在这里插入图片描述

递归公用表表达式

语法结构:

WITH RECURSIVE
CTE名称 AS (子查询)
SELECT|DELETE|UPDATE 语句;

案例:针对于我们常用的employees表,包含employee.id, last_ name和manager.id三个字段。如果a是b的管理者,那么,我们可以把b叫做a的下属,如果同时b又是c的管理者,那么c就是b的下属,是a的下下属。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/4549.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker 常用命令大全

个人理解 docker中的镜像 就像是咱们java 中的Class ,而容器呢 是基于这个镜像构建出的实例 类似于咱java 中 根据Class构造出的一个个实例对象 ,本人是初学者 理解有误还请见谅,并麻烦您说说您的看法让彼此相互学习… 按我理解 简言之 doc…

Java-日期类,正则实验

1. 随机产生两个日期时间,输入按时间先后顺序输出 public class RandomDate {SuppressWarnings("deprecation")public static void main(String[] args) throws ParseException {SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd HH:mm:ss&…

二分查找 【模板+中间值问题】

全文目录😃前言😕二分查找动图演示😴代码模板❗️ 使用哪个模板问题 ❗️💢 mid为何1问题 💢😃前言 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。…

[解决]github上传大文件卡住

0x00 需求 github目前的策略是超过50M的文件不允许上传,推荐使用lfs。 0x01 操作 再把之前提交的commit 回滚: git reset --hard commitId 在配置lfs: git lfs install git lfs track "*.zip" git lfs track "*.jar" git…

【K8S】亲和、反亲和、污点、容忍

文章目录【K8S】亲和、反亲和、污点、容忍K8s调度亲和与反亲和Pod和Node硬亲和和软亲和requiredDuringSchedulingIgnoredDuringExecution:硬策略preferredDuringSchedulingIgnoredDuringExecution:软策略污点与容忍污点(Taint)污点…

Python学习----基础语法2

布尔类型 布尔本质上是 1 和 0 if 基本语法格式 语法还是比较简单的 , 需要注意的是 , Python是通过空格缩进来判断代码块归属的 ( 不像java这么通过 花括号进行区分 ) , 默认是四个空格 , 你也可以使用两个或者三个等 , 只要全部统一即可 , 但是编辑器会有提示 , 规范是四…

一文带你快速了解ptrdiff_t

简介 ptrdiff_t是C/C标准库中定义的一个与机器相关的数据类型。ptrdiff_t类型变量通常用来保存两个指针减法操作的结果。 ptrdiff_t定义在stddef.h(cstddef)这个文件内。 ptrdiff_t通常被定义为long int类型。 ptrdiff_t定义在C99标准中。 标准库类…

【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Form表单填写、Dialog对话框弹出

文章目录目标代码0.页面结构1.新增按钮和弹出表单:结构2.新增按钮和弹出表单:点击新增弹出表单3.表单样式4.表单验证5.表单的提交和取消功能:接口、mock相关准备6.表单的提交和取消功能提供的数据和接口1-operateFormLabel.js5-user.js效果总…

小程序转App最便捷的方法,附实操

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。 它也是构建未来的Google Fuchsia应…

计算机网络(一)网络体系结构

layout: post title: 计算机网络(一)网络体系结构 description: 计算机网络(一)网络体系结构 tag: 计算机网络 计算机网络计算机网络体系基本概念网络性能指标数据量与数据速率(比特率)带宽吞吐量时延时延带…

Python入门自学进阶-Web框架——25、DjangoAdmin项目应用-分页与过滤

对于数据很多,就需要将数据进行分页显示,同时还要提供过滤功能。 当配置文件中配置了过滤条件,那就要在显示表信息的时候,显示过滤条件选择项,选择后进行过滤,然后下面显示过滤后的数据,如果数…

数据结构(单链表)

前沿: 在前面总结的顺序表的时候,最后也说出了他的一些缺点,例如头插/中间插的时候的时间复杂度是O(n),这个效率并不高,而如何提高效率的实现呢,这里我们可以通过单链表来简单的提高这个效率。 思维导图&am…

java计算机毕业设计springboot+vue在线投票系统

项目介绍 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线投票系统当然也不能排除在外,随着网络技术的不断成熟,带动了在线投票系统的发展,它彻底改变了…

Java初识:类和对象(上)

文章目录学习目标1.面向对象的初步认识1.1认识面向对象1.2 区分面向对象和面向过程2.类当定义与使用2.1认识简单类2.2 类的定义格式2.3 小试身手-定义类的小练习3.类的实例化3.1 什么是实例化3.2 实例化注意事项:3.3 类和对象说明4. this 引用4.1为什么要用this4.2 …

小程序意见反馈界面(简洁版代码)

在开发个人中心页面时,意见反馈功能是必不可少的,下面介绍该功能的具体开发流程 1、首先看一下效果图: 2、WXML代码,分为三个部分,文本域(TextArea)、输入框(Input)、按钮&#xff…

程序员日常|为什么我在开发工作中偏爱这款键盘?

前言 最近一直不断地有粉丝朋友们私信我,问我该如何给自己挑选一款适合程序员工作的键盘,于是今天来给大家介绍下我用的键盘。 文章目录前言我的键盘亲身经历使用体验视频展示我的键盘 程序员作为一个需要长时间敲代码的职业,没有一个趁手的…

html静态网页设计制作 HTML我的家乡沧州网页代码 dw静态网页成品模板素材网页 web前端网页设计与制作 div静态网页设计

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

uint 与 int 相加,事与愿违?

#include <iostream> using namespace std; int main() { uint32_t uint_data -22; int int_data 0; if (uint_data int_data < 0) { cout <<"uint int负数小于0: "; } else { cout <<"…

ARM编程环境搭建教程

随着移动互联网的繁荣发展&#xff0c;物联网人工智能的兴起&#xff0c;嵌入式开发成为了越来越多IT人必须学习的内容&#xff0c;而在嵌入式芯片领域&#xff0c;ARM具有无可撼动的市场占有率&#xff0c;所以说&#xff0c;学习嵌入式不学ARM&#xff0c;不如回家卖红薯。 接…

C++ Reference: Standard C++ Library reference: C Library: cwctype: iswblank

C官网参考链接&#xff1a;https://cplusplus.com/reference/cwctype/iswblank/ 函数 <cwctype> iswblank int iswblank (wint_t c); 检查宽字符是否为空白 检查c是否为空字符。 空白字符是用于分隔一行文本中的单词的空格&#xff08;space character&#xff09;字符…