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

【MySQL】MySQL 表的增删改查(CRUD)—— 下篇(内含聚合查询、group by和having子句、联合查询、插入查询结果)

目录

1. 插入查询结果

2 聚合查询 (行与行之间运算)

count 计算查询结果的行数

sum 求和

avg 求平均值

max 最大值 min 最小值

【小结】

3. group by 子句  分组

where 条件

having 条件

4. 联合查询(多表查询)

内连接

外连接

【小结】

自连接

子查询

合并查询


1. 插入查询结果

查询搭配插入使用。把查询语句的查询结果,作为插入的数值。

查询结果集合的列数、类型,和插入的表的列数,类型要相匹配 —— 表结构相同

询结果

2 聚合查询 (行与行之间运算)

聚合查询,是针对行和行之间进行运算的。表达式查询,是针对列和列之间进行运算的。

sql中提供了一些"聚合函数”通过聚合函数来完成上述行之间的运算。聚合函数 ,sql提供的 库函数。

函数说明
count([distinct] expr)返回查询到的数据的 数量(查询结果的行数)
sum([distinct] expr)返回查询到的数据的 总和,不是数字没有意义
avg([distinct] expr)返回查询到的数据的 平均值,不是数字没有意义
max([distinct] expr)返回查询到的数据的 最大值,不是数字没有意义
min([distinct] expr)返回查询到的数据的 最小值,不是数字没有意义

count 计算查询结果的行数

  • 这个操作可以理解为,先执行select *,再针对结果集合进行统计(看看具体有几行)。
  • 4 rows in set  (0.00 sec) 这里已经能看到行数了,为什么还要使用count呢。
  • 这里显示行数是mysql客户端内置的功能。如果是通过代码来操作mysql服务器就没这个功能。
  • 另外,count(*)得到的结果还可以参与各种算术运算,还可以搭配其他sql使用。

指定列进行的count

  • 注意这里name 计数的是3个, name为 NULL 的数据不会计入结果。
  • 如果当前的列里面有null,select * 和 指定列 两种方式计算的count是不同的。
  • 指定具体列,是可以进行去重的。而select * 不支持。

 很多语言中,函数名和后面()中间的空格是不做要求的。但在有的语言中就是例外,例如sql中。

sum 求和

把这一列的若干行,进行求和(算术运算)只能针对数字类型使用。虽然字符串可以相加,但不是"算术运算"。

  • 如果计算该列数据中有null,sum操作会自动跳过查询结果为null的行。原因:null和其他数值进行运算,结果还是null,这样sum操作就没意义了。

  • 字符串可以相加,但不是"算术运算"。

  • 这里进行字符串的相加,没有直接报错,只是出现了 7 个警告,有问题但不严重。
  • 通过 show warnings 语句查看警告。我们看到在进行相加时,mysql会尝试把这一列给转成double类型,如果转成了,就可以进行运算。如果没转成,就会警告。

这里‘007’被转化为了double类型,参加了算数运算。

  • sum()中可以指定表达式,也可以进行去重操作。

  1. select chinese + math + english .....把对应的列相加,得到一个临时表
  2. 再把这个临时表的结果进行,行和行相加。

avg 求平均值

max 最大值 min 最小值

 都可以进行表达式、去重、不计算null等操作。

【小结】

  • 都可以进行表达式、去重、不计算null等操作。
  • sql是有一定的"统计计算”能力的,就像excel一样。
  • 能不能在聚合函数里面再添加一个聚合函数?sql表达逻辑的能力是有限的,如果有这样的需求,可以使用java操作sql,复杂逻辑用java来表达, sql只是做简单的查询和统计。

  • 这样算平均薪资是不合理的。
  • 这些聚合函数,默认都是针对这个表里的列中所有数据进行了聚合。
  • 有时候需要分组聚合,(按照指定的字段,把记录分成若干组,每一组分别使用聚合函数)

3. group by 子句  分组

  • 使用group by进行分组,针对每个分组,再分别进行聚合查询。
  • 针对指定的列进行分组,指把列里值相同的行,分到同一个组。得到若干个组,针对这些组分别使用聚合函数。

  • select 指定的列,要么是带有聚合函数的,要么是指定的group by的列。不能指定一个非聚合,非group by的列。
  • role这一列,是group by指定的列。每一组所有的记录的role,—定是相同的。

如果进行分组的时候,不进行聚合:

  • 如果针对分组之后,不使用聚合函数,此时的结果就是查询出每一组中的某个代表数据(没有ordor by 约束的查询结果,不具备有序性)
  • 往往还是要搭配聚合函数使用,否则这里的查询结果,就是没有意义的。

使用 group by 分组的时候,可以搭配条件筛选

需要先区分清楚,该条件是分组之前的条件,还是分组之后的条件。

where 条件

1、分组前筛选,使用 where 条件

查询每个岗位的平均薪资,但是排除张三同学。

直接使用where即可。where子句一般写在group by 的前面。

整个sql语句的执行顺序:先执行where 条件 筛选,再进行分组,然后执行聚合函数。

having 条件

2、分组后筛选,使用 having 条件

求每个岗位的平均薪资,但是排除平均薪资超过2w的结果。

使用having描述条件。having子句一般写在group by的后面。

整个sql语句执行顺序:先进行分组,执行聚合函数,然后执行 haveing 条件 筛选

 3、在group by 分组,可以一个sql同时完成这两类条件的筛选。查询每个岗位的平均薪资,排除张三同学,并保留平均值<2w的结果。

分组前筛选、分组后筛选,还是两种条件都具备,具体内容具体分析。

4. 联合查询(多表查询)

实际开发中往往数据来自不同的表,所以需要多表联合查询。多表查询是对多张表的数据取笛卡尔积。

  • 前面的查询,都是针对一个表。相比之下,有些查询则是一次性需要从多个表中进行查询获取记录。联合查询就是把多个表联合到一起进行查询。
  • 联合查询步骤:先经过笛卡尔积运算,通过连接条件筛选出有效数据,结合需求进一步筛选要查询的记录。
  • 联合查询关键思路,在于理解"笛卡尔积"工作过程。笛卡尔积,是一种排列组合,把两张表的记录,尽可能的排列组合出N种情况。

  • 笛卡尔积通过排列组合的方式,得到的一个更大的表。
  • 笛卡尔积的列数,是两个表的列数相加。笛卡尔积的行数,是两个表的行数相乘
  • 由于笛卡尔积简单无脑的排列组合方式,把所有可能的情况都穷举了一遍。包含一些合法的数据也包含非法的,无意义的数据。
  • 进行多表查询时,使用sql的条件筛选出有效的数据。通过观察上述笛卡尔积表得出这个条件就是,where 班级表的id = 学生表的classld 也叫连接条件。
  • 注意这里两个表并没有使用外键约束进行关联的,而是通过逻辑上的关系(业务字段匹配)关联的,例如某某学生属于哪个班级,是客观的实际情况。笛卡尔积穷举出所有可能,使用连接条件(逻辑上的关系)筛选出有效数据。
  • 关联查询可以对关联表使用别名。

笛卡尔积在日常开发中,要非常克制的使用。

  • 有时候使用起来非常的方便快捷。
  • 一旦表的数据量大或者表数目多,得到的笛卡尔积就非常庞大。如果针对大表进行笛卡尔积(多表查询),就会生成大量的临时结果,这个过程非常消耗时间。数据库服务器在这样的情况下就可能卡死。
  • 如果多表查询涉及到的表数目比较多时,sql就会非常复杂,可读性也大大降低了。

内连接

语法:

  • select 字段 from 表1 别名1 , 表2 别名2 where 连接条件 and 其他条件;
  • select 字段 from 表1 别名1 [inner] join 表2 别名2 on 连接条件 and 其他条件;
  • 两个sql语句是等价,一个使用   , ...... where ......;   一个使用  [inner] join ...... on......;

先创建几个表:学生表、班级表、课程表、分数表(学生和课程之间的关联表)

【案例1】查询‘许仙’同学的 成绩。

两个表:student和score。怎么进行联合查询。

1、先把这两个表,进行笛卡尔积。

  • sql中直接通过表名中间 , 隔开就可以可以排列组合得到笛卡尔积。

2、加上连接条件,筛选出有效数据

  • 学生表的 id = 分数表的 student_id 

  • 为了避免不同表中可能存在有列名相同的列当做连接条件。同时笛卡尔积后列变多,可能区分不了是哪个表中的列。
  • 所以连接条件写作:表名.列名类似于java中的对象访问字段。

3、结合需求,进一步添加条件,针对结果进行筛选

此处是查询许仙的成绩,就可以再加上一个 student.name = '许仙'

4、针对查询到的列进行精简,只保留需求中的列

【案例2】查询所有同学的总成绩,及同学的个人信息。

分析:

  • 之前是通过表达式查询来完成总成绩的计算(列与列之间运算)。
  • 这里同学的成绩是按照行来组织的,使用聚合查询(行与行之间运算),聚合函数sum完成总成绩的计算,同时搭配group by子句 按照同学进行分组。
  • 基于多表查询和聚合查询综合运用。

1、先进行笛卡尔积

2、指定连接条件

student.id = class.student_id 

3、先精简列

4、针对上述结果,再进行group by聚合查询。

【案例3】查询每个同学,每门课程的课程名字和分数。

三张表:student,course,score

1、先进行笛卡尔积

2、指定连接条件,筛选数据

三个表,涉及到两个连接条件。分数表把学生和课程关联起来,同时描述出他的分数。

3、精简列

外连接

外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示就说是左外连接;右侧的表完全显示就说是右外连接。

语法:
-- 左外连接,表1完全显示

  • select 字段名 from 表名1 left join 表名2 on 连接条件;

-- 右外连接,表2完全显示

  • select 字段 from 表名1 right join 表名2 on 连接条件;

如果这两个表,里面的记录都是存在对应关系,内连接和外连接的结果是一致的。

  • student 中的每一条记录,都可以在score表中找到对应。
  • 每一个score中的记录,也可以在student中找到对应。

如果两个表,里面存在不对应的记录,内连接和外连接就会出现差别。

这种情况很少出现,因为在插入数据的时,一般都会进行严格的校验,但不否认不会存在这样的情况。例如王五同学缺考了,没有成绩。

内连接

左外连接,left join

  • 左外连接,就是以左侧表为基准
  • 保证左侧表的每个数据都会出现在最终结果里。
  • 如果左表中的记录在右侧表中不存在,对应的列就填成null

右外连接,right join

  • 右外连接,是以右侧表为基准。
  • 保证右侧表的每个数据都会出现在最终结果里。
  • 如果右表中的记录在左侧表中不存在,对应的列就填成null

【小结】

  1. 多表查询运行过程中会产生大量的中间数据。在日常开发中,要非常克制的使用。使用时要尽可能明确,是针对多大规模的表使用以及产生的结果规模。
  2. 即使使用,大多数情况下都是使用内连接。外连接只是针对特殊情况,给出的特殊处理方式。

自连接

  • 自连接是指在同一张表连接自身进行查询。自己和自己进行笛卡尔积。(特殊技巧)
  • 特殊情况下特殊用法:sql中的条件都是列和列之间进行比较。但是有的需求可能涉及到行和行比较。所以可以使用自连接,把行的关系转换成列的关系。

【案例】显示所有“计算机原理”成绩比“Java”成绩高的成绩信息

此处course_id 为 1 的是Java的成绩,为 3 的是计算机原理的成绩,看哪个同学的计算机原理的成绩比Java的成绩高,但是它们处在不同的行中,无法直接进行比较。 我们使用自连接方式,把行的关系转换成列的关系。

1、自己与自己进行笛卡尔积

  • score, score 这样写报错了,原因:score不是唯一的表/别名。
  • 利用别名,使两个表名区别开。

2、指定连接条件,筛选数据

  • 这里可以按照学生id进行筛选,也可以使用课程id进行筛选。主要看关注的是学生信息还是课程信息。
  • 此处关注的是学生信心,按照学生信息去筛选。

3、结合需求,进一步添加条件,针对结果进行筛选

  • 得到的结果,左侧表分数列是计算机原理;右侧分数列是java。而且是不同学生的。

4、结合需求,再添加条件,针对结果进行筛选

得到计算机课程成绩大于java课程成绩的信息。

5、精简列

  • 如果想要学生姓名,就可以拿这个表和学生表做笛卡尔积
  • 如果想要课程名字,就可以拿这个表和课程表做笛卡尔积

子查询

  • 子查询是指嵌入在其他sql语句中的select语句,也叫嵌套查询。本质上是在"套娃"。
  • 把多个简单的SQL拼成一个复杂的SQL。一个大的复杂的东西,不方便看也不好理解。
  • 违背了一贯的编程原则:平时写代码都讲究,把大的拆分成小的,把复杂的拆分成多个简单的。
  • 在开发中并不建议使用子查询,应该使用多个简单sql替代。但是还是要了解一下的。

1、单行子查询:返回一行记录的子查询

【案例】查询与“不想毕业” 同学的同班同学:

  1. 先找到“不想毕业”同学,所在的班级classes_id 为 1;
  2. 然后找到班级classes_id 为 1 的其他同学,就找到“不想毕业”同学的同班同学。

通过子查询方式一步完成:

这里嵌套的select 语句,返回结果必须是一行的记录。这里直接把嵌套select 语句当成一个数值使用。

2、多行子查询:返回多行记录的子查询

【案例】查询“语文”或“英文”课程的成绩信息

使用联合查询方法:两个表,course,score

多行子查询,搭配 in 关键字使用in 表示某个值是否存在这个集合中。

  1. 先通过课程名字,找打课程id。
  2. 再通过课程id在分数表中进行查询

通过子查询方式一步完成:

多行子查询,也可以搭配 exists 关键字使用。相比于 in 关键字,搭配 exists 更复杂,运行效率还比较低。唯一的优势是节省内存空间,仅此而已。但是内存并不是影响代码的瓶颈的设备。这里不做过多介绍,可自行了解。

合并查询

  • 把多个sql查询的结果集合,合并到一起。使用 union 关键字
  • 在实际应用中,为了合并多个select的执行结果,可以使用集合操作符 union,union all 关键字。
  • 使用union 和 union all时,前后查询的结果集中,字段需要一致。

【案例】查询id小于3,或者名字为“英文”的课程:

  • union 该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。
  • union all 该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。

使用 or 操作符,但只能针对一个表。


好啦Y(^o^)Y,本节内容到此就结束了。下一篇内容一定会火速更新!!!

后续还会持续更新MySQL方面的内容,还请大家多多关注本博主,第一时间获取新鲜的知识。

如果觉得文章不错,别忘了一键三连哟! 

相关文章:

【MySQL】MySQL 表的增删改查(CRUD)—— 下篇(内含聚合查询、group by和having子句、联合查询、插入查询结果)

目录 1. 插入查询结果 2 聚合查询 &#xff08;行与行之间运算&#xff09; count 计算查询结果的行数 sum 求和 avg 求平均值 max 最大值 min 最小值 【小结】 3. group by 子句 分组 where 条件 having 条件 4. 联合查询&#xff08;多表查询&#xff09; 内连接…...

简化K8S部署流程:通过Apisix实现蓝绿发布策略详解(上)

本次主题主要目的是为大家讲解蓝绿发布&#xff0c;但是发现文档和内容太长了&#xff0c;对此将文档拆分成了两部分&#xff0c;视频拆分成了好几部分&#xff0c;这样大家刷起来没疲劳感。 第一部分《apisix argorollout 实现蓝绿发布I-使用apisix发布应用》&#xff0c;主要…...

FLV 与 MP4 格式深度剖析:结构、原理

1 FLV格式分析 1.1 定义 FLV(Flash Video)是Adobe公司推出的⼀种流媒体格式&#xff0c;由于其封装后的⾳视频⽂件体积⼩、封装简单等特点&#xff0c;⾮常适合于互联⽹上使⽤。⽬前主流的视频⽹站基本都⽀持FLV。采⽤FLV格式封装的⽂件后缀为.flv FLV封装格式是由⼀个**⽂件…...

k8s的yaml文件里的volume跟volumeMount的区别

volume 是 Pod 级别的资源&#xff0c;用于定义存储卷。它是一个独立于容器的存储资源&#xff0c;可以被一个或多个容器共享使用。volume 的定义位于 Pod 的 spec.volumes 部分。 特点 独立性&#xff1a;volume 是 Pod 的一部分&#xff0c;而不是容器的一部分。它独立于容…...

Git常用操作命令

配置 Git git config --global user.name "Your Name": 设置用户名。git config --global user.email "your_emailexample.com": 设置用户邮箱。 初始化和克隆仓库 git init: 初始化一个新的 Git 仓库。git clone [URL]: 克隆一个远程仓库到本地。 git cl…...

09.传输层协议 ——— TCP协议

文章目录 TCP协议 谈谈可靠性TCP协议格式 序号与确认序号窗口大小六个标志位 确认应答机制&#xff08;ACK&#xff09;超时重传机制连接管理机制 三次握手四次挥手 流量控制滑动窗口拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况TCP小结基于TCP的应用层协议 TCP协…...

NineData 与飞书深度集成,企业级数据管理审批流程全面自动化

NineData 正式推出与飞书审批系统的深度集成功能&#xff0c;企业用户在 NineData 平台发起的审批工单&#xff0c;将自动推送至审批人的飞书中&#xff0c;审批人可以直接在飞书进行审批并通过/拒绝。该功能实现跨系统协作&#xff0c;带来巨大的审批效率提升&#xff0c;为各…...

WebRTC服务器Coturn服务器中的通信协议

1、概述 作为WebRTC服务器&#xff0c;coturn通信协议主要是STUN和TURN协议 STUN&TURN协议头部都是20个字节,用 Message Type来区分不同的协议 |------2------|------2------|------------4------------|------------------------12-------------------------|-----------…...

4.19除自身以外数组的乘积

我自己的思路&#xff0c;想用双指针&#xff0c; 一个从左边left开始乘&#xff0c;一个从右边right开始乘&#xff0c;如果left,或者right遇到了目标索引i(也就是我们要跨过去的当前元素)&#xff0c;那么直接让对应的指针加一&#xff0c;当前元素不参与累积的计算&#xff…...

Anaconda3使用conda进行包管理

一、基础包管理操作 ‌安装包‌ 使用 conda install <包名> 安装指定包&#xff0c;支持多包批量安装和版本指定&#xff1a; conda install numpy # 安装单个包 conda install numpy scipy pandas # 批量安装多个包 conda install numpy1.21 # 指定版本 conda instal…...

媒体关注:联易融聚焦AI+业务,重塑供应链金融生态

近日&#xff0c;供应链金融科技龙头企业联易融科技集团&#xff08;以下简称“联易融”&#xff09;发布的公告显示&#xff0c;截至2024年末&#xff0c;公司现金储备达51亿元&#xff0c;同比上一年增加2亿元。公司称&#xff0c;公司经营性现金流保持健康&#xff0c;现金储…...

安装 Conda 环境

安装 Conda 环境&#xff1a;快速指南 什么是 Conda&#xff1f; Conda 是一个开源的跨平台包管理器和环境管理系统&#xff0c;支持 Python、R、Julia 等语言。它广泛用于数据科学和机器学习领域&#xff0c;能够轻松创建、管理和切换开发环境。 安装步骤 1. 安装 Anaconda…...

Qt Creator 创建 Qt Quick Application一些问题

一、Qt Creator 创建 Qt Quick Application 时无法选择 MSVC 编译器(即使已安装 Qt 5.15.2 和 MSVC2019) 1、打开 Qt Creator 的编译器设置 工具 (Tools) → 选项 (Options) → Kits → 编译器 (Compilers) 检查是否存在 Microsoft Visual C++ Compiler (x86_amd64) 或类似条…...

Spark-Streaming核心编程

以下是今天所学的知识点与代码测试&#xff1a; Spark-Streaming DStream实操 案例一&#xff1a;WordCount案例 需求&#xff1a;使用 netcat 工具向 9999 端口不断的发送数据&#xff0c;通过 SparkStreaming 读取端口数据并统计不同单词出现的次数 实验步骤&#xff1a;…...

深度剖析神经网络:从基础原理到面试要点(二)

引言 在人工智能蓬勃发展的今天&#xff0c;神经网络作为其核心技术之一&#xff0c;广泛应用于图像识别、自然语言处理、语音识别等众多领域。深入理解神经网络的数学模型和结构&#xff0c;对于掌握人工智能技术至关重要。本文将对神经网络的关键知识点进行详细解析&#xf…...

c#操作excel

说明 vs2022开发&#xff0c;调用excel 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using Sy…...

MQTTX + MCP:MQTT 客户端秒变物联网 Agent

引言&#xff1a;MQTTX 与 MCP 的融合 作为最受欢迎的 MQTT 客户端工具&#xff0c;MQTTX 在 1.12.0 beta 版本中集成了模型上下文协议&#xff08;MCP&#xff09;到 Copilot AI 功能中&#xff0c;显著提升了服务能力。这一融合让 MQTTX 转变为 MCP Host&#xff08;也就是发…...

GSAP 动画引擎实战:打造丝滑动效交互组件库

目录 一、前言二、项目初始化三、核心动效组件实战1. 元素淡入组件&#xff1a;FadeIn.vue2. 列表级联动画&#xff1a;SlideList.vue3. 滚动触发 Reveal 动画&#xff1a;ScrollReveal.vue4. 拖拽盒子组件&#xff1a;DraggableBox.vue5. 打字机效果组件&#xff1a;Typewrite…...

[OpenGL] Lambertian材质漫反射BRDF方程的解释与推导

一、简介 本文简单的介绍了 Physical Based Rendering, PBR 中的 Lambertian 材质漫反射BRDF公式 f r l a m b e r t i a n c d i f f π fr_{lambertian}\frac{c_{diff}}{\pi} frlambertian​πcdiff​​的推导。 二、漫反射项 根据 渲染方程&#xff1a; L o ( v ) ∫ …...

网易云音乐如何修改缓存地址到D盘

你可以通过创建 符号链接&#xff08;Symbolic Link&#xff09; 将网易云音乐的缓存目录转移到D盘&#xff0c;无需修改软件设置。以下是具体步骤&#xff1a; 操作步骤 关闭网易云音乐 确保程序完全退出&#xff08;任务栏右下角无残留进程&#xff09;。 备份并移动原缓存文…...

react使用01

React.cloneElement(element,props,…children) 这个是React的官方API&#xff0c;&#xff0c;主要用于克隆并修改React元素&#xff0c;&#xff0c; 本质&#xff1a; 复制一个已有的React元素&#xff0c;并允许你修改他的props element : 必须是一个有效的element元素p…...

yooAsset打包后材质丢失

以安卓为目标平台打出的AssetBundle包&#xff08;尤其是YooAsset打出的&#xff09;&#xff0c;在Window下Unity编辑器以HostPlayMode运行&#xff0c;有时显示会丢失部分材质。 这是因为安卓目标的AssetBundle包适合OpenglES&#xff0c;而window下Unity编辑器模式是Dx11&a…...

Codeforces Round 1019 (Div. 2)

A. Common Multiple 找不同的数字 #include<iostream> #include<vector> #include<algorithm> using namespace std; int main() {int t; cin >> t;while (t--) {int n;cin >> n;vector<int> a(n);for (int i 0; i < n; i)cin >&…...

【Spring Boot】MyBatis多表查询的操作:注解和XML实现SQL语句

1.准备工作 1.1创建数据库 &#xff08;1&#xff09;创建数据库&#xff1a; CREATE DATABASE mybatis_test DEFAULT CHARACTER SET utf8mb4;&#xff08;2&#xff09;使用数据库 -- 使⽤数据数据 USE mybatis_test;1.2 创建用户表和实体类 创建用户表 -- 创建表[⽤⼾表…...

Docker离线安装与配置指南

Docker离线安装与配置指南 离线安装步骤 1. 下载离线安装包 官方下载地址&#xff1a; https://download.docker.com/linux/static/stable/x86_64/注意&#xff1a;国内用户若无法访问&#xff0c;可能需要使用科学上网工具。本文档以Docker 20.10.23版本为例。 2. 安装与部…...

N8N 官方 MCP 节点实战指南:AI 驱动下的多工具协同应用场景全解析

在低代码自动化领域&#xff0c;N8N 凭借其强大的节点扩展能力和灵活的工作流编排&#xff0c;成为企业构建复杂自动化流程的首选工具。随着 AI Agent 技术的兴起&#xff0c;通过 MCP&#xff08;Multi-Tool Coordination Protocol&#xff09;实现 AI 与外部工具的协同调用&a…...

v-html 显示富文本内容

返回数据格式&#xff1a; 只有图片名称 显示不出完整路径 解决方法&#xff1a;在接收数据后手动给img格式的拼接vite.config中的服务器地址 页面&#xff1a; <el-button click"">获取信息<el-button><!-- 弹出层 --> <el-dialog v-model&…...

UWB与GPS技术融合的室内外无缝定位方案

‌ 一、技术原理与互补性‌ ‌双模定位机制‌ ‌室外场景‌&#xff1a;GPS/北斗提供‌10-30厘米级定位精度‌&#xff08;RTK技术辅助&#xff09;&#xff0c;覆盖露天区域。‌室内场景‌&#xff1a;UWB通过‌TOF/TDOA算法‌实现‌10-50厘米级定位精度‌&#xff0c;穿透金…...

AiEditor v1.3.8 发布

2025 年 4 月 22 日&#xff0c;AI 富文本编辑器 AiEditor 发布了 v1.3.8 版本。 AiEditor 是一个面向 AI 的下一代富文本编辑器&#xff0c;基于 Web Component 开发&#xff0c;支持 Layui、Vue、React、Angular 等几乎任何前端框架&#xff0c;适配 PC Web 端和手机端&#…...

从零学会epoll的使用和原理

从零学会epoll的使用和原理 第一步&#xff1a;理解 select / poll 的缺陷 一、select 和 poll 是什么&#xff1f; 它们是 Linux 提供的 I/O 多路复用机制&#xff0c;可以让我们同时监听多个文件描述符&#xff08;fd&#xff09;&#xff0c;比如 socket&#xff0c;来等…...

XHTMLConverter把docx转换html报java.lang.NullPointerException异常

一.报错 1.报错信息 org.apache.poi.xwpf.converter.core.XWPFConverterException: java.lang.NullPointerExceptionat org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.convert(XHTMLConverter.java:77)at org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.doConve…...

教育科技质检的三重挑战 质检LIMS系统在教育技术研发的应用

在教育技术研发领域&#xff0c;实验室作为产品验证的核心环节&#xff0c;其质检效率与数据安全性直接关乎企业的创新竞争力。LIMS&#xff08;实验室信息管理系统&#xff09;作为贯穿检测全流程的数字化中枢&#xff0c;正在成为教育科技企业的"质量守护者"。本文…...

MySQL最左前缀原则深度解析:优化索引设计的核心法则

一、什么是最左前缀原则&#xff1f; 最左前缀原则&#xff08;Leftmost Prefix Principle&#xff09; 指在使用复合索引&#xff08;Composite Index&#xff09;时&#xff0c;MySQL会按照索引定义的列顺序&#xff0c;从左到右匹配查询条件。只有连续且从最左侧开始的列组…...

多模态大语言模型arxiv论文略读(三十五)

On the Out-Of-Distribution Generalization of Multimodal Large Language Models ➡️ 论文标题&#xff1a;On the Out-Of-Distribution Generalization of Multimodal Large Language Models ➡️ 论文作者&#xff1a;Xingxuan Zhang, Jiansheng Li, Wenjing Chu, Junjia…...

Linux 安装pm2并全局可用

前言 本文基于&#xff1a;操作系统 CentOS Stream 8 使用工具&#xff1a;Xshell8、Xftp8 服务器基础环境&#xff1a; node - 请查看 Linux安装node并全局可用 所需服务器基础环境&#xff0c;请根据提示进行下载、安装。 1.安装依赖 npm install pm2 -g2.配置全局软链…...

39.剖析无处不在的数据结构

数据结构是计算机中组织和存储数据的特定方式&#xff0c;它的目的是方便且高效地对数据进行访问和修改。数据结构表述了数据之间的关系&#xff0c;以及操作数据的一系列方法。数据又是程序的基本单元&#xff0c;因此无论是哪种语言、哪种领域&#xff0c;都离不开数据结构&a…...

基于 Vue 的Tiptap 富文本编辑器使用指南

目录 &#x1f9f0; 技术栈 &#x1f4e6; 所需依赖 &#x1f4c1; 文件结构 &#x1f9f1; 编辑器组件实现&#xff08;components/Editor.vue&#xff09; ✨ 常用操作指令 &#x1f9e0; 小贴士 &#x1f9e9; Tiptap 扩展功能使用说明&#xff08;含快捷键与命令&am…...

【音视频】AAC-ADTS分析

AAC-ADTS 格式分析 AAC⾳频格式&#xff1a;Advanced Audio Coding(⾼级⾳频解码)&#xff0c;是⼀种由MPEG-4标准定义的有损⾳频压缩格式&#xff0c;由Fraunhofer发展&#xff0c;Dolby, Sony和AT&T是主 要的贡献者。 ADIF&#xff1a;Audio Data Interchange Format ⾳…...

vue中将elementUI和echarts转成pdf文件

若要将包含 ElementUI 组件数据和多个 ECharts 图表的数据转换为 PDF 文档&#xff0c;可结合 html2canvas、jspdf 以及 dom-to-image 来实现。其中&#xff0c;html2canvas 和 dom-to-image 可将 ECharts 图表转换为图片&#xff0c;jspdf 则用于生成 PDF 文档。对于 ElementU…...

基于 Electron、Vue3 和 TypeScript 的辅助创作工具全链路开发方案:涵盖画布系统到数据持久化的完整实现

基于 Electron、Vue3 和 TypeScript 的辅助创作工具全链路开发方案&#xff1a;涵盖画布系统到数据持久化的完整实现 引言 在数字内容创作领域&#xff0c;高效的辅助工具是连接创意与实现的关键桥梁。创作者需要一款集可视化画布、节点关系管理、数据持久化于一体的专业工具&…...

本地部署DeepSeek-R1模型接入PyCharm

以下是DeepSeek-R1本地部署及接入PyCharm的详细步骤指南,整合了视频内容及官方文档核心要点: 一、本地部署DeepSeek-R1模型 1. 安装Ollama框架 ​下载安装包 访问Ollama官网(https://ollama.com/download)或通过视频提供的百度云盘链接下载对应系统的安装包。Windows用户…...

基于LightGBM-TPE算法对交通事故严重程度的分析与可视化

基于LightGBM-TPE算法对交通事故严重程度的分析与可视化 原文&#xff1a; Analysis and visualization of accidents severity based on LightGBM-TPE 1. 引言部分 文章开篇强调了道路交通事故作为意外死亡的主要原因&#xff0c;引起了多学科领域的关注。分析事故严重性特…...

音视频小白系统入门课-3

本系列笔记为博主学习李超老师课程的课堂笔记&#xff0c;仅供参阅 往期课程笔记传送门&#xff1a; 音视频小白系统入门笔记-0音视频小白系统入门笔记-1音视频小白系统入门笔记-2 视频&#xff1a; 由一组图像组成&#xff1a;像素、分辨率、RGB 8888(24位) 、RGBA(32位)为…...

考研系列-计算机网络-第五章、传输层

一、传输层提供的服务 1.重点知识...

将Ubuntu系统中已有的Python环境迁移到Anaconda的虚拟环境中

需求&#xff1a;关于如何将Ubuntu系统中已有的Python环境迁移到Anaconda的虚拟环境test2里&#xff0c;而且他们提到用requirements.txt 安装一直报错&#xff0c;所以想尝试直接拷贝的方法。 可以尝试通过直接拷贝移植的方式迁移Python环境到Anaconda虚拟环境&#xff0c;但…...

AI 数字短视频数字人源码开发:多维赋能短视频生态革新​

在短视频行业深度发展的进程中&#xff0c;AI 数字短视频数字人源码开发凭借其独特的技术优势&#xff0c;从多个维度为行业生态带来了革命性的变化&#xff0c;重塑短视频创作、传播与应用的格局。 数据驱动&#xff0c;实现内容精准化创作 AI 数字短视频数字人源码开发能够深…...

ffmpeg 硬解码相关知识

一&#xff1a;FFMPEG 支持的硬解方式&#xff1a;如下都是了解知识 DXVA2 - windows DXVA2 硬件加速技术解析‌ ‌一、核心特性与适用场景‌ ‌技术定义‌&#xff1a;DXVA2&#xff08;DirectX Video Acceleration 2&#xff09;是微软推出的基于 DirectX 的硬件加速标准…...

Ubuntu数据连接访问崩溃问题

目录 一、分析问题 1、崩溃问题本地调试gdb调试&#xff1a; 二、解决问题 1. 停止 MySQL 服务 2. 卸载 MySQL 相关包 3. 删除 MySQL 数据目录 4. 清理依赖和缓存 5.重新安装mysql数据库 6.创建程序需要的数据库 三、验证 1、动态库更新了 2、头文件更新了 3、重新…...

边缘计算全透视:架构、应用与未来图景

边缘计算全透视&#xff1a;架构、应用与未来图景 一、产生背景二、本质三、特点&#xff08;一&#xff09;位置靠近数据源&#xff08;二&#xff09;分布式架构&#xff08;三&#xff09;实时性要求高 四、关键技术&#xff08;一&#xff09;硬件技术&#xff08;二&#…...

迅为iTOP-RK3576开发板/核心板6TOPS超强算力NPU适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品

迅为iTOP-3576开发板采用瑞芯微RK3576高性能、低功耗的应用处理芯片&#xff0c;集成了4个Cortex-A72和4个Cortex-A53核心&#xff0c;以及独立的NEON协处理器。它适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品。 支持INT4/INT8/INT16/FP16/BF16/TF32混合运算&a…...