MySQL中这些关键字的用法,佬们get到了嘛

news2024/11/25 16:24:42

前言:
最近粉丝问了一个问题,是关于Limit分页的用法,他没有理解清楚,因此本篇文章主要讲解MySQL的关键字的知识。该专栏比较适合刚入坑Java的小白以及准备秋招的大佬阅读。

如果文章有什么需要改进的地方欢迎大佬提出,对大佬有帮助希望可以支持下哦~

小威在此先感谢各位小伙伴儿了😁

在这里插入图片描述

以下正文开始

文章目录

  • GROUP BY用法
  • ORDER BY用法
  • LIMIT关键字用法

在这里插入图片描述

GROUP BY用法

在MySQL中,GROUP BY语句用于将结果集按照一个或多个列进行分组。它常与聚合函数(如SUM、COUNT、AVG等)一起使用,对分组后的数据进行汇总计算。

GROUP BY语句具体怎么用呢,接下来详细说明:

基本语法:

SELECT1,2, ..., 聚合函数
FROM 表名
GROUP BY1,2, ...GROUP BY子句中列出了要分组的列。查询结果将根据这些列的值进行分组。

聚合函数是什么,怎么用?

可以在SELECT语句中使用各种聚合函数来计算分组后的结果,例如SUM、COUNT、AVG、MAX、MIN等。在GROUP BY语句中,聚合函数通常用于计算每个分组的值

  1. 过滤分组:
    我们可以在GROUP BY语句之前使用HAVING子句进行分组后的结果过滤。HAVING子句类似于WHERE子句,但它用于过滤分组后的数据

  2. 排序分组:
    可以在GROUP BY语句之后使用ORDER BY子句对分组后的结果进行排序。我们可以根据列名指定排序顺序以及使用ASC(升序)或DESC(降序)关键字。

  3. 多列分组:
    GROUP BY语句可以根据一个或多个列进行分组。列出的列将成为分组的依据,组合形成唯一的分组键。例如:

SELECT1,2, ..., 聚合函数
FROM 表名
GROUP BY1,2, ...

在使用GROUP BY时,我们需要注意的是:

SELECT语句中的列必须是GROUP BY子句中列出的列或聚合函数。

如果列中包含非聚合列且未在GROUP BY子句中列出,MySQL会根据该列进行隐式分组,但结果可能不符合预期。

GROUP BY子句中可以使用列的别名,而SELECT子句中不能使用。

我们使用一个小例子,演示如何使用GROUP BY语句:

SELECT department, COUNT(*) as total_employees, AVG(salary) as avg_salary
FROM employees
GROUP BY department
HAVING avg_salary > 5000
ORDER BY total_employees DESC;

以上小栗子中,我们按照部门分组员工信息,计算每个部门的员工总数和平均薪资,并过滤出平均薪资超过5000的部门,并按照员工总数降序排序。
在这里插入图片描述

ORDER BY用法

MySQL中,ORDER BY子句用于对查询结果进行排序。它可以按照一个或多个列进行升序(ASC)或降序(DESC)排序。

下面讲解一下ORDER BY子句的详细用法说明:

首先介绍下其基本语法:

SELECT1,2, ...
FROM 表名
ORDER BY1 [ASC|DESC],2 [ASC|DESC]

在ORDER BY子句中,我们可以使用一个或多个列作为排序依据,并为每个列指定排序顺序,ASC为升序(默认),DESC为降序。

  • 单列排序: 如果只需要按照单个列进行排序,可以直接指定列名并选择排序顺序。

举个栗子:

SELECT1,2, ...
FROM 表名
ORDER BY1 DESC;

上面是,根据列1的值进行降序排序。

  • 多列排序: 如果需要按照多个列进行排序,可以在ORDER BY子句中指定多个列,并为每个列选择排序顺序。

例如:

SELECT1,2, ...
FROM 表名
ORDER BY1 DESC,2 ASC;

上面是,首先根据列1的值进行降序排序,如果出现相同的值,则根据列2的值进行升序排序。

  • 排序NULL值: 可以使用NULLS FIRSTNULLS LAST关键字指定空值在排序中的位置。NULLS FIRST表示空值排在前面,NULLS LAST表示空值排在后面。

例如:

SELECT1,2, ...
FROM 表名
ORDER BY1 NULLS LAST;

上面上,空值将排在列1的排序结果的最后。

我们在使用ORDER BY关键字时需要注意,在ORDER BY子句中可以使用列的别名,但不能使用SELECT子句中的表达式或聚合函数

通过一个栗子,为大家演示如何使用ORDER BY子句:

SELECT name, age, salary
FROM employees
ORDER BY salary DESC, age ASC;

上面上,我们按照薪资降序排序,并且对于相同薪资的员工,按照年龄升序排序。

因此,ORDER BY子句在MySQL中用于对查询结果进行排序。我们可以指定一个或多个列,并选择排序顺序。
在这里插入图片描述

LIMIT关键字用法

MySQL中,LIMIT关键字用于限制查询结果的返回行数。它可以帮助我们分页显示结果,或者仅返回某个范围内的行。

下面是LIMIT关键字的详细用法说明:

首先还是先介绍基本语法:

SELECT1,2, ...
FROM 表名
LIMIT 行数;

LIMIT子句会限制查询结果返回的行数。我们可以指定要返回的行数,例如10表示返回前10行。

  • 分页查询: 在实际应用中,常常需要进行分页查询,只返回指定页码的结果。在LIMIT子句中,可以指定两个参数,第一个参数为起始位置(偏移量),第二个参数为返回的行数

举个栗子:

SELECT1,2, ...
FROM 表名
LIMIT 偏移量, 行数;

偏移量表示从查询结果的哪一行开始返回结果,行数表示返回的行数。

偏移量的计算公式为:(页码 - 1) * 每页行数

例如,如果每页显示10行数据,要查询第3页的数据,则偏移量为 (3-1)*10 = 20,表示从结果的第21行开始返回。

  • 可选的简化写法: LIMIT子句还有一种简化写法,只指定要返回的行数,而不指定偏移量。

举个栗子:

SELECT1,2, ...
FROM 表名
LIMIT 行数 OFFSET 偏移量;

这种写法和第一种情况是等价的。

  • 限制查询结果: LIMIT子句也可以用于限制查询结果的返回范围。比如,我们可以指定返回前10条记录中的第5到第8行。

举个栗子:

SELECT1,2, ...
FROM 表名
LIMIT 4, 8;

上面小栗子,返回结果将从第5行开始,返回8行数据。

因此我们需要注意的是,在使用LIMIT子句时,偏移量和行数都应该是非负整数。

文章到这里就先结束了,感兴趣的可以订阅专栏哈,后续会继续分享相关的知识点。

在这里插入图片描述

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

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

相关文章

MOdaHub魔搭社区:AI大模型应用落地的三大阻碍

目录 一是基于通用大模型研发行业大模型的难度。 二是私有数据的安全隐患。 三是落地成本的可控性。 To B 的探索并非现在才开始。自 ChatGPT 开放 API 插件以来,国内的多家云厂商在推出通用大模型时,也往往同步其对行业赋能的意愿。但大模型 To B 探…

吸烟(抽烟)检测和识别1:吸烟(抽烟)数据集说明(含下载链接)

吸烟(抽烟)检测和识别1:吸烟(抽烟)数据集说明(含下载链接) 目录 吸烟(抽烟)检测和识别1:吸烟(抽烟)数据集说明(含下载链接) 1. 前言 2. 吸烟(抽烟)类别说明 3. 吸烟(抽烟)分类数据集 (1)smoking-dataset (2&…

内幕交易最高判终身监禁:韩国首部独立「加密法案」全文来了

2023年6月30日,韩国国会政务委员会通过了该国首部针对虚拟资产的立法——《虚拟资产用户保护法(가상자산 이용자 보호 등에 관한 법률안)》,目的是保护虚拟资产使用者及限制不公平交易,将在颁布一年后开始生效&#xf…

如何用 PowerPoint 制作滚动字幕

想知道如何使用 PowerPoint 制作滚动字幕吗?让您的演示更生动有趣!请紧跟以下教程,学习这个令人赞叹的技巧! 是不是你觉得自己制作的PPT过于呆板和无聊,而别人的PPT却充满了高级和趣味?原因在于你的PPT缺乏…

信创信创,有信难创

本土化产品,近年来备受追捧。比如馒头,成了更适合中国宝宝体质的欧包,有的创意馒头甚至可以卖出二十多元的“高价”;酱香饼,更适合中国宝宝体质的披萨;中药汤,更适合中国宝宝体质的咖啡…… 这样…

青岛大学_王卓老师【数据结构与算法】Week04_07_顺序表和链表的比较_学习笔记

本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–…

uniapp实现腾讯地图定位,生成点,多点连线,清空点线,卫星地图等功能

功能: 1.地图上标点,点有内容,点击点后可以查看点的信息,详情 2.点击地图生成点,点击多个点后可以实现点连线功能 3.点击按钮后,可以把生成的点清空 4.卫星地图和默认地图切换功能 1.完整代码字段讲解 1.…

集成免费Chatgpt的WeTab安装与使用详解

集成免费Chatgpt的WeTab安装与使用详解 一、WeTab简介二、Chatgpt简介三、WeTab安装3.1 Edge浏览器在线安装教程3.2 Chrome浏览器在线安装教程 四、WeTab和ChatGPT的简单使用4.1 WeTab简单使用4.2 集成ChatGPT的简单使用 一、WeTab简介 WeTab是一款集成了多种实用工具的在线工…

第47步 深度学习图像识别:SqueezeNet建模(Pytorch)

基于WIN10的64位系统演示 一、写在前面 (1)SqueezeNet SqueezeNet是一种轻量级的深度神经网络架构,由Iandola等人在2016年提出。这种模型的最大特点是参数量极少,仅有510千个参数,而且模型大小只有5MB,比…

Simulink仿真模块 - Multiport Switch

Multiport Switch:基于控制信号选择输出信号 在仿真库中的位置为:Simulink / Signal Routing HDL Coder / Signal Routing 模型为: 双击模型打开参数设置界面为: 说明 Multiport Switch 模块用于确定将多个模块输入中的哪一个传递给输出。此模块根据第一个输入的值…

Nginx 安装 headers-more-nginx-module 扩展,隐藏www服务信息

通过Ubuntu APT安装的Nginx默认是没有扩展的,所以需要手动安装才可以。本文主要分享如何在 APT 安装 Nginx 的环境中安装 headers-more-nginx-module 扩展,隐藏www服务信息。 1、起因 今天收到一个高危漏洞的警告,该漏洞大意为:…

Fortran 中的函数与子程序

Fortran 中的函数与子程序 简介 Fortran 是不区分大小写的函数(Function): 函数是一段具有输入和输出的代码块,它接受一些输入参数,经过一系列计算后返回一个结果。 在Fortran中,函数的定义以关键字"…

【深度学习】1. yolov5 推理速度和batchsize的增长关系,推理并行处理多张图片,显存如何手动释放

文章目录 前言1. batchsize和推理速度的关系2. 修改batchsize尝试2.1 benifit(好处)2.1 编码batchsize下的推理2.2 发现问题2.2.1 推理结束后,占用显存不释放。 2.3 其它有用的参数设置 前言 yolov5的detect.py 是默认batchsize1的&#xff…

echarts 进度条 样式图表

示例图 代码 <!-- *flat-bar-chart *author yuge *date 2023/6/26 16:21 --> <template><div class"flat-bar-chart-main" ref"chartDiv"></div> </template><script> import * as echarts from echartsexport defau…

阿里云国际站:云原生数据库2.0时代,阿里云如何将云原生进行到底?

【猎云网上海】11月3日报道&#xff08;文/孙媛&#xff09; “PolarDB将云原生进行到底&#xff01;” 在2021年云栖大会上&#xff0c;阿里巴巴集团副总裁、阿里云智能数据库事业部总负责人李飞飞宣布了PolarDB实现三层解耦的重磅升级以及引领云原生数据库技术持续创新的态…

Java性能权威指南-总结25

Java性能权威指南-总结25 数据库性能的最佳实践随机数Java原生接口字符串的性能 数据库性能的最佳实践 随机数 Java7提供了3个标准的随机数生成器类&#xff1a;java.util.Random、java.util.concurrent.ThreadLocalRandom以及java.security.SecureRandom。这三个类在性能方面…

SpringBoot教学资料1-SpringBoot基础

SpringBoot简介 Spring Boot 优点 •可快速构建独立的Spring应用 •直接嵌入Tomcat(无需部署WAR文件) •提供依赖启动器简化构建配置 •极大程度的自动化配置Spring和第三方库 •提供生产就绪功能 •极少的代码生成和XML配置 •Spring Boot是基于Spring框架开发的全新框架&…

jenkins使用ftp工具,上传文件至服务器报错“Could not write file”

一、错误说明 使用ftp上传文件 ERROR: Exception when publishing, exception message [Could not write file. Server message: [553 Could not create file.]]11:12:45 FTP: Connecting from host [test-xxx-java-user-service-3-932ft-hsb69-t5wmf] 11:12:45 FTP: Conne…

『DotNetBrowser』.Net的浏览器嵌入组件,该选择DotNetBrowser 还是 CefSharp?

&#x1f4e3;读完这篇文章里你能收获到 全方位对比DotNetBrowser 和 CefSharp的优缺点 文章目录 一、引言二、引擎三、架构1. CefSharp架构2. DotNetBrowser架构 四、对比1. 稳定性和内存使用2. 应用程序域3. AnyCPU4. H.264, AAC5. 安全6. Visual Studio设计器7. 嵌入应用程…

通过DAPLink和STLink使用RTT输出日志

前提 阅读此文章的前提是已经移植好SEGGER RTT&#xff0c;如未移植请参考我的另一篇博客 《基于J-Link RTT Viewer输出日志(适用于JLink DAPLink STLink)》 由于SEGGER RTT 自带的 JLinkRTTViewer.exe 只支持自家的J-Link&#xff0c;所以使用DAPLink和STLink我们得另辟蹊径…