【MySQL】基本查询(第二弹)

【MySQL】基本查询(第二弹)
在这里插入图片描述

文章目录

1.筛选分页结果

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

select*from student limit0,3;
在这里插入图片描述


上面这种写法表示从哪个位置开始显示多少行数据,注意:表的开始是0好位置,而不是1号位置。
limit不仅可以这样用,还可以通过加上其他的条件达到自己想要的效果,比如order by:

在这里插入图片描述


我们可以通过order by加上limit来达到筛选出成绩最好的或者成绩最差的,根据自己数据库的需求来分页筛选

2.Update

基本语法

UPDATE table_name SETcolumn= expr [,column= expr ...][WHERE...][ORDERBY...][LIMIT...]

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

在这里插入图片描述

3.Delete

基本语法

DELETEFROM table_name [WHERE...][ORDERBY...][LIMIT...]

可以通过where条件删除表中对应的行数据:

在这里插入图片描述


也可以通过delete删除整个表,我们专门创建一张表来测试delete的删除效果:

在这里插入图片描述


删除表中所有数据:

在这里插入图片描述


可以看到当我们删除表中所有数据时,自增长约束是不会被清除为0的,这就是delete的特性,接下来我们来看看truncate的特性

4.截断表

基本语法

TRUNCATE[TABLE] table_name 

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

在这里插入图片描述

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

5.插入查询结果

INSERTINTO 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,..fromtablegroupbycolumn;

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 操作,提高数据库管理的能力!如果有任何问题,欢迎交流与探讨。

Read more

Flutter 三方库 vy_string_utils 的鸿蒙化适配指南 - 实现高效的字符串模式校检、支持富文本清洗与多维度命名规范转换

Flutter 三方库 vy_string_utils 的鸿蒙化适配指南 - 实现高效的字符串模式校检、支持富文本清洗与多维度命名规范转换

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 vy_string_utils 的鸿蒙化适配指南 - 实现高效的字符串模式校检、支持富文本清洗与多维度命名规范转换 前言 在进行 Flutter for OpenHarmony 开发时,字符串处理几乎无处不在。从校验用户输入的手机号,到将后台返回的 snake_case 字段转化为鸿蒙 UI 需要的文本格式,这类基础工作如果通过硬编码实现,会产生大量的冗余逻辑。vy_string_utils 是一款轻量级却功能强悍的字符串工具包。它通过一系列精心设计的扩展方法,让鸿蒙开发者能以极简的语法管理所有文本流。本文将带大家领略这款“字符串手术刀”的威力。 一、原理解析 / 概念介绍 1.1 基础原理 vy_string_utils 基于 Dart

By Ne0inhk

对于linux形成整体性的认识

对于linux形成整体性的认识 其实服务器就是上网,用的。 他就是一个低功耗,拥有很多协议的,并且有强大处理性能的机器。 首先要理解的第一层,就是, 1.他是一个拥有很多网络协议,可以上网的机器 2.他的操作系统,centos7,和linux底层实现了这些网络协议。可以看linux内核实现机制 3.底层的硬件层是,cpu,内存,磁盘这些 4.运行的机制,是使用进程线程这些提供的机制,存储的机制是使用文件存储管理这些机制 你对 Linux 服务器的理解非常朴实且抓住了核心,这其实是一个很好的起点。把服务器看作“一个低功耗、拥有很多协议、有强大处理性能的上网机器”,这个比喻很形象。 为了帮你形成更整体性的认识,我们可以基于你提到的这四点,把它们串联成一个更系统的“分层认知模型”,并补充一些实际工作中会用到的视角。 你可以把整个 Linux 服务器想象成一棵大树,从土壤到树冠,每个部分都相互依存: 第一层:根基——硬件层 这是你提到的“cpu,内存,

By Ne0inhk
【Linux】分页式存储管理:深刻理解页表映射

【Linux】分页式存储管理:深刻理解页表映射

📝前言: 这篇文章我们来讲讲Linux——分布式存储管理 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀ZEEKLOG主页 愚润求学 🌄其他专栏:C++学习笔记,C语言入门基础,python入门基础,C++刷题专栏 分布式存储管理 * 一, 物理内存管理 * 二,两级页表的地址转换 * 1. 页表 * 2. 页目录结构 * 3. 地址转换过程 * 4. TLB * 三. 缺页异常 * 其他问题理解 * 1. 理解malloc和new * 2. 理解写时拷贝 一, 物理内存管理 我们之前谈磁盘的时候说数据是按块(4KB)存储的,实际上内存也是会按4KB大小来划分的。(物理内存和磁盘之间,以4KB为单位交换) 4GB 的空间就是4GB/4KB = 1048576 个块,我们把这个块称为:

By Ne0inhk
【Linux】网络基础

【Linux】网络基础

个人主页~ 网络基础 * 一、网络的发展 * 二、认识网络协议 * 1、OSI七层模型 * 2、TCP/IP五层模型 * 三、网络传输流程 * 1、同网段通信 * 2、跨网段通信 * 四、以太网通信 * 1、MAC地址 * 2、通信原理 一、网络的发展 * 独立模式 * 产生背景:在计算机发展的早期阶段,计算机系统主要以单机形式存在,每台计算机都是一个独立的个体,不与其他计算机进行数据通信和资源共享,这就是独立模式,当时的计算机主要用于科学计算和简单的数据处理,用户只能在本地使用计算机的硬件和软件资源 * 特点 * 独立性:每台计算机独立运行,有自己的处理器、存储器、输入输出设备等,数据和程序都存储在本地,不依赖其他计算机 * 资源有限性:用户只能使用本地计算机的资源,如本地的硬盘空间、内存、打印机等,无法共享其他计算机的资源,资源利用效率较低 * 功能局限性:

By Ne0inhk