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

【lesson17】MySQL表的基本操作--表去重、聚合函数和group by

文章目录

  • MySQL表的基本操作介绍
  • 插入结果查询(表去重)
    • 建表
    • 插入数据
    • 操作
  • 聚合函数
    • 建表
    • 插入数据
    • 操作
  • group by(分组)
    • 建表
    • 插入数据
    • 操作

MySQL表的基本操作介绍

CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

插入结果查询(表去重)

在这里插入图片描述

建表

在这里插入图片描述

插入数据

在这里插入图片描述

操作

删除表中的的重复复记录,重复的数据只能有一份
1.去重(不影响原表)
在这里插入图片描述
2.创建一个新的表,表的结构和duplicate_table表一样
在这里插入图片描述
3.将 duplicate_table 的去重数据插入到 no_duplicate_table
在这里插入图片描述
4.通过重命名表,实现原子的去重操作+查看duplicate_table
在这里插入图片描述
为什么最后是通过rename的方式进行的呢?
就是单纯的想等一切都就绪了,然后统一对数据进行放入、更新和生效等。

聚合函数

在这里插入图片描述

建表

这里就不建立,之前就已经建过了,大家可以根据表信息自己去建立表
在这里插入图片描述

插入数据

因为之前就已经插入过了,这里就给大家看一下数据表,要操作的大家可以自行插入数据。
在这里插入图片描述

操作

统计班级共有多少同学
原表:
在这里插入图片描述
统计:在这里插入图片描述
统计本次考试的数学成绩分数个数
原表:
在这里插入图片描述
统计:
在这里插入图片描述
我们会发现统计出来是错的,因为数学成绩有重复的,重复的数学成绩只能算一个。
所以统计的时候要去重。
在这里插入图片描述
我们会发现不能统计的同时去重,要先去重再统计
在这里插入图片描述
统计数学成绩总分
原表:
在这里插入图片描述
统计:
在这里插入图片描述
统计平均总分
原表:
在这里插入图片描述
统计:
在这里插入图片描述
返回英语最高分
原表:
在这里插入图片描述
统计:
在这里插入图片描述
返回 > 90 分以上的数学最低分
原表:
在这里插入图片描述
统计:
在这里插入图片描述

group by(分组)

如果我们既要打出数学成绩最高分又要打出那个人的名字可以吗?
在这里插入图片描述
我们测试了发现不行,为什么呢?
因为name不能聚合。
这时我们就要用到分组了。

语法:
在这里插入图片描述

建表

准备工作,创建一个雇员信息表(来自oracle 9i的经典测试表)

  • EMP员工表
  • DEPT部门表
  • SALGRADE工资等级表

在这里插入图片描述

插入数据

大家根据数据自行插入
部门表数据:
在这里插入图片描述
工资等级表数据:
在这里插入图片描述
员工信息表数据:
在这里插入图片描述

操作

显示每个部门的平均工资和最高工资
在这里插入图片描述
在这里插入图片描述

显示每个部门的每种岗位的平均工资和最低工资
在这里插入图片描述
显示平均工资低于2000的部门和它的平均工资
首先统计各个部门的平均工资:
在这里插入图片描述
最后having和group by配合使用,对group by结果进行过滤
在这里插入图片描述
having经常和group by搭配使用,作用是对分组进行筛选,作用有些像where。
having和where的区别理解?
1.执行顺序的理解
2.对结果的理解
3.where无法替换having

1.执行顺序的理解:
显示每个部门平均工资低于2000的岗位,但是不要把SMITH这个人计算在其中
在这里插入图片描述
在这里插入图片描述
2.对结果的理解
where:对具体任意列进行条件筛选
having:对聚合之后的结果进行条件筛选

having和where条件筛选的阶段是不同的!
不要单纯的认为,只有磁盘上表的结果导入到mysql中、真实存在的表才叫做表。
中间筛选出来的、包括最终结果,其实全部都是逻辑上的表!
'‘MySQL’'一切皆表,未来只要我们能处理单表的CURD,多有SQL场景下的表,我们全部都能用统一方式进行。

http://www.lryc.cn/news/263188.html

相关文章:

  • 面试题总结(十二)【Qt】【华清远见西安中心】
  • GPT-4V with Emotion:A Zero-shot Benchmark forMultimodal Emotion Understanding
  • CogVLM与CogAgent:开源视觉语言模型的新里程碑
  • CSS的盒子模型(重点)
  • 论文笔记:Bilinear Attention Networks
  • 2312llvm,01基本介绍
  • Spring之手写IoC
  • IDEA运行JSP启动后页面中文乱码
  • Python 自动化之收发邮件(二)
  • RHEL8_Linux_Ansible常用模块的使用
  • 2023 英特尔On技术创新大会直播 | AI 融合发展之旅
  • 【JavaWeb】往浏览器打印一个hello world
  • 技术探秘:在RISC Zero中验证FHE——由隐藏到证明:FHE验证的ZK路径(1)
  • Spring容器中scope为prototype类型Bean的回收机制
  • Python生成器(python系列25)
  • Vue项目搭建过程
  • 系统分析师(软考)知识点整理(一)
  • 2021年数维杯国际大学生数学建模D题2021年电影市场票房波动模型分析求解全过程文档及程序
  • Kubernetes 的用法和解析 -- 5
  • HTML选择题试题——附答案
  • html之CSS的高级选择器应用
  • elementui+ <el-date-picker type=“datetime“/>时间组件的当前时间的180天之内的禁止选择处理
  • 全网好听的BGM都在这里下载,赶紧收藏好了
  • Spark编程实验一:Spark和Hadoop的安装使用
  • 代理和AOP
  • Solidity-3-类型
  • 【mask转json】文件互转
  • 华清远见嵌入式学习——ARM——作业1
  • 如何在公网环境使用固定域名远程访问内网BUG管理系统协同办公
  • k8s pod网络排查教程