【MySQL】基本查询(下)

news2025/3/19 9:48:43

在这里插入图片描述

文章目录

  • 1.筛选分页结果
  • 2.Update
  • 3.Delete
  • 4.截断表
  • 5.插入查询结果
  • 6.聚合函数
    • 6.1什么是聚合函数
    • 6.2常见的聚合函数
  • 7.group by
    • 7.1如何显示每个部门的平均工资和最高工资
    • 7.2显示每个部门的每种岗位的平均工资和最低工资
    • 7.3显示平均工资低于2000的部门和它的平均工资
  • 8.总结

1.筛选分页结果

什么是筛选分页结果呢,我们都知道当我们在看小说或者很长的文章的时候,都会分成很多页,在未来数据库处理当中也会面临着处理很多数据,如果直接将所有数据显示出来,会使得负载过高,所以分页或者条件筛选是避不开的话题,所以接下来我们就来学习一下什么是筛选分页结果。

select *from student limit 0,3;

在这里插入图片描述
上面这种写法表示从哪个位置开始显示多少行数据,注意:表的开始是0好位置,而不是1号位置。
limit不仅可以这样用,还可以通过加上其他的条件达到自己想要的效果,比如order by:
在这里插入图片描述
我们可以通过order by加上limit来达到筛选出成绩最好的或者成绩最差的,根据自己数据库的需求来分页筛选

2.Update

基本语法

UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]

我们可以通过update来更新表中的数据:
不加上限制条件会将所有对应该列的数据全部改为指定数据,所以在改数据的时候切记加上判断条件。
在这里插入图片描述

3.Delete

基本语法

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]

可以通过where条件删除表中对应的行数据:
在这里插入图片描述
也可以通过delete删除整个表,我们专门创建一张表来测试delete的删除效果:
在这里插入图片描述
删除表中所有数据:
在这里插入图片描述
可以看到当我们删除表中所有数据时,自增长约束是不会被清除为0的,这就是delete的特性,接下来我们来看看truncate的特性

4.截断表

基本语法

TRUNCATE [TABLE] table_name

我们也为truncate创建一张和delete相同的表,除了名字不同,插入的数据都是相同的。
在这里插入图片描述

可以看到原本自增长有约束有指定值的,但是truncate一下被清楚掉了,这就是truncate和delete的区别,一个会清除,一个不会。

5.插入查询结果

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

插入查询结果,就相当于把查询出来的结构插入到一个新表当中,我们常用于去重,这里我们给出一组有多组重复数据的表,然后我们用insert和select进行去重,可能有些人要说,用distinct也可以去重,确实可以去重,但是distinct是不会改变表的数据的,查表的时候还是原本的数据。
在这里插入图片描述
可以看到这里我们创建了一张有多组重复数据的表结构,接下来我们要进行去重,我们的去重思路是,先创建一张新表,然后进行select筛选,将筛选出来的数据插入到新表中,然后将老的表的名字改名,将新表的名字也用rename进行改名,改名为原表的名字。
在这里插入图片描述
可以看到经过我们一系列改表名称之后,我们得到了一个去重之后的表。

6.聚合函数

6.1什么是聚合函数

聚合函数(Aggregate Function)是一类 对一组数据进行计算并返回单一值 的 SQL 函数,通常用于 统计数据分析。聚合函数主要用于 SELECT 语句,并通常与 GROUP BY 结合使用。

6.2常见的聚合函数

函数作用示例
COUNT()计算记录数SELECT COUNT(*) FROM users;
SUM()计算总和SELECT SUM(salary) FROM employees;
AVG()计算平均值SELECT AVG(age) FROM students;
MAX()返回最大值SELECT MAX(price) FROM products;
MIN()返回最小值SELECT MIN(price) FROM products;

COUNT()
统计表中某个列的行数,或者统计总的。
在这里插入图片描述


SUM()
在这里插入图片描述
sum可以统计某一列或者多列的总和。


AVG()
求平均值函数:
在这里插入图片描述

MAX()
max函数和min函数的用法都一样,求一列中的最小值或者最大值。

7.group by

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

GROUP BY 是 SQL 语句中的 分组 操作,通常与 聚合函数(如 COUNT()SUM()AVG() 等)一起使用,用于按照指定的字段对数据进行分组,并对每个组执行计算。
这里我已经准备了三张表,用于测试和讲解group by

员工表
在这里插入图片描述


工资等级表
在这里插入图片描述


部门表
在这里插入图片描述


7.1如何显示每个部门的平均工资和最高工资

首先可以确定的是查的是最高工资和平均工资,如果只查这两个,我们可以直接像下面这样
在这里插入图片描述

但是现在有外加条件,就是每个部门,意思就是我们要将相同部门分为一组,然后在相同部门当中求出最高工资和平均工资,所以接下来登场的就是group by
在这里插入图片描述

7.2显示每个部门的每种岗位的平均工资和最低工资

和上一个一样,首先是看我们查的是什么,然后再看分组,这次是每个部门的每种岗位,意思就是先分为每个部门,之后再分为每种岗位,这才思路清晰了,我们先查最低工资和平均工资:
在这里插入图片描述
最小值查到之后,分组:
在这里插入图片描述


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

这里首先我们查的是平均工资低于2000的,这里就不能用where条件,这里需要搭配到having使用:
在这里插入图片描述


8.总结

在本文中,我们探讨了数据库操作的多个关键方面,包括 筛选分页结果更新(Update)删除(Delete)截断表(Truncate)插入查询结果聚合函数 以及 Group By 的使用。这些 SQL 语句和技巧在日常开发和数据处理过程中至关重要。

通过合理运用这些 SQL 语句,我们可以提高数据库查询的效率、优化数据存储,并更好地管理数据的增删改查。同时,在实际应用中,需要注意 SQL 语句的优化,如索引的使用、避免不必要的全表扫描等,以提升数据库的性能。

希望本文的内容能帮助你更好地掌握 SQL 操作,提高数据库管理的能力!如果有任何问题,欢迎交流与探讨。

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

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

相关文章

Xpath Helper 替代 - XPath 测试器

Xpath Helper 最近开始(2025.03)无法使用了,选找了几款替代品,XPath 测试器 是目前看来最好的。 XPath 测试器 市场地址: https://chromewebstore.google.com/detail/xpath-测试器/cneomjecgakdfoeehmmmoiklncdiodmh …

C++学习之云盘项目nginx

1.复习 2.知识点概述 1. 一些基本概念 1.1 Nginx 初步认识 1.2 正向 / 反向代理 1.3 域名和 IP 2. Nginx 安装和配置 2.1 安装 2.2 配置 3. Nginx 的使用 3.1 部署静态网页 3.2 反向代理和负载均衡 课外知识导读 1. URL 和 URI 2. DNS 解析过程 1. 一些基…

JAVA学习*抽象类

抽象类 在Java中,被abstract关键字修饰的类被称为抽象类。 特点 1、当一个类继承了抽象类,一定要重写抽象方法!!! public abstract class Animal {public int age;public String name;//抽象方法public abstract v…

数据库管理-第303期 数据库相关硬件文章汇总(20250319)

数据库管理303期 2025-03-19 数据库管理-第303期 数据库相关硬件文章汇总(20250319)1 CPU & 内存2 SSD3 RDMA4 存储5 CXL6 硬件采购7 数据库一体机总结 数据库管理-第303期 数据库相关硬件文章汇总(20250319) 作者&#xff1…

OctoTools:一个具有复杂推理可扩展工具的智体框架

25年2月来自斯坦福大学的论文“OctoTools: An Agentic Framework with Extensible Tools for Complex Reasoning”。 解决复杂的推理任务可能涉及视觉理解、域知识检索、数值计算和多步骤推理。现有方法使用外部工具增强大语言模型 (LLM),但仅限于专业领域、有限的…

Canary

定义: Canary是一种用以防护栈溢出的保护机制。 原理: 是在一个函数的入口处,先从fs/gs寄存器中取出一个4字节(eax,四字节通常是32位的文件)或者8字节(rax,通常是64位的文件)的值…

c++领域展开第十七幕——STL(vector容器的模拟实现以及迭代器失效问题)超详细!!!!

文章目录 前言vector——基本模型vector——迭代器模拟实现vector——容量函数以及push_back、pop_backvector——默认成员函数vector——运算符重载vector——插入和删除函数vector——实现过程的问题迭代器失效memcpy的浅拷贝问题 总结 前言 上篇博客我们已经详细介绍了vecto…

BUUCTF Pwn babyheap_0ctf_2017 Unsorted bin attack部分

checksec exeinfo 开启了全保护 64位 查看函数: 堆题 增删查改齐了 可以在编辑堆的时候重新设置大小 存在堆溢出 delete函数的指针清零了 无UAF 想法是通过unsorted bin泄露libc基址: from pwn import *p process(./babyheap) #p remote("node…

【C++指南】内存管理完全手册:new/delete

🌟 各位看官好,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习C内存管理的相关知识。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享…

Vue3组合式函数(滚动监测 useScroll)

主要用于实时监测目标元素滚动位置及状态 工具函数源码 /*** 组合式函数* 实时监测目标元素滚动位置及状态** 自定义钩子用于处理滚动事件和状态* param target 滚动目标元素,可以是 Ref、HTMLElement、Window 或 Document,默认为 window* param throt…

Vue.js+Element UI 登录界面开发详解【附源码】

成果图: 一、技术架构解析 本登录模块采用前后端分离架构,前端基于Vue.jsElement UI实现交互逻辑,主要包含以下技术要点: ​组件化开发 - 采用单文件组件形式组织代码​响应式设计 - 实现多终端适配​状态管理 - 使用sessionSto…

瑞幸需要宇树科技

吃不到“星巴克红利”,瑞幸活成“Manner”。 作者|古廿 编辑|杨舟 “是不是又要开始3月革命了。”有瑞幸员工透露,今年开始瑞幸加强了系统排班的执行力度。新的排班体系下,要求各时段门店实际值班人员和排班系统一致。如果需要调整&#xf…

linux 命令 vim

以下是 Linux 中 Vim 编辑器的核心命令总结,分为基础操作、高效编辑技巧和实用场景,助你快速掌握 1. 启动与退出 命令说明vim 文件名打开或新建文件vim 行号 文件名打开文件并跳转到指定行(如 vim 10 file.txt):q退出 Vim&#…

解决MySQL字符集冲突引发的“Illegal mix of collations”错误

引言 在开发过程中,我们常常会遇到数据库层面的字符集兼容性问题。本文将通过一个典型的案例,分析因字符集不匹配导致的 Illegal mix of collations 错误,并提供完整的解决方案,帮助开发者彻底规避此类问题。 问题现象 假设我们…

Vue中的publicPath释义

publicPath 部署应用包时的基本URL。用法和 webpack 本身的 output.publicPath 一致,但是 Vue CLI 在一些其他地方也需要用到这个值,所以请始终使用 publicPath 而不要直接修改 webpack 的 output.publicPath。 默认情况下,Vue CLI 会假设你…

新造车不再比拼排名,恰是曲终人散时,剩者为王

据称新能源汽车周销量不再发布,这可能也预示着新造车终于到了给出答案的时候了,新造车企业前三强已基本确立,其余那些落后的车企已很难有突围的机会,而特斯拉无疑是其中的最大赢家。 3月份第一周的数据显示,销量最高的…

博客迁移----宝塔面板一键迁移遇到问题

前景 阿里云轻量级服务器到期了,又免费领了个ESC, 安转了宝塔面板。现在需要迁移数据,使用宝塔面板一键迁移功能,完成了数据的迁移,改了域名的解析,现在进入博客是显示502 bad grateway 宝塔搬家参考链接…

大数据处理最容易的开源平台

大数据处理最容易的开源平台可以从多个角度进行分析,包括易用性、灵活性、成本效益以及社区支持等方面。 Apache Spark Apache Spark 是一个广泛使用的开源大数据处理框架,以其快速、通用和易于使用的特点而著称。它支持多种编程语言(如 Scal…