当前位置: 首页 > news >正文

MySQL表的基本查询下/分组聚合统计

1,update

对查询到的结果进行列值更新,可以和older by,where,limit合并使用,为了方便讲解,将会以题目练习的方式进行说明:

1,将孙悟空同学的数学成绩变更为 80 分

本道题和where联用:

2,将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分

一次更新多列

3,将总成绩倒数前三的 3 位同学的数学成绩加上 30 分

这道题将联用order by和limit:

在图中可以看到,updete不支持math += 30这种写法。

4,将所有同学的语文成绩提升为原来的两倍

不用where语句就可以,但是强烈不建议这么做,改全表数据代价太大了。

2,delete

语法:

delete from + 表名,+(order by ,limit,where)语句联用

案例:

1,删除孙悟空同学的考试成绩

 2,删除整张表数据

删除表的方法一定要慎重使用,表删了就没了,删之前最好做好备份:

可以看到表中的数据被删了,但是表还在。

3,截断表

语法:

truncate + 表名;

注意:这个操作慎用 1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;

2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事 物,所以无法回滚

3. 会重置 AUTO_INCREMENT 项

3,插入查询结果

语法:

INSERT INTO table_name [(column [, column ...])] SELECT 。。。;

4,聚合函数

 MySQL中可以有函数,可以一组一组的来对结果做聚合统计

具体函数如下:

案例:

1,统计班级共有多少同学

也可以使用列名做统计

2,统计本次考试的数学成绩分数个数

该方法中可以引入去重:

3,统计数学成绩总分

这里使用sum函数:

可以用sum/count的方式来获取平均分:

4,统计平均总分

除了上面提供的统计平均分的方法,mysql也提供了函数avg来完成平均分的计算:

5,返回英语最高分

这里可以用到max函数来辅助完成:

6,返回 > 70 分以上的数学最低分

这可以min和where联用:

5,group by子句的使用/分组聚合统计

实际上,用到该列的不同行的数据来分组,分组的条件由用户定,组内数据一定是相同的,可被聚合压缩。

分组不就是按照条件,拆成了多个组进行各自组内的统计

换句话说就是,分组就是分表,不就是把一张表按条件在逻辑上拆成了多个子表,然后分别对各自子表进行聚合统计

在select中使用group by 子句可以对指定列进行分组查询

语法:

select column1, column2, .. from table group by column;

直接用案例来看更好看:

1,首先我们先用一个表来练习,具体代码如下:

-------------------------------------------------------------------------------------------------------------------------------

DROP database IF EXISTS `scott`;

CREATE database IF NOT EXISTS `scott` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_c    i;

USE `scott`;

 DROP TABLE IF EXISTS `dept`;

 CREATE TABLE `dept` (

   `deptno` int(2) unsigned zerofill NOT NULL COMMENT '部门编号',

   `dname` varchar(14) DEFAULT NULL COMMENT '部门名称',

   `loc` varchar(13) DEFAULT NULL COMMENT '部门所在地点'

 );

 DROP TABLE IF EXISTS `emp`;

 CREATE TABLE `emp` (

   `empno` int(6) unsigned zerofill NOT NULL COMMENT '雇员编号',

   `ename` varchar(10) DEFAULT NULL COMMENT '雇员姓名',

   `job` varchar(9) DEFAULT NULL COMMENT '雇员职位',

   `mgr` int(4) unsigned zerofill DEFAULT NULL COMMENT '雇员领导编号',

   `hiredate` datetime DEFAULT NULL COMMENT '雇佣时间',

   `sal` decimal(7,2) DEFAULT NULL COMMENT '工资月薪',

   `comm` decimal(7,2) DEFAULT NULL COMMENT '奖金',

   `deptno` int(2) unsigned zerofill DEFAULT NULL COMMENT '部门编号'

 );

 DROP TABLE IF EXISTS `salgrade`;

 CREATE TABLE `salgrade` (

   `grade` int(11) DEFAULT NULL COMMENT '等级',

   `losal` int(11) DEFAULT NULL COMMENT '此等级最低工资',

   `hisal` int(11) DEFAULT NULL COMMENT '此等级最高工资'

 );

 insert into dept (deptno, dname, loc)

 values (10, 'ACCOUNTING', 'NEW YORK');

 insert into dept (deptno, dname, loc)

 values (20, 'RESEARCH', 'DALLAS');

 insert into dept (deptno, dname, loc)                                                  

 values (30, 'SALES', 'CHICAGO');

 insert into dept (deptno, dname, loc)

 values (40, 'OPERATIONS', 'BOSTON');

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7499, 'ALLEN', 'SALESMAN', 7698, '1981-02-20', 1600, 300, 30);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7521, 'WARD', 'SALESMAN', 7698, '1981-02-22', 1250, 500, 30);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7566, 'JONES', 'MANAGER', 7839, '1981-04-02', 2975, null, 20);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7654, 'MARTIN', 'SALESMAN', 7698, '1981-09-28', 1250, 1400, 30);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01', 2850, null, 30);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09', 2450, null, 10);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19', 3000, null, 20);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7839, 'KING', 'PRESIDENT', null, '1981-11-17', 5000, null, 10);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7844, 'TURNER', 'SALESMAN', 7698,'1981-09-08', 1500, 0, 30);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23', 1100, null, 20);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7900, 'JAMES', 'CLERK', 7698, '1981-12-03', 950, null, 30);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7902, 'FORD', 'ANALYST', 7566, '1981-12-03', 3000, null, 20);

 insert into emp (empno, ename, job, mgr, hiredate, sal, comm, deptno)

 values (7934, 'MILLER', 'CLERK', 7782, '1982-01-23', 1300, null, 10);

 insert into salgrade (grade, losal, hisal) values (1, 700, 1200);

 insert into salgrade (grade, losal, hisal) values (2, 1201, 1400);

 insert into salgrade (grade, losal, hisal) values (3, 1401, 2000);

 insert into salgrade (grade, losal, hisal) values (4, 2001, 3000);

 insert into salgrade (grade, losal, hisal) values (5, 3001, 9999);

---------------------------------------------------------------------------------------------------------------------------------

2,创建好表我们可以开始练习:如何显示每个部门的平均工资和最高工资

可以看到,group by对表进行了聚合并算出来个平均和最小工资,在使用group by后指定列名的,

可以在select前直接出现,聚合函数也可在此直接出现,如果不是分组条件等等列就不能出现

group by主要用于统计,查个人最高应该用where limit,order by来查。

3,having

having关键字可以对聚合后的数据进行判断,直接看例子:

显示平均工资低于2000的部门和它的平均工资

统计各个部门的平均工资

select avg(sal) from emp group by deptno:

having和group by配合使用,对group by结果进行过滤

--having经常和group by搭配使用,作用是对分组进行筛选,作用有些像where

4,having和where的区别:

两个函数的功能基本都是一样的,那么他们的区别主要是体现在语句的执行顺序,在select中也可以用having,但是不推荐

where语句是在from执行之后就执行,而having是在所有操作结束之后再执行:

可以根据数字来看到having执行顺序:

不要单纯认为只有磁盘上的表结构导入到MySQL,真是存在表才是表,我们要人知道通过各自中间筛选,它最终结果都是逻辑上的表,无论怎么赛选,所以

MySQL一切皆表!

相关文章:

MySQL表的基本查询下/分组聚合统计

1,update 对查询到的结果进行列值更新,可以和older by,where,limit合并使用,为了方便讲解,将会以题目练习的方式进行说明: 1,将孙悟空同学的数学成绩变更为 80 分 本道题和where联…...

条款3: 理解decltype

目录 一、decltype + 变量 二、decltype + 表达式 三、decltype 使用场景 一、decltype + 变量 🥭 所有的信息都会保留,数组和函数也不会退化 const int &&carref = std::move(ca); decltype(carref) bb; // bb推导为const int &&,不会被忽略掉co…...

TCP:过多的TIME_WAIT

过多的TIME_WAIT 线上问题紧急处理方式tcp_tw_reuse启用主要特点:源码 线上问题 线上机器出现了几万个TIME_WAIT,怎么办? 紧急处理方式 tcp_tw_reuse 启用 默认情况下tcp_tw_reuse是关闭状态,使用sysctl -w net.ipv4.tcp_tw_…...

化学元素分子量、氧化物系数计算python类

在网上找到的分子量计算类,做了少量修改,有原子量、分子量、氧化物系数的计算。 import re wt_dict{ #该原子量数据从CRC手册第95版提取。"H": 1.008,"He": 4.002602,"Li": 6.94,"Be": 9.0121831,"B": 10.…...

torch.utils.data.DataLoader参数介绍

torch.utils.data.DataLoader 是 PyTorch 用于加载数据的重要工具,特别是在深度学习模型训练中。它可以高效地处理大规模数据集,并支持多线程数据加载。以下是 DataLoader 的关键参数及其功能: 主要参数 dataset: 要加载的数据集,可以是 PyTorch 自带的 torch.utils.data.…...

echarts 入门

工作中第一次碰到echarts&#xff0c;当时有大哥。二进宫没办法&#xff0c;只能搞定它。 感觉生活就是这样&#xff0c;不能解决的问题总是会反复出现。通过看视频、查资料&#xff0c;完成了工作要求。写一篇Hello World&#xff0c;进行备查。 基本使用 快速上手 <!DO…...

WPF实现类似网易云音乐的菜单切换

这里是借助三方UI框架实现了&#xff0c;感兴趣的小伙伴可以看一下。 深色模式&#xff1a;​ 浅色模式&#xff1a; ​这里主要使用了以下三个包&#xff1a; MahApps.Metro&#xff1a;UI库&#xff0c;提供菜单导航和其它控件​​​​​​​ 实现步骤&#xff1a;1、使用B…...

OpenCV人脸检测与识别:构建智能识别系统

在当今科技日新月异的时代&#xff0c;人脸识别技术以其独特的便利性和安全性&#xff0c;在各个领域都展现出了巨大的应用潜力。从智能手机的面部解锁&#xff0c;到机场的自动安检&#xff0c;再到商场的顾客行为分析&#xff0c;人脸识别技术无处不在。本文将深入探讨如何使…...

H5 Canvas 举牌小人

之前看到这种的举牌小人的图片觉得很有意思&#xff0c;最近有时间所以就尝试写写看。 在线链接 https://linyisonger.github.io/H5.Examples/?name./080.Canvas%20%E4%B8%BE%E7%89%8C%E5%B0%8F%E4%BA%BA.html 生成效果 实现代码 <!DOCTYPE html> <html lang"…...

rom定制系列------小米6x_澎湃os1.0.28安卓13定制固件修改 刷写过程与界面预览

&#x1f49d;&#x1f49d;&#x1f49d; 在接待很多定制化系统过程中。小米6x机型为很多工作室客户使用。但官方低版本固件无法适应新应用的使用。有些第三方固件却可以完美解决。此固件是客户分享的卡刷固件。需要修改为可以批量刷写的线刷固件。去除一些内置应用。需要自带…...

电脑硬件性能:HDD + SSD + CPU + GPU

文章目录 任务管理器&#xff1a;性能参数详解一、电脑的硬件组成二、机械硬盘和固态硬盘2.1、详细介绍&#xff1a;HDD SSD2.2、读写性能2.2.1、&#xff08;HDD&#xff09;读写性能的影响因素&#xff1a;寻道时间 旋转延迟 数据传输时间2.2.2、&#xff08;SSD&#xff…...

通过粒子系统customData传值给材质球

粒子特效使用的材质球&#xff0c;如果通过动画控制shader的某个参数&#xff0c;例如溶解阈值&#xff0c;所有的粒子都会按照相同的数值变化&#xff0c;如果需要每个粒子在自己的生命周期内按照曲线变化&#xff0c;则可以通过customData实现。 1.ParticleSystem中勾选Cust…...

常用分布的数学期望、方差、特征函数

文章目录 相关教程相关文献常用分布的数学期望&方差&特征函数定义事件域概率条件概率随机变量分布函数连续随机变量的概率密度函数数学期望离散随机变量连续随机变量 方差与标准差最大似然估计特征函数 不等式Chebyshev&#xff08;切比雪夫&#xff09;不等式 作者&am…...

ssh-配置

生成 SSH 密钥是一项重要的安全措施&#xff0c;用于在客户端和服务器之间建立加密连接。以下是在 Windows 和 Linux 系统上生成 SSH 密钥的详细步骤。 一、在 Linux 上生成 SSH 密钥 Linux 通常预装了 ssh-keygen 工具&#xff0c;可以通过以下步骤生成 SSH 密钥&#xff1a…...

Python 在 JMeter 中如何使用?

要在JMeter中使用Python&#xff0c;需要使用JSR223 Sampler元素来执行Python脚本。使用JSR223 Sampler执行Python脚本时&#xff0c;需要确保已在JMeter中配置了Python解释器&#xff0c;并设置了正确的环境路径。 1、确保JMeter已安装Python解释器&#xff0c;并将解释器的路…...

贪心day1

文章目录 前言雪糕的最大数量重新分装苹果装满石头的背包的最大数量K 次取反后最大化的数组和不同整数的最少数目 前言 &#x1f4ab;你好&#xff0c;我是辰chen&#xff0c;本文旨在准备考研复试或就业 &#x1f4ab;文章题目大多来自于 leetcode&#xff0c;当然也可能来自洛…...

Redis 完整指南:命令与原理详解

目录 1. Redis 概述什么是 RedisRedis 应用场景 2. 安装与启动Redis 安装步骤源代码安装使用包管理器安装&#xff08;以 Ubuntu 为例&#xff09; 编译与启动命令编客户端连接 3. Redis 存储结构KV 存储结构数据结构类型String&#xff08;字符串&#xff09;List&#xff08;…...

【2024软考高级架构师】论文篇——3、论Web系统的测试技术及其应用

【摘要】 本人于2023年8月参与了某地级市的市级机关电子政务信息系统的建设工作,该项目是该市机关的电子政务网建设计划的一部分,笔者在该项目中担任项目经理和系统分析师一职,主要负责项目的日常全面管理和质量保证与质量控制工作。该项目是基于WEB系统的,由于WEB系统具有…...

迪杰斯特拉算法的理解

图片转载自&#xff1a;最短路径算法-迪杰斯特拉(Dijkstra)算法 - 程序小哥爱读书的文章 - 知乎 https://zhuanlan.zhihu.com/p/346558578 迪杰斯特拉&#xff0c;一个广度优先算法&#xff0c;采用了贪心策略。 第一步&#xff0c;选取顶点D&#xff0c;更新和D相连的节点C&a…...

华为OD机试 - 文本统计分析(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…...

Ventoy终极指南:一个U盘启动所有系统,告别重复格式化烦恼 [特殊字符]

Ventoy终极指南&#xff1a;一个U盘启动所有系统&#xff0c;告别重复格式化烦恼 &#x1f60e; 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 还在为每次安装系统都要重新制作启动盘而烦恼吗&#x…...

网易云音乐NCM转MP3终极指南:ncmdump工具完整使用教程

网易云音乐NCM转MP3终极指南&#xff1a;ncmdump工具完整使用教程 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经从网易云音乐下载了心爱的歌曲&#xff0c;却发现只能在特定播放器上收听&#xff1f;NCM格式的限制让音乐…...

从分立逻辑到单片机:基于ATmega8的MIDI通道分析仪设计与实现

1. 项目概述&#xff1a;从分立逻辑到单片机的MIDI通道分析仪进化史二十年前&#xff0c;当我在《Elektor》杂志上发表第一版MIDI通道分析仪时&#xff0c;整个数字音乐世界还处于一个相当“硬核”的阶段。那个版本的设计&#xff0c;用今天的话来说&#xff0c;简直就是一场“…...

鸿蒙系统微博应用锁常见问题解答

为微博设置应用锁后&#xff0c;不少用户会有各种疑问&#xff1a;忘记密码怎么办&#xff1f;会不会影响消息推送&#xff1f;能不能只锁定某些功能&#xff1f;应用锁耗电吗&#xff1f;本文将针对这些高频问题逐一解答&#xff0c;帮助您更好地使用鸿蒙系统&#xff08;Harm…...

对比 Token Plan 与按量计费在 Taotoken 平台上的成本体感差异

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比 Token Plan 与按量计费在 Taotoken 平台上的成本体感差异 对于个人开发者或项目管理者而言&#xff0c;在接入大模型服务时&a…...

基于可解释机器学习的城市人口流动空间降尺度分析实践

1. 项目概述&#xff1a;从宏观到微观&#xff0c;解码城市脉搏在城市的肌理中&#xff0c;人口的流动如同血液的循环&#xff0c;承载着经济活力、社会互动与空间结构的全部信息。无论是城市规划师优化公交线路&#xff0c;还是商业分析师评估店铺选址&#xff0c;亦或是公共卫…...

CentOS服务器上VNC连接失败?手把手教你排查并修复个人端口问题(附重启命令)

CentOS服务器VNC连接故障深度排查指南&#xff1a;从原理到实战当你在深夜赶项目时&#xff0c;突然发现VNC连接不上服务器&#xff0c;那种焦虑感我深有体会。去年参与半导体器件仿真项目时&#xff0c;我也曾被这个问题困扰整整两天。本文将分享一套经过实战检验的排查方法论…...

Claude端到端测试设计:从零搭建可审计、可回放、可量化的AI服务测试流水线(含开源Schema校验工具)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Claude端到端测试设计 端到端测试是验证Claude模型在真实用户交互链路中行为一致性的关键手段。它覆盖从原始提示输入、上下文管理、流式响应生成&#xff0c;到输出解析与业务校验的全路径&#xff0c;确保模…...

解密高校教师必会的Gemini 3.1 Pro五大科研隐藏技能:从论文评估到创新点锁定

各位同仁好,我是七哥。一个在高校里从事人工智能相关领域研究,钻研用大模型AI实操的学术人。可以和七哥交流学术写作或Gemini、GPT、Claude等大模型学术实操相关问题,多多交流,相互成就,共同进步。 科研路上,有人发完顶刊顺利晋升,有人还在为创新点抓耳挠腮。 大多数教…...

终极Chrome画中画扩展:如何在浏览器中实现高效视频多任务处理

终极Chrome画中画扩展&#xff1a;如何在浏览器中实现高效视频多任务处理 【免费下载链接】picture-in-picture-chrome-extension 项目地址: https://gitcode.com/gh_mirrors/pi/picture-in-picture-chrome-extension 想要在浏览网页、处理文档的同时继续观看视频内容吗…...