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

2、数据库的基础学习(中):分组查询、连接查询 有小例子

二、分组函数

功能:用作统计使用,又称为聚合函数或者统计函数或组函数

1、分类:

sum 求和、avg 平均值、max最大值、min 最小值、count 计算个数

2、参数支持哪些类型

​ Sum\avg 一般处理数值型数据

​ max、min 可以数值型也可以字符型

​ count 基本上都可以处理

是否忽略 null 值

​ sum 、avg、min、max、count (以上分组函数都忽略 null 值)忽略 null 值

3、可以和DISTINCT 搭配

4、count 函数的详细介绍

​ SELECT count(*) from employees 统计 employees 表里面的行数

​ select count(1) from employees 也是统计 employees 表中的行数

效率:MYISAM存储引擎下,count(*)效率高 INNODB 存储引擎下,两者效率接近

5、和分组函数一同查询的字段有限制

和分组函数一同查询的字段要求是 groups by 后的字段

小例题:

-- 查询员工表中的最大入职时间和最小入职时间的相差天数
select datediff(max(hiredate),min(hiredate)) as DIFFERENCE 
from employees;-- 查询部门编号为 90 的员工个数
select count(*)
from employees
where department_id=90;

其中 datediff()为求两日期间的差值的函数


三、分组查询

引入:查询每个部门的平均工资

语法:

​ SELECT 分组函数,列(要求出现在 group by 的后面)

​ from 表

​ 【where 筛选条件】

​ group by 分组的列表

​ 【order by 字句】

注意:查询列表必须特殊,要求是分组函数和 group by 后出现的字段

-- 查询邮箱中包含字符 a 的,每个部门的平均工资
select avg(salary),department_id
from employees
where email like '%a%'
group by department_id;-- 查询有奖金的每个领导手下员工的最高工资
select max(salary),manager_id
from employees
where commission_pct is not NULL
GROUP BY manager_id;-- 添加复杂的筛选条件-- 案例一 查询哪个部门的员工个数>2
-- 1️⃣查询每个部门的员工个数
SELECT count(*),department_id
from employees
GROUP BY department_id;-- 2️⃣根据1️⃣的结果进行筛选,查询哪个部门的员工个数大于 2  使用 having 进行连接
SELECT count(*),department_id
from employees
GROUP BY department_id
having count(*)>2;-- 案例二:查询每个工种有奖金的员工的最高工资大于 12000 的工种编号和最高工资
select job_id,max(salary)
from employees
where commission_pct is not null
GROUP BY job_id
having max(salary)>12000 ;-- 案例三:查询领导编号>102 的每个领导手下的最低工资>5000 的领导编号,以及其最低工资
SELECT min(salary),manager_id
from employees
where manager_id>102
group by manager_id
having min(salary)>5000;
-- 注意这个 group by 别顺手写出 order by了 不然找半天都找不到问题 作者在 navicat 一阵快捷键 弄错了没发现 找半天才找到问题-- 按多个字段分组查询
-- 案例:查询每个部门每个工种的员工的平均工资
select avg(salary),department_id,job_id
from employees
GROUP BY department_id,job_id;

特点

​ 1、分组查询中的筛选条件分为两类

​ 数据源 位置 关键字

​ 分组前筛选 原始表 group by 字句的前面 where

​ 分组后筛选 分组后的结果表 group by 字句的后面 having

分组函数做条件 肯定是放在 having 字句中

能用分组前筛选的,优先考虑使用分组查询筛选

​ 2、group by 子句支持单个字段分组,多个字段分组(多个字段之间用逗号隔开没有顺序要求),表达式或函数(用的较少)

​ 3、也可以添加排序 排序是放在整个分组查询的最后


四、连接查询


又称:多表查询,当查询到的字段来自多个表时,需要用到连接查询

笛卡尔乘积现象:表 1 有 m行,表 2 有 n 行,结果有 m*n 行

​ 发生原因:没有有效的连接条件

​ 如何 避免:添加有效的连接条件

分类

​ 按年代分: sql 92 标准:仅支持内连接 ;; sql 99 标准(推荐):内连接+外连接(左外和右外)+交叉连接

​ 按功能分类:

​ 内连接: 等值连接

​ 非等值连接

​ 自连接

​ 外连接:左外连接

​ 右外连接

​ 全外连接

​ 交叉连接

为表起别名:提高语句的简洁度; 区分多个重名的字段

注意:如果为表起了别名,则查询的字段就不能使用原来的表名去限定


A、Sql92 内连接

#一、sql192 标准
#1、等值连接
-- 案例一、查询女神名和对应的男神名
use girls;
select name,boyName
from beauty,boys
where beauty.boyfriend_id=boys.id;-- 案例二、查询员工名和对应的部门名
use myemployees;
select last_name,department_name
from employees,departments
where employees.department_id=departments.department_id;-- 查询城市名中第二个字符为 o 的部门名和城市名
select department_name,city
from departments d,locations l
where d.location_id=l.location_id
and l.city like '_o%';-- 可以加分组不???
-- 案例: 查询每个城市的部门个数
SELECT count(*) 个数,city 
from departments d,locations l
where d.location_id=l.location_id
group by city;-- 案例二:查询有奖金的每个部门的部门名和部门的领导编号以及该部门的最低工资
select department_name,e.manager_id,min(salary)
from departments d,employees e
where d.department_id=e.department_id
and e.commission_pct is not null
group by d.department_name,e.manager_id;#2、非等值连接
-- 案例:查询员工的
SELECT salary,grade_level
from employees e,job_grades j
where  salary between j.lowest_sal and j.highest_sal;#3、自连接
#案例:查询 员工名和上级的名称
select e.employee_id,e.last_name,m.manager_id,m.last_name
from employees e,employees m
where  e.employee_id=m.manager_id;

B、sql99语法

语法:

​ select 查询列表

​ from 表1 别名 【连接类型】

​ join 表2 别名

​ on 连接条件

​ 【where 筛选条件】

​ 【group by 分组】

​ 【having筛选条件】

​ 【order by 排序】

分类

​ 内连接: 连接类型关键字 inner

​ 外连接:左外连接:left 【outer】(outer 可以省略)

​ 右外连接 right 【outer】

​ 全外连接:full 【outer】

​ 交叉连接:cross

sql99 的 内连接

# 二、sql 99 语法
/**/
#1、等值连接
-- 案例一:查询员工名、部门名
SELECT last_name,department_name
from employees e
inner JOIN departments d
on e.department_id=d.department_id;-- 案例二:查询名字中包含 e 的员工名和工种名(添加筛选)
select last_name,job_title
from employees e
inner join jobs j
on j.job_id=e.job_id
where e.last_name like '%e%';-- 案例三:查询部门个数>3 的城市名和部门个数 (添加分组和筛选)
-- 下面这个建议看看 自己做的时候老是有点问题
select city,count(*)
from departments d
INNER JOIN locations l
on l.location_id=d.location_id
GROUP BY city
HAVING count(*)>3;-- 案例四:查询哪个部门的员工个数>3 的部门名和员工个数,并按个数降序(添加排序)
select department_name,count(*) 员工个数
from departments
inner join employees
on departments.department_id=employees.department_id
GROUP BY department_name
having  count(*)>3
order by count(*) desc;-- 案例五:查询员工名、部门名、工种名,并且按照部门名称降序
-- 注意看三表链接的格式
select last_name,department_name,job_title
from employees
inner join departments on employees.department_id=departments.department_id
INNER JOIN jobs on employees.job_id=jobs.job_id
ORDER BY department_name desc;#2、非等值连接
-- 案例一:查询员工的工资级别
SELECT salary,grade_level
from employees e
INNER JOIN job_grades g
on e.salary between g.lowest_sal and g.highest_sal;
-- 案例二:查询每个工资级别的个数>20的个数,并且按工资级别降序
SELECT count(*),grade_level
from employees e
inner join job_grades g
on e.salary between g.lowest_sal and g.highest_sal
GROUP BY grade_level
having count(*)>20
order by count(*) desc;#3、自连接
-- 案例;查询员工的名字、上级的名字
select e.last_name,m.last_name
from employees e
inner join employees m
on e.manager_id=m.employee_id;

特点:1、添加排序、分组、筛选

2、inner可以省略

3、筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读

4、inner join连接与sql92的等值连接效果是一样的

 having一般用于有分组的筛选条件

sql 99 外连接

#二、外连接
-- 应用 场景:查询一个表中有,另一个表中没有的记录
/*特点:
1、外连接的查询结果为主表中的所有记录如果从表中有和它匹配的,则显示匹配的值如果从表中梅雨欧和它匹配的,则显示 null 值外连接查询结果=内连接结果+主表中有而从表中没有的记录
2、左外连接,left join 左边是主表
3、右外连接,right join 右边是主表
4、左外和右外交换两个表顺序,则可以实现同样的效果5、外连接:=内连接的结果+表 1 中有但表 2 没有的+表 2 中有但表 1 没有的
*/
-- 案例一: 查询男朋友不在男神表的女神名  (左外连接)
use girls;
select b.name
from beauty b
left outer join boys bo
on b.boyfriend_id=bo.id
where bo.id is null;-- 案例二:查询哪个部门没有员工
use myemployees;
select d.department_name,e.department_id
from departments d
left outer join employees e
on d.department_id=e.department_id
where e.employee_id is null;

sql99 交叉连接

#交叉连接  相当于笛卡尔乘积
SELECT b.*,bo.*
from beauty b
cross join boys bo;

子查询

# 子查询: 出现在其他语句中的select 语句 称为子查询或内查询
/*
分类:按子查询出现的位置:select 后面	: 仅仅支持标量子查询from 后面		:	支持表子查询(**重要的**)where 或 having 后面		:标量子查询、列子查询、行子查询exists 后面		:表 子查询按结果集的行列数不同分:标量子查询(结果集只有一行一列)列子查询(结果集只有一列多行)行子查询(结果集有一行多列)表子查询(一般为多行多列)
*/
#一、where 或 having 后面-- 1、标量子查询(单行子查询)-- 2、列子查询(多行子查询)-- 3、行子查询(多行多列)/*特点:子查询放在小括号内子查询一般放在条件的右侧标量子查询,一般搭配着单行操作符使用>< >= <=  <>列子查询,一般搭配着多行操作符使用: in、any/some、all子查询执行顺序优于主查询*/#1、标量子查询-- 案例一:谁的工资比 Abel 高-- 第一步: 先查询 abel 工资
select salary
from employees
where last_name='Abel';
-- 第二步:查询员工的信息,满足 salary>1 的结果
select *
from employees
where salary>(select salaryfrom employeeswhere last_name='Abel'
);		# 案例二:返回 job_id 与 141 号员工相同,salary 比143号员工多的员工 姓名,job_id 和工资
-- 第一步:查询 141 号员工的 job_id
select job_id 
from employees
where employee_id=141-- 第二步:查询 143 号员工的工资
select salary 
from employees
where employee_id=143-- 第三步 返回 job_id 与 141 号员工相同,salary 比143号员工多的员工 姓名,job_id 和工资
select last_name,job_id,salary
from employees
where job_id=(select job_id from employeeswhere employee_id=141)and salary>(select salary from employeeswhere employee_id=143);# 案例三:查询最低工资大于 50 号部门最低工资的部门 id 和其最低工资
-- 第一步查询 50 号部门的最低工资
select min(salary)
from employees
where department_id=50;
-- 第二步:查询每个部门的最低工资
select min(salary)
from employees
GROUP BY department_id;
-- 第三步:筛选 min(salary)>1
select department_id,min(salary)
from employees
GROUP BY department_id
HAVING min(salary)>(select min(salary)from employeeswhere department_id=50);#列子查询(多行子查询)
/*使用多行比较操作符in/not inany|someall
*/
--  案例一:返回 location_id 是 1400 或 1700 的部门中的所有员工姓名
-- 第一步:查询 location_id 是 1400 或 1700de 部门编号
select distinct department_id
from departments
where location_id in(1400,1700)-- 第二步 查询员工姓名,要求部门编号是 1 列表中的某一个
select last_name
from employees
where department_id in(select distinct department_idfrom departmentswhere location_id in(1400,1700)
);#3、行 子查询(使用比较少 了解)
-- 案例:查询员工编号最小并且工资最高的员工信息
-- 第一步:查询最小的员工编号
select min(employee_id)
from employees;
-- 第二步:查询最高工资SELECT max(salary)from 	employees-- 第三步:查询员工信息
select *
from employees
where employee_id=(select min(employee_id)from employees
) and salary=(SELECT max(salary)from 	employees
);
-- 行子查询的格式
select *
from employees
where (employee_id,salary)=(select min(employee_id),max(salary)from employees);

分页查询

#分页查询
/*
应用场景:当我们要显示的数据一页显示不全的时候,需要分页提交 sql 请求语法:select 查询列表from 表[join type】 join 表二on 连接条件where 筛选条件group by 分组字段having 分组后的筛选order by 排序的字段limit offset,size注解:offset:是要显示条目的起始索引(起始索引从 0 开始 如果从 0 开始 这个可以省略) ; size  要显示的条目个数*/-- 案例一:查询前五条 员工信息SELECT * from employees LIMIT 0,5;	
/*
特点:limit 语句放在查询语句的最后公式: 要显示的页数 page,每页的条目是:sizeselect 查询列表from 表limit  (page-1)*size,size;*/

联合查询

#联合查询
/*
union 联合 合并:将多条查询语句的结果合并成一个结果语法:查询语句 1union查询语句 2union...特点(注意事项): 要求多条查询语句的查询列数 是一致的要求多条查询语句的查询的每一列的类型和顺序最好一致union 关键字默认去重 如果使用 union all 可以包含重复项*/#引入的案例:查询部门编号>90 或 邮箱包含 a 的员工信息
SELECT * from employees where email like '%a%' or department_id>90;select * from employees where email like '%a%'
UNION
SELECT * from employees where department_id>90;


相关文章:

2、数据库的基础学习(中):分组查询、连接查询 有小例子

二、分组函数 功能&#xff1a;用作统计使用&#xff0c;又称为聚合函数或者统计函数或组函数 1、分类&#xff1a; sum 求和、avg 平均值、max最大值、min 最小值、count 计算个数 2、参数支持哪些类型 ​ Sum\avg 一般处理数值型数据 ​ max、min 可以数值型也可以字符型…...

Ubuntu搭建最简单WEB服务器

安装apache2 sudo apt install apache2 检查状态 $ sudo systemctl status apache2 ● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor prese>Active: active (running) since Thu 2025-03-06 09:51:10…...

如何学习编程?

如何学习编程&#xff1f; 笔记来源&#xff1a;How To Study Programming The Lazy Way 声明&#xff1a;该博客内容来自链接&#xff0c;仅作为学习参考 写在前面的话&#xff1a; 大多数人关注的是编程语言本身&#xff0c;而不是解决问题和逻辑思维。不要试图记住语言本身…...

OpenCV计算摄影学(14)实现对比度保留去色(Contrast Preserving Decolorization)的函数decolor()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将彩色图像转换为灰度图像。它是数字印刷、风格化的黑白照片渲染&#xff0c;以及许多单通道图像处理应用中的基本工具。 cv::decolor 是 OpenCV…...

K8s 1.27.1 实战系列(七)Deployment

一、Deployment介绍 Deployment负责创建和更新应用程序的实例,使Pod拥有多副本,自愈,扩缩容等能力。创建Deployment后,Kubernetes Master 将应用程序实例调度到集群中的各个节点上。如果托管实例的节点关闭或被删除,Deployment控制器会将该实例替换为群集中另一个节点上的…...

Python第十五课:机器学习入门 | 从猜想到预测

&#x1f3af; 本节目标 理解机器学习两大核心范式&#xff08;监督/无监督学习&#xff09;掌握特征工程的核心方法论实现经典算法&#xff1a;线性回归与K-Means聚类开发实战项目&#xff1a;房价预测模型理解模型评估与调优基础 一、机器学习核心概念&#xff08;学生与老师…...

python 程序一次启动有两个进程的问题(flask)

0. 背景 写了一个使用 flask 作为服务框架的程序&#xff0c;发现每次启动程序的时候&#xff0c;使用 ps 都能观察到两个 python 进程。 此外&#xff0c;这个程序占用了 GPU 资源&#xff0c;我发现有两个 python 进程&#xff0c;分别占用了完全相同的 GPU 显存 1. 原因 …...

使用jcodec库,访问网络视频提取封面图片上传至oss

注释部分为FFmpeg&#xff08;确实方便但依赖太大&#xff0c;不想用&#xff09; package com.zuodou.upload;import com.aliyun.oss.OSS; import com.aliyun.oss.model.ObjectMetadata; import com.aliyun.oss.model.PutObjectRequest; import com.zuodou.oss.OssProperties;…...

MyBatis-Plus 与 Spring Boot 的最佳实践

在现代 Java 开发中,MyBatis-Plus 和 Spring Boot 的结合已经成为了一种非常流行的技术栈。MyBatis-Plus 是 MyBatis 的增强工具,提供了许多便捷的功能,而 Spring Boot 则简化了 Spring 应用的开发流程。本文将探讨如何将 MyBatis-Plus 与 Spring Boot 进行整合,并分享一些…...

python-51-使用最广泛的数据验证库Pydantic

文章目录 1 Pydantic2 models2.1 基本模型应用2.1.1 实例化2.1.2 访问属性2.1.3 修改属性2.2 嵌套模型【Optional】3 Fields3.1 Field()函数3.2 带注释的模式Annotated3.3 默认值3.3.1 default参数3.3.2 default_factory3.4 字段别名3.5 数字约束3.6 字符串约束3.7 严格模式4 A…...

Linux - 网络基础(应用层,传输层)

一、应用层 1&#xff09;发送接收流程 1. 发送文件 write 函数发送数据到 TCP 套接字时&#xff0c;内容不一定会立即通过网络发送出去。这是因为网络通信涉及多个层次的缓冲和处理&#xff0c;TCP 是一个面向连接的协议&#xff0c;它需要进行一定的排队、确认和重传等处理…...

ADB、Appium 和 大模型融合开展移动端自动化测试

将 ADB、Appium 和 大模型(如 GPT、LLM) 结合,可以显著提升移动端自动化测试的智能化水平和效率。以下是具体的实现思路和应用场景: 1. 核心组件的作用 ADB(Android Debug Bridge): 用于与 Android 设备通信,执行设备操作(如安装应用、获取日志、截图等)。Appium: 用…...

【Pandas】pandas Series unstack

Pandas2.2 Series Computations descriptive stats 方法描述Series.argsort([axis, kind, order, stable])用于返回 Series 中元素排序后的索引位置的方法Series.argmin([axis, skipna])用于返回 Series 中最小值索引位置的方法Series.argmax([axis, skipna])用于返回 Series…...

rv1126交叉编译opencv+ffmpeg+x264

文章目录 &#x1f315;交叉编译x264&#x1f319;创建build_x264.sh(放在下载的x264目录下)&#x1f319;编译过程&#x1f319;查看编译后的so文件是否是arm版的 &#x1f315;下载编译ffmpeg&#x1f319;下载ffmpeg&#x1f319;创建编译脚本&#x1f319;创建ffmpeg编译路…...

【C++】ImGui:VSCode下的无依赖轻量GUI开发

本教程将手把手带您用纯原生方式构建ImGui应用&#xff0c;无需CMake/第三方库。您将全程明了自己每个操作的意义&#xff0c;特别适合首次接触GUI开发的新手。 环境配置 安装VSCode 作用&#xff1a;轻量级代码编辑器&#xff0c;提供智能提示操作&#xff1a; 官网下载安装…...

BUU44 [BJDCTF2020]ZJCTF,不过如此1 [php://filter][正则表达式get输入数据][捕获组反向引用][php中单双引号]

题目&#xff1a; 我仿佛见到了一位故人。。。也难怪&#xff0c;题目就是ZJCTF 按要求提交/?textdata://,I have a dream&filenext.php后&#xff1a; ......不太行&#xff0c;好像得用filephp://filter/convert.base64-encode/resourcenext.php 耶&#xff1f;那 f…...

Jetpack Compose — 入门实践

一、项目中使用 Jetpack Compose 从此节开始,为方便起见,如无特殊说明,Compose 均指代 Jetpack Compose。 开发工具: Android Studio 1.1 创建支持 Compose 新应用 新版 Android Studio 默认创建新项目即为 Compose 项目。 注意:在 Language 下拉菜单中,Kotlin 是唯一可…...

通过着装人体剪影预测关键点,以获取人体的二维尺寸数据。复现过程包括获取或生成3D人体数据集、生成轮廓图像、训练模型等步骤

根据文献《1_Clothes Size Prediction from Dressed-Human Silhouettes》复现方法&#xff0c;主要通过着装人体剪影预测关键点&#xff0c;以获取人体的二维尺寸数据。复现过程包括获取或生成3D人体数据集、生成轮廓图像、训练模型等步骤。 以下是进行复现的大致步骤&#xf…...

力扣HOT100之哈希:49. 字母异位词分组

这道题自己先想了一遍&#xff0c;定义了一个比较字符串的函数&#xff0c;用二重循环和一个数组来实现字符串的比较&#xff0c;若两个字符串是异位词&#xff0c;那么就返回true&#xff0c;否则返回false&#xff0c;在主函数中&#xff0c;同样用一个二重循环来遍历向量中的…...

基于单片机的智慧音乐播放系统研究

标题:基于单片机的智慧音乐播放系统研究 内容:1.摘要 随着科技的飞速发展&#xff0c;人们对音乐播放系统的智能化和个性化需求日益增长。本研究的目的是设计并实现一个基于单片机的智慧音乐播放系统。采用单片机作为核心控制单元&#xff0c;结合音频解码模块、存储模块和人机…...

pytest框架 核心知识的系统复习

1. pytest 介绍 是什么&#xff1a;Python 最流行的单元测试框架之一&#xff0c;支持复杂的功能测试和插件扩展。 优点&#xff1a; 语法简洁&#xff08;用 assert 替代 self.assertEqual&#xff09;。 自动发现测试用例。 丰富的插件生态&#xff08;如失败重试、并发执…...

nginx 代理 redis

kubernetes 发布的redis服务端口为 31250 通过命令查询 [miniecs-88500735 /]$ minikube service redis --url http://192.168.49.2:31250[rootecs-88500735 /]# vi /etc/nginx/nginx.conf配置nginx.conf stream {upstream redis {server 192.168.49.2:31250;}server {liste…...

什么是:分布式贝叶斯推断

什么是:分布式贝叶斯推断 分布式贝叶斯推断(Distributed Bayesian Inference)是一种在分布式计算环境下进行贝叶斯统计推断的方法,旨在利用多节点或多设备的并行计算能力,高效处理大规模数据或复杂模型。其核心思想是将数据、模型或计算过程分解到多个节点上,通过协作完…...

C# 命名空间(Namespace)详解

在C#中&#xff0c;命名空间&#xff08;Namespace&#xff09;是一种封装和组织代码的方式&#xff0c;它允许将相关的类、接口、结构体和枚举等类型组织在一起&#xff0c;以避免命名冲突&#xff0c;并提供了一种逻辑上的分组方式。命名空间的使用有助于提高代码的可读性、可…...

ASP.NET Core JWT认证与授权

1.JWT结构 JSON Web Token&#xff08;JWT&#xff09;是一种用于在网络应用之间安全传输声明的开放标准&#xff08;RFC 7519&#xff09;。它通常由三部分组成&#xff0c;以紧凑的字符串形式表示&#xff0c;在身份验证、信息交换等场景中广泛应用。 2.JWT权限认证 2.1添…...

Docker参数,以及仓库搭建

一。Docker的构建参数 注释&#xff1a; 1.对于CMD&#xff0c;如果不想显示&#xff0c;而是使用交互界面&#xff1a;docker run -ti --rm --name test2 busybox:v5 sh 2.对于CMD&#xff0c;一个交互界面只可以使用一个&#xff0c;如果想多次使用CMD&#xff0c;则用ENTR…...

hooks useModule自定义hooks (二次封装AgGridReact ag-table)自定义表头,自定义表头搜索

场景业务&#xff1a; 多次运用AgGridReact的table 列表 思路&#xff1a; 运用自定义hooks进行二次封装&#xff1a; 通用配置例如&#xff1a;传参的参数&#xff0c;传参的url&#xff0c;需要缓存的key这些键值类 定制化配置例如&#xff1a;需要对table 的一些定制化传…...

机试准备第11天

第一题是浮点数加法&#xff0c;目前写过最长的代码。 #include <stdio.h> #include <string> #include <iostream> #include <vector> using namespace std; int main() {string str1;string str2;while (getline(cin, str1) && getline(cin…...

正则表达式详解

这里写目录标题 一、基本概念1.基本语法2.修饰符3.方括号4.元字符5.量词 二、结构1.匹配模式2.字符组3.量词4.贪婪匹配和惰性匹配5.多选分支6.匹配模式关键词 三、位置1.位置锚点2.分组与引用1.分组与编号2.不保存子组3.括号嵌套4.命名捕获组5.引用捕获组 3.回溯匹配 四、对象方…...

动态扩缩容引发的JVM堆内存震荡:从原理到实践的GC调优指南

目录 一、典型案例&#xff1a;系统发布后的GC雪崩事件 &#xff08;一&#xff09;故障现象 1. 刚刚启动时 GC 次数较多 2. 堆内存锯齿状波动 3. GC日志特征&#xff1a;Allocation Failure &#xff08;二&#xff09;问题定位 二、原理深度解析&#xff1a;JVM内存弹…...

本地运行Manus的替代方案:OpenManus的技术解析与实践指南

无需邀请码&#xff0c;三小时构建的开源智能体革命 一、背景&#xff1a;从Manus到OpenManus的技术突围 近期&#xff0c;AI智能体领域因Manus的发布引发热议。这款号称“全球首个通用型AI智能体”的产品&#xff0c;通过整合浏览器操作&#xff08;Browser Use&#xff09;…...

红果短剧安卓+IOS双端源码,专业短剧开发公司

给大家拆解一下红果短剧/河马短剧&#xff0c;这种看光解锁视频&#xff0c;可以挣金币的短剧APP。给大家分享一个相似的短剧APP源码&#xff0c;这个系统已接入穿山甲广告、百度广告、快手广告、腾讯广告等&#xff0c;类似红果短剧的玩法&#xff0c;可以看剧赚钱&#xff0c…...

ubuntu22.04本地部署OpenWebUI

一、简介 Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台&#xff0c;旨在完全离线运行。它支持各种 LLM 运行器&#xff0c;如 Ollama 和 OpenAI 兼容的 API&#xff0c;并内置了 RAG 推理引擎&#xff0c;使其成为强大的 AI 部署解决方案。 二、安装 方法 …...

不同开发语言之for循环的用法、区别总结

一、Objective-C &#xff08;1&#xff09;标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …...

国产编辑器EverEdit - 宏功能介绍

1 宏 1.1 应用场景 宏是一种重复执行简单工作的利器&#xff0c;可以让用户愉快的从繁琐的工作中解放出来&#xff0c;其本质是对键盘和菜单的操作序列的录制&#xff0c;并不会识别文件的内容&#xff0c;属于无差别无脑执行。 特别是对一些有规律的重复按键动作&#xff0c;…...

【Linux跬步积累】—— 网络基础

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;Linux跬步积累 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日一题 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0…...

【银河麒麟高级服务器操作系统实例】虚拟机桥接网络问题分析及处理

更多银河麒麟操作系统产品及技术讨论&#xff0c;欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer…...

深入剖析Android Service:原理、生命周期与实战应用

一、引言&#xff1a;开启 Service 探索之旅 在 Android 开发的广袤天地中&#xff0c;Service 堪称一颗璀璨的明星&#xff0c;占据着举足轻重的地位。它宛如一位幕后英雄&#xff0c;默默地在后台辛勤劳作&#xff0c;执行着各种至关重要的任务&#xff0c;却无需与用户进行…...

MLT媒体程序框架03:滤镜——loudness

EBU R.128协议 引用链接 EBU的全称为European Broadcasting Union &#xff0c;既欧洲广播联盟&#xff0c;为欧洲与北非各广播业者&#xff08;包含广播电台与电视台&#xff09;的合作组织&#xff0c;成立于1950年2月12日,有五十多个正式加盟国,总部位于瑞士日内瓦,目前中国…...

FreeRTOS第15篇:FreeRTOS链表实现细节03_List_t与ListItem_t的奥秘

文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 1 FreeRTOS列表的核心数据结构 FreeRTOS的列表实现由两个关键结构体组成:List_t(列表)和ListItem_t(列表项)。它们共同…...

Spring Boot静态资源访问顺序

在 Spring Boot 中&#xff0c;static 和 public 目录都用于存放静态资源&#xff08;如 HTML、CSS、JavaScript、图片等文件&#xff09;&#xff0c;但它们在使用上有一些细微的区别。以下是它们的详细对比&#xff1a; 1. 默认优先级 Spring Boot 会按照以下优先级加载静态…...

什么是 spring 的循环依赖?

什么是 spring 的循环依赖&#xff1f; 首先&#xff0c;认识一下什么是循环依赖&#xff0c;举个例子&#xff1a;A 对象被 Spring 管理&#xff0c;并且引入的 B 对象&#xff0c;同样的 B 对象也被 Spring 管理&#xff0c;并且也引入的 A 对象。这种相互被引用的情况&#…...

RSA的理解运用与Pycharm组装Cryptodome库

1、RSA的来源 RSA通常指基于RSA算法的密码系统&#xff0c;令我没想到的是&#xff0c;其名字的来源竟然不是某个含有特别意义的单词缩写而成&#xff08;比如PHP&#xff1a;Hypertext Preprocessor(超文本预处理器)&#xff09;&#xff0c;而是由1977年提出该算法的三个歪果…...

AI数据分析:deepseek生成SQL

在当今数据驱动的时代&#xff0c;数据分析已成为企业和个人决策的重要工具。随着人工智能技术的快速发展&#xff0c;AI 驱动的数据分析工具正在改变我们处理和分析数据的方式。本文将着重介绍如何使用 DeepSeek 进行自动补全SQL 查询语句。 我们都知道&#xff0c;SQL 查询语…...

git的坑

不小心把工作区的代码全删掉了 首先是名字出错&#xff0c;不知为何gitee任意把我的名字更改。 导致无法push验证 git push -u origin "master 显示&#xff1a;fatal: Authentication failed for https://gitee.com/zhang-great/stm32-smart-security-system.git/ 我…...

小程序事件系统 —— 32 事件系统 - 事件分类以及阻止事件冒泡

在微信小程序中&#xff0c;事件分为 冒泡事件 和 非冒泡事件 &#xff1a; 冒泡事件&#xff1a;当一个组件的事件被触发后&#xff0c;该事件会向父节点传递&#xff1b;&#xff08;如果父节点中也绑定了一个事件&#xff0c;父节点事件也会被触发&#xff0c;也就是说子组…...

‌PLC数据类型和‌C#数据类型的数据类型映射表

数据类型映射表 ‌PLC数据类型‌C#数据类型读取方式‌补充说明BitboolDBX布尔值BytebyteDBB单字节无符号整数WordushortDBW16位无符号整数DWorduintDBD32位无符号整数Intshort16位有符号整数DIntint32位有符号整数RealfloatDBR单精度浮点数LRealdoubleDBL双精度浮点数Stringstr…...

全球首创!微软发布医疗AI助手,终结手写病历时代

今天凌晨&#xff0c;微软发布了医疗界首个用于临床工作流程的AI助手Microsoft Dragon Copilot。 Dragon Copilot是基于语音文本的混合架构&#xff0c;能够将医生的语音或临床口述内容实时转换为文本。例如&#xff0c;医生可以通过语音输入患者的病历信息、医嘱或诊断结果&a…...

每日一题----------异常处理

总结&#xff1a; NullPointerException&#xff1a;尝试使用一个空引用进行操作时抛出。 ArrayIndexOutOfBoundsException&#xff1a;数组下标越界时抛出。 ClassCastException&#xff1a;类型转换失败时抛出。 ArithmeticException&#xff1a;数学运算错误时抛出&#…...

HTML 属性(详细易懂)

HTML&#xff08;超文本标记语言&#xff09;是用于创建网页和其他可在浏览器中查看的内容的基础标记语言。HTML 属性是 HTML 元素的额外信息&#xff0c;它们提供了元素的更多细节&#xff0c;如元素的标识符、样式、行为等。在本文中&#xff0c;将详细介绍 HTML 属性&#x…...