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

【MySQL】一文带你掌握聚合查询和联合查询

文章目录

    • 1. 聚合函数
      • 1.1 COUNT
      • 1.2 SUM
      • 1.3 AVG
      • 1.4 MAX,MIN
    • 2. GROUP BY
    • 3. HAVING
    • 4. 联合查询
      • 4.1 内连接
      • 4.2 外连接
      • 4.3 自连接
      • 4.4 子连接
    • 5.合并查询
      • 5.1 UNION
      • 5.2 UNION ALL

1. 聚合函数

概念:
聚合函数是一种用于处理数据集合的函数,它将多个数据行作为输入,执行特定的计算,然后返回单个结果。聚合函数通常用于统计和汇总数据,例如计算平均值、总和、最大值、最小值等。
常见的聚合函数包括:

  1. COUNT - 统计数据行数
  2. SUM - 计算数据总和
  3. AVG - 计算数据的平均值
  4. MAX - 找出数据的最大值
  5. MIN - 找出数据的最小值

聚合函数通常与 GROUP BY 子句一起使用,以便根据一个或多个列对数据进行分组,并将聚合函数应用于每个分组。

以下举例都将以下表为例:

mysql> select * from student;
+----+--------+---------+------+---------+
| id | name   | chinese | math | english |
+----+--------+---------+------+---------+
|  1 | 猪八戒 |    90.5 | 54.5 |    80.0 |
|  2 | 唐僧   |    95.0 | 85.0 |    70.0 |
|  3 | 孙悟空 |    75.0 | 75.5 |    87.0 |
|  4 | 沙僧   |    80.0 | 45.0 |    90.5 |
+----+--------+---------+------+---------+

1.1 COUNT

统计数据行数

mysql> -- count 查询数据数量,为 NULL 的数据不会计入结果
mysql> select count(*) from student;
+----------+
| count(*) |
+----------+
|        4 |
+----------+
1 row in set (0.00 sec)mysql> select count(id) from student;
+-----------+
| count(id) |
+-----------+
|         4 |
+-----------+
1 row in set (0.00 sec)

1.2 SUM

计算数据总和

mysql> -- 计算数据之和,只能用于数值类型
mysql> select sum(math) from student;
+-----------+
| sum(math) |
+-----------+
|     260.0 |
+-----------+
1 row in set (0.00 sec)mysql>-- 当用于非数值类型将为0
mysql> select sum(name) from student;
+-----------+
| sum(name) |
+-----------+
|         0 |
+-----------+
1 row in set, 4 warnings (0.00 sec)mysql>-- SUM 函数只能用于数值类型的列,不能用于 *
mysql> select sum(*) from student;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) from student' at line 1

1.3 AVG

计算数据的平均值

mysql> -- 平均值,只可以作用于数值类型列
mysql> select avg(math) from student;
+-----------+
| avg(math) |
+-----------+
|  65.00000 |
+-----------+
1 row in set (0.00 sec)mysql> select avg(math+chinese+english) from student;
+---------------------------+
| avg(math+chinese+english) |
+---------------------------+
|                 232.00000 |
+---------------------------+
1 row in set (0.00 sec)mysql> select avg(math+chinese+english) as avg from student;
+-----------+
| avg       |
+-----------+
| 232.00000 |
+-----------+
1 row in set (0.00 sec)

1.4 MAX,MIN

最大值,最小值

mysql> -- 最大值,最小值
mysql> select max(math), min(math) from student;
+-----------+-----------+
| max(math) | min(math) |
+-----------+-----------+
|      85.0 |      45.0 |
+-----------+-----------+
1 row in set (0.00 sec)mysql> select max(chinese+math+english) as max,min(chinese+math+english) as min from student;
+-------+-------+
| max   | min   |
+-------+-------+
| 250.0 | 215.5 |
+-------+-------+
1 row in set (0.00 sec)

2. GROUP BY

概念:
GROUP BY是SQL命令的一部分,用于按一个或多个列中具有相同值的行进行分组。通常与聚合函数一起使用,例如SUM、AVG、COUNT、MIN和MAX,以对每个组应用计算并对数据进行分组。GROUP BY子句通常用于报告和数据分析中,以对大量数据进行汇总和组织。它有助于识别数据中的模式和趋势,并使其更易于理解和解释。

语法:

SELECT column1,column2,aggregate_function(column3)FROM table_name GROUP BY column1,column2;

以下举例以此表为例:

mysql> select * from emp;
+----+--------+----------+----------+
| id | name   | role     | salary   |
+----+--------+----------+----------+
|  1 | 马晕   | 服务员   |  1000.20 |
|  2 | 马华藤 | 游戏陪玩 |  2000.99 |
|  3 | 孙悟空 | 游戏角色 |   999.11 |
|  4 | 猪无能 | 游戏角色 |   333.50 |
|  5 | 沙和尚 | 游戏角色 |   700.33 |
|  6 | 老王   | 董事长   | 12000.66 |
+----+--------+----------+----------+

查询每个角色的最高工资、最低工资和平均工资:

mysql> select role, max(salary),min(salary),avg(salary) from emp group by role;
+----------+-------------+-------------+--------------+
| role     | max(salary) | min(salary) | avg(salary)  |
+----------+-------------+-------------+--------------+
| 服务员   |     1000.20 |     1000.20 |  1000.200000 |
| 游戏角色 |      999.11 |      333.50 |   677.646667 |
| 游戏陪玩 |     2000.99 |     2000.99 |  2000.990000 |
| 董事长   |    12000.66 |    12000.66 | 12000.660000 |
+----------+-------------+-------------+--------------+
4 rows in set (0.00 sec)

3. HAVING

概念:
HAVING子句是SQL的一部分,通常与GROUP BY子句一起使用,用于对分组后的数据进行过滤。它允许使用聚合函数计算并过滤分组后的数据,以便只输出特定条件的结果。

语法:

SELECT column1,aggregate_function(column2) FROM table_name GROUP BY column1 HAVING condition;

显示平均工资低于1500的角色:

mysql> select role,max(salary),min(salary),avg(salary) from emp group by role having avg(salary)<1500;
+----------+-------------+-------------+-------------+
| role     | max(salary) | min(salary) | avg(salary) |
+----------+-------------+-------------+-------------+
| 服务员   |     1000.20 |     1000.20 | 1000.200000 |
| 游戏角色 |      999.11 |      333.50 |  677.646667 |
+----------+-------------+-------------+-------------+
2 rows in set (0.00 sec)

显示平均工资高于2000的角色:

mysql> select role,max(salary),min(salary),avg(salary) from emp group by role having avg(salary)>2000;
+----------+-------------+-------------+--------------+
| role     | max(salary) | min(salary) | avg(salary)  |
+----------+-------------+-------------+--------------+
| 游戏陪玩 |     2000.99 |     2000.99 |  2000.990000 |
| 董事长   |    12000.66 |    12000.66 | 12000.660000 |
+----------+-------------+-------------+--------------+
2 rows in set (0.00 sec)

4. 联合查询

概念:
联合查询(UNION)是SQL中的一种操作,用于将两个或多个SELECT语句的结果合并为一个结果集。联合查询可以将两个或多个表的数据合并在一起,并返回一个新的结果集。联合查询是对多张表的数据取笛卡尔积:
笛卡尔积
联合查询一般都会有一些行是不符合要求的,这个时候我们可以添加条件精选筛选。

以下举例以此为例:

mysql> select * from student;
+------+--------+----------+
| id   | name   | class_id |
+------+--------+----------+
|    1 | 唐僧   |        1 |
|    2 | 沙僧   |        1 |
|    3 | 孙悟空 |        1 |
|    4 | 宋江   |        2 |
|    5 | 李逵   |        2 |
|    6 | 诸葛亮 |        3 |
|    7 | 张飞   |        3 |
|    8 | 曹操   |        3 |
|    9 | 周瑜   |        3 |
+------+--------+----------+
9 rows in set (0.00 sec)mysql> select * from class;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 西游班 |
|    2 | 水浒班 |
|    3 | 三国班 |
+------+--------+
3 rows in set (0.00 sec)

4.1 内连接

概念:
内连接是一种关系型数据库的查询方式,它是联合查询的一种,但并不是所有联合查询都是内连接。内连接是基于两个或多个表之间的公共键将记录连接在一起的查询方式。内连接仅返回两个表中都包含匹配键值的行,其他行将被排除在结果之外。内连接通常使用JOIN关键字实现。

语法:

select 字段 from1 别名1 [inner] join2 别名2 on 连接条件 and 其他条件;
select 字段 from1 别名1,2 别名2 where 连接条件 and 其他条件;

当我们查询时,如果不进行条件筛选,那么将会造成下面场景:
不筛选查询
这种结果显然不是我们想要的,所以我们可以加上条件,进行筛选,精简表格,就是上面语法两种:

mysql> -- join on 
mysql> select student.name,class.name from student join class on student.class_id = class.id;
+--------+--------+
| name   | name   |
+--------+--------+
| 唐僧   | 西游班 |
| 沙僧   | 西游班 |
| 孙悟空 | 西游班 |
| 宋江   | 水浒班 |
| 李逵   | 水浒班 |
| 诸葛亮 | 三国班 |
| 张飞   | 三国班 |
| 曹操   | 三国班 |
| 周瑜   | 三国班 |
+--------+--------+
9 rows in set (0.00 sec)mysql> -- where 
mysql> select student.name,class.name from student, class where student.class_id = class.id;
+--------+--------+
| name   | name   |
+--------+--------+
| 唐僧   | 西游班 |
| 沙僧   | 西游班 |
| 孙悟空 | 西游班 |
| 宋江   | 水浒班 |
| 李逵   | 水浒班 |
| 诸葛亮 | 三国班 |
| 张飞   | 三国班 |
| 曹操   | 三国班 |
| 周瑜   | 三国班 |
+--------+--------+
9 rows in set (0.00 sec)mysql> -- 别名
mysql> select stu.name,cla.name from student stu, class cla where stu.class_id = cla.id;
+--------+--------+
| name   | name   |
+--------+--------+
| 唐僧   | 西游班 |
| 沙僧   | 西游班 |
| 孙悟空 | 西游班 |
| 宋江   | 水浒班 |
| 李逵   | 水浒班 |
| 诸葛亮 | 三国班 |
| 张飞   | 三国班 |
| 曹操   | 三国班 |
| 周瑜   | 三国班 |
+--------+--------+
9 rows in set (0.00 sec)

4.2 外连接

概念:
在数据库中,外连接(outer join)是指通过两个或多个表中的一个或多个共同数据列将它们连接起来,产生一个新的查询结果集。不同于Inner Join(内连接),外连接能够返回那些在一个表中存在但在另一个表中不存在的数据行。
外连接有左连接(left join)、右连接(right join)和全连接(full join)三种类型。
左连接(left join)返回左表中的所有数据行,即使在右表中没有匹配的数据行,也不会过滤掉左表中的数据。右连接(right join)则是返回右表中的所有数据行。
全连接(full join)是指返回两个表中的所有数据,不管它们在另一个表中是否有与之匹配的数据。全连接通常不常用,因为它可能会返回非常大的结果集。
外连接和内连接不同点在于外连接可以返回任何表中的数据,而内连接只能返回两个表中共有的数据行。

语法:

-- 左外连接,表1完全显示
select 字段名  from 表名1 left join 表名2 on 连接条件;
-- 右外连接,表2完全显示
select 字段 from 表名1 right join 表名2 on 连接条件;

代码使用和外连接基本相同,为了防止博客臃肿,大家可以自己敲打试试,不会的话随时可以私信问我。

4.3 自连接

概念:
自链接(self join)是指在同一张表中进行联接操作的过程。它和普通的表之间连接操作类似,但是表名出现了两次,也就是同一个表名在同一查询中出现了两次或以上。
自链接的语法格式与普通的表之间连接非常相似,只需要在表名后加上别名即可,这里的别名可以是任何合法的标识符,用于区分同一个表中不同的记录。

语法:

SELECT a.name, b.name AS leader FROM staff a, staff b WHERE a.leader_id = b.id;

4.4 子连接

概念:
子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。

使用示例:

mysql> -- 借助子查询查询诸葛亮同班同学
mysql> select * from student where class_id=(select class_id from student where name='诸葛亮');
+------+--------+----------+
| id   | name   | class_id |
+------+--------+----------+
|    6 | 诸葛亮 |        3 |
|    6 | 张飞   |        3 |
|    6 | 曹操   |        3 |
|    6 | 周瑜   |        3 |
+------+--------+----------+
4 rows in set (0.00 sec)mysql> -- 也可以将=换成in
mysql> select * from student where class_id in (select class_id from student where name='诸葛亮');
+------+--------+----------+
| id   | name   | class_id |
+------+--------+----------+
|    6 | 诸葛亮 |        3 |
|    6 | 张飞   |        3 |
|    6 | 曹操   |        3 |
|    6 | 周瑜   |        3 |
+------+--------+----------+
4 rows in set (0.00 sec)mysql> -- 使用not in可以查询非诸葛亮同班同学
mysql> select * from student where class_id not in (select class_id from student where name='诸葛亮');
+------+--------+----------+
| id   | name   | class_id |
+------+--------+----------+
|    1 | 唐僧   |        1 |
|    2 | 沙僧   |        1 |
|    3 | 孙悟空 |        1 |
|    4 | 宋江   |        2 |
|    5 | 李逵   |        2 |
+------+--------+----------+
5 rows in set (0.00 sec)

5.合并查询

概念:
MySQL的合并查询(union)是一种在多个查询结果中获取不同数据行并将它们整合成一个查询结果集的查询方式。合并查询需要满足一定的条件,比如数据行必须具有相同的列数和数据类型,并且必须按照相同的顺序排列。
合并查询通常用于需要从多个表或查询结果中获取数据的查询需求。合并查询分为两种类型:UNION和UNION ALL。UNION去重并合并查询结果,而UNION ALL只是简单地合并查询结果。

5.1 UNION

mysql> -- student表
mysql> select * from student;
+--------+----------+
| name   | class_id |
+--------+----------+
| 唐僧   |        1 |
| 沙僧   |        1 |
| 孙悟空 |        1 |
| 宋江   |        2 |
| 李逵   |        2 |
| 诸葛亮 |        3 |
+--------+----------+
6 rows in set (0.00 sec)mysql> -- class表
mysql> select * from class;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 西游班 |
|    2 | 水浒班 |
|    3 | 三国班 |
+------+--------+
3 rows in set (0.00 sec)mysql> -- 自己合并自己使用union就只能得到一个自己表
mysql> select * from student-> union-> select * from student;
+--------+----------+
| name   | class_id |
+--------+----------+
| 唐僧   |        1 |
| 沙僧   |        1 |
| 孙悟空 |        1 |
| 宋江   |        2 |
| 李逵   |        2 |
| 诸葛亮 |        3 |
+--------+----------+
6 rows in set (0.00 sec)mysql> -- 两个不同的表列数要相同,不然不能拼接
mysql> select * from student-> union-> select * from class;
+--------+----------+
| name   | class_id |
+--------+----------+
| 唐僧   | 1        |
| 沙僧   | 1        |
| 孙悟空 | 1        |
| 宋江   | 2        |
| 李逵   | 2        |
| 诸葛亮 | 3        |
| 1      | 西游班   |
| 2      | 水浒班   |
| 3      | 三国班   |
+--------+----------+
9 rows in set (0.00 sec)

5.2 UNION ALL

mysql> 必须列数相同,全部拼接在一张表
mysql> select * from student-> union all-> select * from class;
+--------+----------+
| name   | class_id |
+--------+----------+
| 唐僧   | 1        |
| 沙僧   | 1        |
| 孙悟空 | 1        |
| 宋江   | 2        |
| 李逵   | 2        |
| 诸葛亮 | 3        |
| 1      | 西游班   |
| 2      | 水浒班   |
| 3      | 三国班   |
+--------+----------+
9 rows in set (0.00 sec)mysql> -- 没有去重效果
mysql> select * from student-> union all-> select * from student;
+--------+----------+
| name   | class_id |
+--------+----------+
| 唐僧   |        1 |
| 沙僧   |        1 |
| 孙悟空 |        1 |
| 宋江   |        2 |
| 李逵   |        2 |
| 诸葛亮 |        3 |
| 唐僧   |        1 |
| 沙僧   |        1 |
| 孙悟空 |        1 |
| 宋江   |        2 |
| 李逵   |        2 |
| 诸葛亮 |        3 |
+--------+----------+
12 rows in set (0.00 sec)

相关文章:

【MySQL】一文带你掌握聚合查询和联合查询

文章目录 1. 聚合函数1.1 COUNT1.2 SUM1.3 AVG1.4 MAX&#xff0c;MIN 2. GROUP BY3. HAVING4. 联合查询4.1 内连接4.2 外连接4.3 自连接4.4 子连接 5.合并查询5.1 UNION5.2 UNION ALL 1. 聚合函数 概念&#xff1a; 聚合函数是一种用于处理数据集合的函数&#xff0c;它将多个…...

初步了解JVM

JVM 整体组成部分 类加载器 类加载过程 加载&#xff1a;使用IO读取字节码文件&#xff0c;转换并存储&#xff0c;为每个类创建一个Class对象&#xff0c;存储在方法区中 链接&#xff08;验证&#xff0c;准备&#xff0c;解析&#xff09; ​ 验证:对字节码文件格式进…...

嘀嗒陪诊小程序v1.0.8+小程序前端

嘀嗒陪诊小程序功能相对简单&#xff0c;后台也简捷&#xff0c;如果只是做个陪诊服务的小程序也基本能满足了&#xff0c;整体测试了下海参崴发现BUG&#xff0c;小程序端也能正常为使用&#xff0c;唯一用户授权接口是老的。 应用背景&#xff1a;人口老龄化少子化&#xff…...

Java中线程的生命周期

Java中线程的生命周期 Java中线程的声明周期与os中线程的生命周期不太一样&#xff0c;java中线程有6个状态&#xff0c;见下&#xff1a; NEW: 初始状态&#xff0c;线程被创建出来但没有被调用 start() 。RUNNABLE: 运行状态&#xff0c;线程被调用了 start()等待运行的状态…...

光线追踪RayTracing,基本原理,判断物体与光线相交

光线的三点假设&#xff1a; 光线按直线传播光线之间不会发生碰撞光线会经过一系列折射反射进入摄像机 可以从摄像机发出光线&#xff0c;推出可逆的光路 上图中&#xff0c;透明球在与相机直连的线条处&#xff0c;需要将折射和反射的着色点结果相加&#xff0c;如果有光源直…...

三十六、数学知识——组合数(递推法 + 预处理法 + 卢卡斯定理 + 分解质因数求解组合数 + 卡特兰数)

组合数算法主要内容 一、基本思路1、组合数基本概念2、递推法——询问次数多 a b 值较小 模处理&#xff08;%mod&#xff09;3、预处理阶乘方法——询问次数较多 a b 值很大 模处理&#xff08;%mod&#xff09;4、卢卡斯定理——询问次数较少 &#xff08;a b 值很大&am…...

LinuxC编程——高级文件操作

目录 一、查询文件信息1、stat2、stat fstat lstat区别 二、目录操作2.1 opendir2.2 readdir2.3 closedir例练习&#xff1a;实现ls操作 三、库3.1 库的定义3.2 库的分类3.2.1 静态库3.2.2 动态库 3.3 创建库3.3.1 静态库制作3.3.2 动态库制作 一、查询文件信息 1、stat int …...

【基础知识整理】图的基本概念 邻接矩阵 邻接表

一、图概述 定义&#xff1a; 图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的&#xff1b; 其中&#xff0c;点通常被成为"顶点(vertex)“&#xff0c;而点与点之间的连线则被成为"边或弧”(edege)。 通常记为&#xff0c;G(V,E)。 图是一种重要的…...

5.程序控制结构|Java学习笔记

文章目录 程序流程控制介绍顺序控制分支控制分支控制if elseswitch分支结构 循环控制for循环控制while循环控制do...while循环控制跳转控制语句breakcontinuereturn 程序流程控制介绍 顺序控制分支控制循环控制 顺序控制 程序从上到下逐行地执行&#xff0c;中间没有任何判断…...

【最优PID 整定】PID性能指标(ISE,IAE,ITSE和ITAE)优化、稳定性裕量(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Linux内核中断和Linux内核定时器

目录 Linux内核中断 Linux内核定时器 Linux内核中断 int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,const char *name, void *dev) 功能&#xff1a;注册中断 参数&#xff1a; irq : 软中断号 gpio的软中断号 软中断号 gpio_to_i…...

OMG--IDL(Interface Definition Language)

OMG--IDL&#xff08;Interface Definition Language&#xff09; 1 概述2 内容缩写IDL 语法和语义概述词法约定ISO Latin-1的字母字符如下表十进制数字字符图形字符格式化字符Tokens注释标识符冲突规则转义标识符关键字IDL识别的其他字符字面量 预处理IDL 语法构建块核心数据类…...

英语学习:M开头

machine 机器 mad 发疯的&#xff0c;生气的 madam 女士&#xff0c;夫人 madame 夫人 magazine 杂志 magic 有魔力的 maid 女仆&#xff0c;侍女 mail 邮递 mailbox 邮箱 mainland 大陆 major 较大的&#xff0c;主要的 majority 大多数 male 雄的 man 人类 man…...

【计算机组成原理与体系结构】控制器

目录 一、CPU的功能与基本结构 二、指令周期的数据流 三、数据通路 四、硬布线控制器 五、微程序控制器 六、微指令 一、CPU的功能与基本结构 运算器基本结构 控制器基本结构 CPU的基本结构 二、指令周期的数据流 取址周期 间址周期 中断周期 指令周期流程 三、数据通路 …...

结构化命令

章节目录&#xff1a; 一、使用 if-then 语句二、if-then-else 语句三、嵌套 if 语句四、test 命令4.1 数值比较4.2 字符串比较4.3 文件比较 五、复合条件测试六、if-then 的高级特性6.1 使用单括号6.2 使用双括号6.3 使用双方括号 七、case 命令八、结束语 本章内容&#xff1…...

Java Web实训项目:西蒙购物网

文章目录 一、创建数据库和表1、创建数据库2、创建用户表3、创建类别表4、创建商品表5、创建订单表 二、创建Simonshop项目1、创建web项目2、修改Artifacts名称&#xff1a;simonshop3、重新部署项目4、编辑首页5、启动应用&#xff0c;查看效果 三、创建实体类1、用户实体类2、…...

ChatGPT Prompt 提示词设计技巧必知必会

本文内容整理自图灵社区直播《朱立成&#xff1a;ChatGPT Prompt提示词技巧必知必会》。 朱立成&#xff0c;图灵社区《ChatGPT即学即用》视频课程作者&#xff0c;软件工程师&#xff0c;对新事物充满好奇&#xff0c;关注ChatGPT应用。2001年毕业于浙江大学&#xff0c;从事软…...

尚硅谷-云尚办公-项目复盘

尚硅谷-云尚办公-项目复盘 资料地址本文介绍问题汇总问题1.knife4j无法下载 视频4问题2.dev等含义 视频5问题3.wrapper继承/实现图 视频8问题4.修改统一返回结果 视频11问题5.修改后新增也变修改 视频29问题6.redis中key值乱码 视频55-60问题7.RangeError: Maximum call stack …...

nacos升级到2.0.3(单机模式)

前提&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/版本说明 Spring Cloud AlibabaSpring CloudSpring BootNacos2.2.7.RELEASESpring Cloud Hoxton.SR122.3.12.RELEASE2.0.3 一、pom.xml文件 <parent><groupId>org.springframework.boot&…...

Koa学习3:用户添加、错误处理

模型 在src目录下创建model目录&#xff0c;用来存放模型 创建用户模型 user.model.js 注意&#xff1a; UUID类型是无法自增的&#xff0c;将id设置为UUID类型时只需要为其指定默认值即可 // 数据类型 const { DataTypes } require(sequelize); // 导入已经连接了数据库…...

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引&#xff0c;可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度&#xff08;创建索引的主要原因&#xff09;。3. 可以加速表和表之间的连接&#xff0c;实现数据的参考完整性。4. 可以在查询过程中&#xff0c;…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...