MySQL_2.3【高级查询】超详细讲解

news2024/11/26 8:45:44

 1. distinct关键字

distinct
# 在MySQL中,DISTINCT关键字用于消除重复记录,并返回唯一的记录集。
# DISTINCT关键字可以用在SELECT语句的开头,并在查询结果中显示唯一的行。
# 语法如下:
select distinct 列1, ... , 列n  from table_name [其他子句];

# 以下是一个使用DISTINCT关键字的示例,它从employees表中选择员工的唯一姓氏(lastName) :
SELECT DISTINCT lastName FROM employees;
  • 去重”必须结果集中每个列的值都相同。

2. order  By关键字

order by用于对结果进行排序显示,可以使用ASC / DESC两种方式进行排序,可以有多个排序条件

  • ASC:表示升序排序,如果不写即为此排序方式【默认】

  • DESC:表示降序排序。

# 语法:
select [distinct] 列1, ... , 列n from table_name [其他子句] order by 排序列1 [DESC], 排序列2 [DESC];

3. 分页查询limit子句

select * from emp limit 0,2;
  • 第一个参数0表示从第几条开始查询【这里的0可以省略的】
  • 第二个参数表示每页要查询出几条数据。
# MySQL常见的分页公式:

# curPage是当前第几页;pageSize是一页多少条记录。
    limit (curPage-1)*pageSize,pageSize。

例如:

select * from emp order by empNo limit 5;
select * from emp limit 5,5;

  4. 聚合函数

MySQL内置了五种聚合函数,分别是:sum, avg , max , min , count

  • COUNT():查询某列的行数。例如,
  • SELECT COUNT(*) FROM table_name;
  • SUM():查询某列值的总和。例如,
  • SELECT SUM(column_name) FROM table_name;
  • AVG():查询某列的平均值。例如,
  • SELECT AVG(column_name) FROM table_name;
  • MAX():查询某列的最大值。例如,
  • SELECT MAX(column_name) FROM table_name;
  • MIN():查询某列的最小值。例如,
  • SELECT MIN(column_name) FROM table_name;

 6. group by分组

group by 是对数据进行分组,分组时,表中有相同值的分为一组。分组后可以进行聚合查询

group by分组后的查询中,select的列不能出现除了group by分组条件以及聚合函数外的其他列。

select 列1, 列2, (聚合函数) from table_name group by 列1, 列2;

以下是一些MySQL GROUP BY子句的例子:

SELECT * FROM table_name GROUP BY column1, column2; 
# 将结果集按照column1和column2进行分组。

SELECT * FROM table_name GROUP BY column1; 
# 将结果集按照column1进行分组。

SELECT * FROM table_name GROUP BY column1 HAVING COUNT(*) > 1; 
# 将结果集按照column1进行分组,并只显示计数大于1的组。

7. having关键字

having是对group by分组后的结果集进行筛选

select 列1, 列2, (聚合函数) from table_name 
group by 列1, 列2 having 分组后条件;

请注意,HAVING子句将过滤条件应用于每组分行,而WHERE子句将过滤条件应用于每个单独的行。以下是一些MySQL HAVING子句的例子:

SELECT * FROM table_name GROUP BY column1, column2 HAVING COUNT(*) > 1;
# 将结果集按照column1和column2进行分组,并只显示计数大于1的组。

SELECT * FROM table_name GROUP BY column1 HAVING AVG(column2) > 50; 
# 将结果集按照column1进行分组,并只显示平均值大于50的组。

8. 综合查询

以下是一个MySQL的综合查询例子,其中包括聚合函数、分组查询、分页查询和HAVING子句:

        eg :这个查询将employees表按照department_id进行分组,并计算每个部门的员工数量、平均工资、最高工资和最低工资。然后,它使用HAVING子句过滤出员工数量大于10且平均工资大于50000的部门,并按department_id升序排序。最后,它使用LIMIT和OFFSET子句来限制结果集的大小和偏移量,以便只返回第3个到第12个部门的结果。

SELECT department_id, COUNT(*) as employee_count, 
    AVG(salary) as avg_salary, MAX(salary) as max_salary, 
    MIN(salary) as min_salary
FROM employees
GROUP BY department_id
HAVING employee_count > 10 AND avg_salary > 50000
ORDER BY department_id ASC
LIMIT 10 OFFSET 20;

后续还会继续更新此类理论题型,大家有什么需要,还望留言告知!!

支持:🎁🎁🎁如果你觉得博主的文章的不错或者对你有帮助!!!!

 

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

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

相关文章

vcomp100.dll丢失怎样修复?总结三个简单的修复方法

最近我遇到了一个问题,我的电脑上出现了vcomp100.dll文件丢失的错误。这个错误导致我无法运行一些使用了Microsoft Visual C编写的程序。当我第一次遇到这个问题时,我感到非常困惑和沮丧,因为我不知道如何解决这个问题。 然后,我开…

服务器操作手册——Slurm常用命令

文章目录 引言正文Slurm集群、节点、分区介绍Salloc申请节点并进入查看已经申请的节点终止作业查看集群情况退出节点具体运行问题无法联网问题安装的包找不到 引言 实验室的服务器的操作指令,之前同学写的不够详细,或者说有点乱,这里做一个简…

C++(类与对象)详解 - 1

C(类与对象)详解 - 1 1.面向过程和面向对象初步认识2.类的引入3.类的定义4.类的访问限定符及封装4.1 访问限定符4.2 封装 5.类的作用域6.类的实例化7.类的对象大小的计算7.1 如何计算类对象的大小7.2 类对象的存储方式7.3 结构体内存对齐规则 8.类成员函…

项目4渗透全过程

网络拓扑图 任务从拓扑图中可以其中一台web服务器可以进行与kali的直接通信。该web服务器是双重网段。也就是拿到该服务器就可以在进行下一步内网操作了。 2008配置: 护卫神主机系统密码:!#Qwe123. sqlserver2008密码:!#a123… 一、信息收…

遥感目标检测(3)-DAL(Dynamic Anchor Learning for Object Detection)

目录 一、概述 二、背景 三、建议 1、旋转RetinaNet 2、动态锚框分布 3、匹配敏感损失 四、实验 一、概述 由于选择正样本锚框进行回归,不一定能够定位真实的GT,而部分负样本回归甚至可以回归到真实的GT,说明相当多的负样本锚框有着准…

FreeRTOS 初识

从这节开始学习FreeRTOS操作系统。 FreeRTOS 介绍 Q: 什么是 FreeRTOS ? A: Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。 注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比…

【Java 并发编程】读写锁 ReentrantReadWriteLock StampLock 详解

读写锁 ReentrantReadWriteLock & StampLock 详解 1. 读写锁1.1 并发场景1.2 什么是读写锁1.3 思考如何自己实现一把锁? 2. ReentrantReadWriteLock2.1 ReentrantReadWriteLock 概述及其基本结构2.2 ReentrantReadWriteLock 的特点2.2.1 读写锁的互斥关系2.2.2 …

springboot实现qq邮箱发送邮件或者验证码

首先我先去qq邮箱或者网易邮箱开通POP3/IMAP/SMTP/Exchange/CardDAV 服务 它在左上角的设置——账户——往下滑就可以找到——然后点击开通 开通后就会得到一串授权码。如下图 接下来直接编写代码 首先我没导入依赖 <!-- 这个是邮箱验证--> <dependency> <group…

IDEA+java+spring+hibernate+jquery+mysql后台管理系统

IDEA javaspringhibernatejquerymysql后台管理系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.修改密码3.我的内容4.我的操作日志5. 我的登陆日志6. 我的登陆授权7. 内容管理8.标签管理9. 搜索词管理10.分类管理11.分类类型12.标签分类13.用户管理14.部门管理15.角色…

elasticsearch在统计存储用量方面的应用

存储介绍 对象存储在现在的项目中应用非常广泛&#xff0c;主要用来存储图片、视频、音频、文件等静态资源&#xff0c;所有云服务厂商基本上都有对象存储&#xff0c;对象存储收费一般 按每月每GB收费&#xff0c;如七牛的0.098 元/GB/月&#xff0c;阿里的0.12元/GB/月。比如…

k8s网络之(一)如何调试容器网络 nsenter

① 背景 ② 三种解决策略 最常见&#xff1a; 镜像为了保持精简化,没有安装网络命令,缺少必要的基础网络软件 ③ pod_id和container_id关系 细节&#xff1a; 一个pod内可以有多个容器,意味者可以有多个容器id说明&#xff1a; docker ps 默认容器id只有前12位案例&#x…

如何理解自动化

目录 1.如何定义自动化 2.自动化给人类带来的福利 3.如何学习自动化 4.自动化潜在的危害 1.如何定义自动化 自动化是指利用计算机、机械、电子技术和控制系统等现代科学技术手段&#xff0c;对各种工业、商业、农业和日常生活中的操作和过程进行自动控制和执行的过程。它旨在…

《博客继续更新说明》

目录 1.博客停更原因2.考研和比赛3.工作和博客题外话 1.博客停更原因 自2022.6.20起&#xff0c;本人CSDN博客断更了&#xff0c;故很多粉丝的私信没有看到&#xff0c;非常抱歉哈&#xff0c;简单叙说下这一年经历&#xff0c;当时大三后期原本想法是直接找嵌入式实习的&#…

怎样用IDEA社区版以及企业版创建spring boot项目?

Spring 的诞生是为了简化 Java 程序的开发的&#xff0c;而 Spring Boot 的诞生是为了简化 Spring 程序开发的 。 Spring Boot 翻译一下就是 Spring 脚手架&#xff0c;什么是脚手架呢&#xff1f;如下图所示&#xff1a; 盖房子的这个架子就是脚手架&#xff0c;脚手架…

脑电信号处理与特征提取——三. 脑电实验设计的原理与实例(古若雷)

三、脑电实验设计的原理与实例 被试间设计的实验结果也有可能是人员不同造成的&#xff0c;所以建议被试内设计。

【力扣每日一题】2023.7.22 柠檬水找零

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码运行结果&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 这是一道模拟题&#xff0c;我们贩卖五美元&#xff08;忒贵了&#xff09;一杯的柠檬水&#xff0c;然后只收取5,10,20面值的钞票…

API自动化测试总结

目录 Jmeter是怎么做API自动化测试的&#xff1f; Jmeter中动态参数的处理&#xff1f; 怎么判断前端问题还是后端问题&#xff1f; 详细描述下使用postman是怎么做API的测试的&#xff1f; 资料获取方法 Jmeter是怎么做API自动化测试的&#xff1f; 1、首先在JMeter里面…

57. 插入区间

题目链接&#xff1a;&#xff1a;力扣 解题思路&#xff0c;因为只插入一个新的区间&#xff0c;所以只需要找到插入的新区见的位置即可&#xff0c;如果与来的区间重叠&#xff0c;则进行合并&#xff0c; 两个区间重叠需要判断的情况比较多&#xff0c;可以判断两个区间不重…

已解决-使用Adobe Acrobat去除PDF水印

这个方法只能去带颜色的水印&#xff0c;灰色的去不了&#xff0c;等我有空时候&#xff0c;再写一篇使用PS去除水印的方法&#xff0c;也非常简单。敬请期待 安装软件 网上下载安装Adobe Acrobat Pro DC 安装Adobe PDF打印机 点击“添加打印机” 选择“我的打印机未列出”…

VCL界面组件DevExpress VCL v23.1 - 全新的Windows 11主题

DevExpress VCL是Devexpress公司旗下最老牌的用户界面套包&#xff0c;所包含的控件有&#xff1a;数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验&#xff0c;提供高影响力的业务解决方案&#xff0c;并利用您现有的VCL技能为未来构建下一代应用程…