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

Oracle 数据库基础入门(四):分组与联表查询的深度探索(下)

在 Oracle 数据库的操作中,联合查询与子查询是获取复杂数据的关键手段。当单表数据无法满足业务需求时,联合查询允许我们从多张表中提取关联信息,而子查询则能以嵌套的方式实现更灵活的数据筛选。对于 Java 全栈开发者而言,掌握这些技术不仅能提升数据库操作能力,还能为构建高效的后端应用提供有力支持。

目录

二、联合查询

(一)联合查询的必要性与场景

(二)笛卡尔乘积

(三)三种联合查询方式

(四)练习题巩固

(五)三表联合查询

三、子查询

(一)子查询的概念与本质

(二)子查询的位置与应用

四、企业工作小技巧


二、联合查询

(一)联合查询的必要性与场景

联合查询在实际应用中极为常见,当我们需要整合来自多个表的数据时,它就派上了用场。比如在一个家庭信息管理系统中,若要查询丈夫信息的同时显示其妻子的名称;在学校管理系统中,查询学生时需要展示其所在班级;在教育选课系统中,查询选课时要同时呈现学生名称、课程名称以及课程分数。这些场景都需要联合查询来实现。

(二)笛卡尔乘积

笛卡尔乘积是理解联合查询的重要基础概念,它源自数学领域。假设有两个集合 X 和 Y,笛卡尔乘积就是将 X 集合中的每个元素与 Y 集合中的每个元素进行组合,组合的总数为 X 集合元素个数乘以 Y 集合元素个数。例如,若 X = {1, 2},Y = {a, b},那么它们的笛卡尔乘积为 {(1, a), (1, b), (2, a), (2, b)}。在数据库中,当我们对两张表进行无条件的联合操作时,就会得到笛卡尔乘积结果。但通常笛卡尔乘积的结果集非常庞大,且包含大量无意义的数据,所以需要通过等值判断等方式对其进行筛选,以获取我们真正需要的数据。

(三)三种联合查询方式

  1. 左外连接(left join)
    • 语法与示例:以左表为基准,返回左表中的所有记录以及右表中满足连接条件的记录。若右表中无匹配记录,则对应字段值为 NULL。例如,查询所有学生及其班级信息(适合查看哪些学员分配了班级,哪些学员未分配班级):
selects.id,s.stu_name,c.class_name 
fromstudents sleft join class_info c on s.fk_class_id = c.id;
  • Java 全栈关联:在 Java 全栈开发的学校管理系统中,后端使用 Java 代码连接数据库执行此查询。通过 MyBatis 或 Hibernate 等框架,将查询结果映射为 Java 对象,如StudentWithClass对象,包含学生 ID、姓名和班级名称属性。前端可以通过 RESTful API 获取这些数据,以表格或列表形式展示给用户,方便管理员查看学生的班级分配情况。

  1. 右外连接(right join)
    • 语法与示例:与左外连接相反,以右表为基准,返回右表中的所有记录以及左表中满足连接条件的记录。若左表中无匹配记录,则对应字段值为 NULL。例如,查询所有班级及其包含的学生信息(适合查看哪些班有学员,哪些班没有学员):
selects.id,s.stu_name,c.class_name 
fromstudents sright join class_info c on s.fk_class_id = c.id;

  • Java 全栈关联:在 Java 开发的类似系统中,该查询结果可用于生成班级人员统计报表。后端将结果处理后传递给前端,前端利用图表库(如 Echarts)将数据可视化,以直观展示每个班级的学生分布情况。

  1. 内连接(inner join)
    • 语法与示例:只返回两张表中满足连接条件的记录。有两种常见写法,例如:
-- 内联查(一)
selects.id,s.stu_name,c.class_name 
fromstudents sinner join class_info c on s.fk_class_id = c.id;
-- 内联查(二)
selects.id,s.stu_name,c.class_name 
fromstudents s, class_info c where s.fk_class_id = c.id;

  • Java 全栈关联:在电商系统中,若要查询已下单的用户及其订单信息,可使用内连接。后端通过 Java 代码执行查询,将结果用于订单处理流程,如计算订单总价、更新库存等操作。前端则可展示订单详情页面,让用户确认订单信息。

在企业开发中,左外联合查询和内联合查询应用最为广泛。因为左外连接能保留左表所有数据,适用于需要全面展示某一方数据及其关联信息的场景;内连接则专注于获取有实际关联的数据,常用于查询相互匹配的数据对。

(四)练习题巩固

  1. 部门与职员表操作
    • 建表与插入数据
-- 创建部门表
CREATE TABLE Departments (ID NUMBER PRIMARY KEY,DepartmentName NVARCHAR2(100) NOT NULL
);
-- 创建职员表
CREATE TABLE Employees (ID NUMBER PRIMARY KEY,EmployeeName VARCHAR2(100) NOT NULL,Position VARCHAR2(100),Salary NUMBER,DepartmentID NUMBER,CONSTRAINT fk_department FOREIGN KEY(DepartmentID) REFERENCES Departments(ID)
);
-- 插入部门数据
INSERT INTO Departments (ID,DepartmentName) VALUES (1,'研发部');
INSERT INTO Departments (ID,DepartmentName) VALUES (2,'市场部');
-- 创建职员表的序列
CREATE SEQUENCE seq_employees
START WITH 1
INCREMENT BY 1
NOCACHE
NOCYCLE;
-- 插入员工数据
INSERT INTO Employees (ID, EmployeeName, Position, Salary, DepartmentID) VALUES (seq_employees.NEXTVAL, '张三', '高级工程师', 8000, 1);
INSERT INTO Employees (ID, EmployeeName, Position, Salary, DepartmentID) VALUES (seq_employees.NEXTVAL, '李四', '产品经理', 7500, 1);
INSERT INTO Employees (ID, EmployeeName, Position, Salary, DepartmentID) VALUES (seq_employees.NEXTVAL, '王五', '销售经理', 6000, 2);
INSERT INTO Employees (ID, EmployeeName, Position, Salary, DepartmentID) VALUES (seq_employees.NEXTVAL, '赵六', '市场营销', 5500, 2);
INSERT INTO Employees (ID, EmployeeName, Position, Salary, DepartmentID) VALUES (seq_employees.NEXTVAL, '孙七', '实习生', 3000, 2);

  • 查询需求
    • 查询所有职员信息,并显示其部门名称:
select e.ID, e.EmployeeName, d.DepartmentName
from Employees e
left join Departments d on e.DepartmentID = d.ID;

  • 查询工资高于 6K 以上的职员,显示其部门名称:
select e.ID, e.EmployeeName, d.DepartmentName
from Employees e
left join Departments d on e.DepartmentID = d.ID
where e.Salary > 6000;

  • 查询研发部下,都有哪些职员:
select e.ID, e.EmployeeName
from Employees e
left join Departments d on e.DepartmentID = d.ID
where d.DepartmentName = '研发部';

  • Java 全栈关联:在企业人力资源管理系统中,这些查询结果可用于生成员工报表、薪资统计分析等功能。后端 Java 代码调用数据库执行查询,将结果封装成 Java 对象,如EmployeeWithDepartment对象,传递给前端展示。前端可以提供筛选、排序等交互功能,方便 HR 人员查看和分析数据。

  1. 学生与班级表操作
    • 分组统计不同班级人数
SELECTc.CLASS_NAME,count( * ) 
FROMstudents sLEFT JOIN class_info c ON s.FK_CLASS_ID = c.id 
GROUP BYc.CLASS_NAME;

  • 查询班级人数大于 0 的班级
SELECTc.CLASS_NAME,count( s.id ) total 
FROMstudents sRIGHT JOIN class_info c ON s.FK_CLASS_ID = c.id 
GROUP BYc.CLASS_NAME 
HAVINGcount( s.id ) > 0 
ORDER BYtotal DESC;
  • Java 全栈关联:在学校教务管理系统中,这些统计数据可用于班级规模分析、资源分配等决策。后端将查询结果通过 Java 代码处理后,提供给前端生成柱状图或饼状图,直观展示班级人数分布情况。

  1. 车辆相关表操作
    • 建表与插入数据
CREATE TABLE vehicle_types (id NUMBER PRIMARY KEY,       -- 车辆类型ID,主键type_name VARCHAR2(100) NOT NULL  -- 车辆类型名称,不允许为空
);
CREATE TABLE vehicles (id NUMBER PRIMARY KEY,    -- 车辆ID,主键license_no VARCHAR2(20) NOT NULL, -- 车牌号,不允许为空model VARCHAR2(50) NOT NULL,     -- 车型,不允许为空fk_type_id NUMBER NOT NULL,          -- 车辆类型ID,外键owner_name VARCHAR2(100),         -- 车主姓名CONSTRAINT fk_vehicle_type FOREIGN KEY (fk_type_id) REFERENCES vehicle_types(id) -- 外键约束
);
INSERT INTO vehicle_types (id, type_name)
VALUES (1, '轿车');
INSERT INTO vehicle_types (id, type_name)
VALUES (2, 'SUV');
INSERT INTO vehicle_types (id, type_name)
VALUES (3, '卡车');
-- 插入车辆数据
INSERT INTO vehicles (id, license_no, model, fk_type_id, owner_name)
VALUES (1, '沪A12345', '卡罗拉', 1, '张三');
INSERT INTO vehicles (id, license_no, model, fk_type_id, owner_name)
VALUES (2, '京B67890', 'X5', 2, '李四');
INSERT INTO vehicles (id, license_no, model, fk_type_id, owner_name)
VALUES (3, '粤C24680', 'F-150', 3, '王五');

  • 查询需求
    • 查询所有的车辆,并显示其车辆类型:
select v.id, v.license_no, vt.type_name
from vehicles v
left join vehicle_types vt on v.fk_type_id = vt.id;

  • 查询车辆类型是 “轿车” 的车辆:
select v.id, v.license_no, vt.type_name
from vehicles v
left join vehicle_types vt on v.fk_type_id = vt.id
where vt.type_name = '轿车';

  • 按照车辆类型分组统计下,不同的车辆类型各自有多少辆车:
select vt.type_name, count(*)
from vehicles v
left join vehicle_types vt on v.fk_type_id = vt.id
group by vt.type_name;
  • Java 全栈关联:在汽车租赁管理系统中,这些查询结果可用于车辆库存管理、车型统计分析等功能。后端 Java 代码处理查询结果,前端展示车辆列表、车型占比等信息,方便管理员进行车辆调度和采购决策。

(五)三表联合查询

在企业开发中,一般不建议联合查询超过三张表。因为随着表的增加,笛卡尔乘积会导致数据量呈指数级增长,严重影响查询性能。例如,在一个学校选课系统中,若要查询每个学生的选课情况,涉及学生表、选课关系表和课程表:

create table course_info(id number(11) primary key,course_name nvarchar2(20),score number(1)
);
create table stu_course_info(id number(11) primary key,fk_stu_id number(11),fk_course_id number(11)
);
SELECTs.id,s.STU_NAME,c.course_name,c.score 
FROMstudents sLEFT JOIN stu_course_info sc ON sc.FK_STU_ID = s.idLEFT JOIN course_info c ON sc.fk_course_id = c.id;

若要查询选择 “音乐鉴赏” 的学生:

SELECTs.id,s.STU_NAME,c.course_name,c.score 
FROMstudents sLEFT JOIN stu_course_info sc ON sc.FK_STU_ID = s.idLEFT JOIN course_info c ON sc.fk_course_id = c.id
where c.course_name = '音乐鉴赏';

在 Java 全栈开发中,处理三表联合查询时,后端开发人员需要谨慎优化查询语句,如合理使用索引、避免不必要的字段选择等。同时,前端在展示大量数据时,也需要采用分页、懒加载等技术,以提升用户体验。

三、子查询

(一)子查询的概念与本质

子查询是一种特殊的联合查询方式,其本质是在一个 SQL 查询语句中嵌套另一个 SQL 查询语句,就像俄罗斯套娃一样。例如,查询语文考试成绩比语文平均分还低的学员:

SELECTid,name,score 
FROMstudent_exam_info 
WHEREsubject = '语文' AND score <= ( SELECT avg( score ) FROM student_exam_info WHERE subject = '语文' );

子查询可以放置在select后面、from后面以及where后面,不同位置的子查询具有不同的特点和用途。

(二)子查询的位置与应用

  1. select 后面的子查询
    • 特点与示例:此类子查询返回单行、单列数据。例如,查询学生 id、学生名称以及班级名称(通过子查询替代外键直接关联查询):
SELECTid,stu_name,( SELECT class_name FROM class_info WHERE id = fk_class_id ) class_name 
FROMstudents;

  • Java 全栈关联:在 Java 开发的小型信息管理系统中,当需要展示学生及其班级信息时,后端执行此查询。将查询结果映射为 Java 对象后传递给前端,前端可以在学生信息展示页面中,将班级名称与学生其他信息一同呈现,方便用户查看。
  1. from 后面的子查询
    • 特点与示例:子查询的结果被视为一张表。例如,查询所有男学生及其班级名称:
SELECTs.id,s.stu_name,class_name 
FROM( SELECT * FROM students WHERE gender = '男' ) sLEFT JOIN class_info c ON s.FK_CLASS_ID = c.id;
  • Java 全栈关联:在学校的学生统计模块中,后端利用此查询获取男学生及其班级信息。将结果处理后,前端可以生成男学生班级分布报表,以图表形式展示不同班级男学生的数量。
  1. where 后面的子查询:如前面提到的查询语文成绩低于平均分的学员示例,通过子查询先计算出语文平均分,再在主查询中筛选出符合条件的学员。在 Java 全栈开发的成绩分析系统中,这种查询可用于生成成绩分析报告,帮助教师了解学生成绩分布情况,为教学改进提供依据。

四、企业工作小技巧

  1. 优化联合查询性能
    • 合理使用索引:在联合查询涉及的表中,为连接字段创建索引可以显著提升查询速度。例如,在学生表和班级表通过fk_class_id进行连接时,为fk_class_id字段创建索引,能加快数据匹配速度。但要注意,索引并非越多越好,过多索引会增加数据插入和更新的时间成本。
    • 减少笛卡尔乘积影响:在进行联合查询时,确保连接条件准确且充分,避免产生不必要的笛卡尔乘积。例如,明确指定学生表和班级表之间的连接条件为students.fk_class_id = class_info.id,防止出现大量无意义的组合数据。
  2. 子查询的优化与使用
    • 避免多层嵌套:尽量减少子查询的嵌套层数,因为过多的嵌套会使查询语句复杂难懂,且性能下降。如果可能,将多层子查询转换为联合查询或使用临时表来优化。
    • 利用子查询的原子性:子查询可以将复杂的查询逻辑拆分成多个原子部分,方便理解和维护。例如,在复杂的数据分析查询中,先通过子查询计算出一些中间结果,再在主查询中使用这些结果进行最终筛选。
  3. Java 全栈开发中的数据处理
    • 前后端数据传输优化:在 Java 全栈开发中,联合查询和子查询返回的数据量可能较大。前端在接收数据时,要采用合适的数据传输格式(如 JSON),并进行必要的压缩。后端可以对查询结果进行分页处理,减少一次性传输的数据量,提升系统响应速度。
    • 业务逻辑与查询结合:不要单纯依赖数据库查询来完成所有业务逻辑。在 Java 代码中进行一些数据处理和逻辑判断,例如对查询结果进行二次筛选、计算等操作,这样可以减轻数据库负担,同时增强系统的灵活性和可维护性。

通过深入学习联合查询和子查询,我们在 Oracle 数据库操作能力上又迈出了重要一步。在未来的 Java 全栈开发工作中,灵活运用这些技术将帮助我们高效地处理复杂的数据需求,为企业构建强大的数据驱动应用。

查看分组基础查询&复合分组&having过滤请点击查看剩余部分

               Oracle 数据库基础入门(四):分组与联表查询的深度探索(上)-CSDN博客                

相关文章:

Oracle 数据库基础入门(四):分组与联表查询的深度探索(下)

在 Oracle 数据库的操作中&#xff0c;联合查询与子查询是获取复杂数据的关键手段。当单表数据无法满足业务需求时&#xff0c;联合查询允许我们从多张表中提取关联信息&#xff0c;而子查询则能以嵌套的方式实现更灵活的数据筛选。对于 Java 全栈开发者而言&#xff0c;掌握这…...

【欢迎来到Git世界】Github入门

241227 241227 241227 Hello World 参考&#xff1a;Hello World - GitHub 文档. 1.创建存储库 r e p o s i t o r y repository repository&#xff08;含README.md&#xff09; 仓库名需与用户名一致。 选择公共。 选择使用Readme初始化此仓库。 2.何时用分支&#xf…...

从矩阵乘法探秘Transformer

目录 前言1. transformer背景1.1 回顾线性代数的知识1.1.1 矩阵和行向量1.1.2 矩阵相乘和算子作用1.1.3 从分块矩阵的乘法来看 Q K T V QK^TV QKTV 1.2 encoder-decoder1.3 低阶到高阶语义向量的转换1.4 核心的问题 2. transformer网络结构2.1 基于KV查询的相似性计算2.2 在一个…...

【前端基础】Day 3 CSS-2

目录 1. Emmet语法 1.1 快速生成HTML结构语法 1.2 快速生成CSS样式语法 2. CSS的复合选择器 2.1 后代选择器 2.2 子选择器 2.3 并集选择器 2.4 伪类选择器 2.4.1 链接伪类选择器 2.4.2 focus伪类选择器 2.5 复合选择器总结 3. CSS的元素显示模式 3.1 什么是元素显示…...

Difyにboto3を変更したカスタムDockerイメージの構築手順

Difyにboto3を変更したカスタムDockerイメージの構築手順 はじめに1. Dockerfileの作成2. Dockerイメージのビルド3. docker-compose.yamlの更新変更点&#xff1a; 4. コンテナの再起動注意事項まとめ はじめに DifyのDockerイメージに特定バージョンのboto3を変更する手順を…...

C++ 类和对象(上)

Hello&#xff01;&#xff01;&#xff01;大家早上中午晚上好&#xff01;&#xff01;&#xff01;今天我们来复习C中最重要的内容之一&#xff1a;类和对象&#xff01;&#xff01; 一、类的定义 1.1语法 类定义关键字class 类名 {//括号体类定义成员变量或成员函数}&…...

虚拟机快照与linux的目录结构

虚拟机快照是对虚拟机某一时刻状态的完整捕获&#xff0c;包括内存、磁盘、配置及虚拟硬件状态等&#xff0c;保存为独立文件。 其作用主要有数据备份恢复、方便系统测试实验、用于灾难恢复以及数据对比分析。具有快速创建和恢复、占用空间小、可多个快照并存的特点。在管理维…...

代码随想录算法训练营第三十天 | 卡码网46.携带研究材料(二维解法)、卡码网46.携带研究材料(滚动数组)、LeetCode416.分割等和子集

代码随想录算法训练营第三十天 | 卡码网46.携带研究材料&#xff08;二维解法&#xff09;、卡码网46.携带研究材料&#xff08;滚动数组&#xff09;、LeetCode416.分割等和子集 01-1 卡码网46.携带研究材料&#xff08;二维&#xff09; 相关资源 题目链接&#xff1a;46. 携…...

计算机基础:二进制基础03,二进制数的位基和位权

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏&#xff0c;故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 &#xff08;一&#xff09;WIn32 专栏导航 上一篇&#xff1a;计算机基础&#xff1a;二进制基础02&#xff0c;用二进制来计数…...

知识库技术选型:主流Embedding模型特性对比

知识库技术选型&#xff1a;主流Embedding模型特性对比 1. 知识库与大模型结合的背景 知识库是存储和管理结构化知识的系统&#xff0c;广泛应用于问答系统、推荐系统和搜索引擎等领域。随着大语言模型&#xff08;LLM&#xff09;的发展&#xff0c;知识库与大模型的结合成为…...

鸿蒙开发第4篇__关于在鸿蒙应用中使用Java语言进行设计

本博文对于鸿蒙APP程序员来说&#xff0c;很重要 HarmonyOS从 API8 开始不再支持使用Java作为开发语言&#xff0c;未来的新功能将在ArkTS中实现. API 8对应的是HarmonyOS 3.0.0版本, 2022年7月27日&#xff0c; 华为发布了HarmonyOS 3.0。 请看下图&#xff1a; 因此&#…...

监控视频流web端播放

最近在弄一个视频监测系统&#xff0c;核心功能之一就是视频监控查看。选择的方案是FFMPEGRTSP2web组合。 1、环境搭建&前期准备&#xff1a; 准备好软件&#xff0c;&#xff08;ffmpeg网上很多&#xff0c;大家自己去下载吧&#xff0c;rtsp-server已上传&#xff0c;方…...

Java中的泛型类 --为集合的学习做准备

学习目标 ● 掌握在集合中正确使用泛型 ● 了解泛型类、泛型接口、泛型方法 ● 了解泛型上下限 ● 了解基本的使用场景 1.有关泛型 1.1泛型的概念 泛型&#xff08;Generics&#xff09;是Java中引入的参数化类型机制&#xff0c;允许在定义类、接口或方法时使用类型参数&a…...

【MySQL】表的基本操作

??表的基本操作 文章目录&#xff1a; 表的基本操作 创建查看表 创建表 查看表结构 表的修改 表的重命名 表的添加与修改 删除表结构 总结 前言&#xff1a; 在数据库中&#xff0c;数据表是存储和组织数据的基本单位&#xff0c;对于数据表的操作是每个程序员需要烂熟…...

横向移动靶场-Tr0ll: 3

Tr0ll: 3来自 <Tr0ll: 3 ~ VulnHub> 1&#xff0c;将两台虚拟机网络连接都改为NAT模式 2&#xff0c;攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182&#xff0c;靶场IP192.168.23.187 3&#xff0c;对靶机进行端口服务探测 …...

房屋租赁|房屋租赁系统|基于Springboot的房屋租赁系统设计与实现(源码+数据库+文档)

房屋租赁系统目录 目录 基于Springboot的房屋租赁系统设计与实现 一、前言 二、系统功能设计 三、系统实现 管理员功能模块 房主功能模块 用户功能模块 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a…...

自然语言处理:词频-逆文档频率

介绍 大家好&#xff0c;博主又来给大家分享知识了。本来博主计划完成稠密向量表示的内容分享后&#xff0c;就开启自然语言处理中文本表示的讲解。可在整理分享资料的时候&#xff0c;博主发现还有个知识点&#xff0c;必须得单独拎出来好好说道说道。 这就是TF-IDF&#xf…...

Linux | 程序 / 进程调用库依赖关系查看

注&#xff1a;本文为 “Linux | 程序 / 进程调用库依赖” 相关文章合辑。 英文引文&#xff0c;机翻未校。 未整理去重。 How to Check Library Dependencies in Linux 如何在 Linux 系统中检查库依赖关系 Mohd Shakir Zakaria Programs on Linux often require external…...

3-4 WPS JS宏 工作表的新建、删除与错务内容处理(批量新建工作表)学习笔记

************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...

泰勒公式详解与应用

前言 本文隶属于专栏《机器学习数学通关指南》&#xff0c;该专栏为笔者原创&#xff0c;引用请注明来源&#xff0c;不足和错误之处请在评论区帮忙指出&#xff0c;谢谢&#xff01; 本专栏目录结构和参考文献请见《机器学习数学通关指南》 正文 &#x1f4dd; 一句话总结 泰…...

计算机视觉(opencv-python)入门之图像的读取,显示,与保存

在计算机视觉领域&#xff0c;Python的cv2库是一个不可或缺的工具&#xff0c;它提供了丰富的图像处理功能。作为OpenCV的Python接口&#xff0c;cv2使得图像处理的实现变得简单而高效。 示例图片 目录 opencv获取方式 图像基本知识 颜色空间 RGB HSV 图像格式 BMP格式 …...

现代前端框架渲染机制深度解析:虚拟DOM到编译时优化

引言&#xff1a;前端框架的性能进化论 TikTok Web将React 18迁移至Vue 3后&#xff0c;点击响应延迟降低42%&#xff0c;内存占用减少35%。Shopify采用Svelte重构核心交互模块&#xff0c;首帧渲染速度提升580%。Discord在Next.js 14中启用React Server Components后&#xf…...

Selenium自动化测试:如何搭建自动化测试环境,搭建环境过程应该注意的问题

最近也有很多人私下问我&#xff0c;selenium学习难吗&#xff0c;基础入门的学习内容很多是3以前的版本资料&#xff0c;对于有基础的人来说&#xff0c;3到4的差别虽然有&#xff0c;但是不足以影响自己&#xff0c;但是对于没有学过的人来说&#xff0c;通过资料再到自己写的…...

Linux服务升级:Almalinux 升级 DeepSeek-R1

目录 一、实验 1.环境 2.Almalinux 部署 Ollama 3.Almalinux 升级 DeepSeek-R1 4.Almalinux 部署 docker 5. docker 部署 DeepSeek-R1 6.Almalinux 部署 Cpolar (内网穿透) 7.使用cpolar内网穿透 二、问题 1.构建容器失败 一、实验 1.环境 &#xff08;1&#xff09…...

《HelloGitHub》第 107 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…...

【实战 ES】实战 Elasticsearch:快速上手与深度实践-1.3.2Kibana可视化初探

&#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 &#x1f449; 点击关注不迷路 文章大纲 10分钟快速部署Kibana可视化平台1. Kibana与Elasticsearch关系解析1.1 架构关系示意图1.2 核心功能矩阵 2. 系统环境预检2.1 硬件资源配置2.2 软件依赖清单 3. Docker快速部…...

网络七层模型—OSI参考模型详解

网络七层模型&#xff1a;OSI参考模型详解 引言 在网络通信的世界中&#xff0c;OSI&#xff08;Open Systems Interconnection&#xff09;参考模型是一个基础且核心的概念。它由国际标准化组织&#xff08;ISO&#xff09;于1984年提出&#xff0c;旨在为不同厂商的设备和应…...

老旧android项目编译指南(持续更)

原因 编译了很多项目&#xff0c;找到了一些可观的解决办法 1. android studio里面的jdk版本切换 jdk版本切换在这里&#xff0c;一般安卓开发需要用到4个版本的jdk,jdk8, jdk11, jdk17, jdk21新版的android stuio是默认使用高版本的jdk,所以切换版本是很有必要的 2. 命令…...

测试金蝶云的OpenAPI

如何使用Postman测试K3Cloud的OpenAPI 1. 引言 在本篇博客中&#xff0c;我将带你逐步了解如何使用Postman测试和使用K3Cloud的OpenAPI。内容包括下载所需的SDK文件、配置文件、API调用及测试等步骤。让我们开始吧&#xff01; 2. 下载所需的SDK文件 2.1 获取SDK 首先&…...

从零基础到通过考试

1. 学习资源与实践平台 使用Proving Grounds进行靶机练习 OSCP的备考过程中&#xff0c;实战练习占据了非常重要的地位。Proving Grounds&#xff08;PG&#xff09;是一个由Offensive Security提供的练习平台&#xff0c;拥有152个靶机&#xff0c;涵盖了从基础到进阶的多种…...

AI人工智能机器学习之神经网络

1、概要 本篇学习AI人工智能机器学习之神经网络&#xff0c;以MLPClassifier和MLPRegressor为例&#xff0c;从代码层面讲述最常用的神经网络模型MLP。 2、神经网络 - 简介 在 Scikit-learn 中&#xff0c;神经网络是通过 sklearn.neural_network 模块提供的。最常用的神经网…...

【原创】Open WebUI 本地部署

使用官网的默认部署&#xff0c;遇到不少的问题。比如白屏问题&#xff0c;其实需要修改几个参数即可。 其实在部署的时候有不少参数 WEBUI_AUTH False ENABLE_OPENAI_API 0 PATH /usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LANG C.UTF-8…...

基于SpringBoot的绿城郑州爱心公益网站设计与实现现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…...

【天地图-点线面最全功能】天地图实现功能:回显、绘制、编辑、删除任意点线面

实现效果图 实现功能 1. 回显点线面数据 2. 绘制点线面&#xff0c;保存可获取点线面数据 3. 编辑点线面&#xff0c;保存可获取最新编辑后的点线面数据 4. 删除任意点线面&#xff08;解决删除按钮不能随元素位置变化&#xff08;地图拖拽/放大缩小时&#xff09;而变化问题-&…...

003 SpringBoot集成Kafka操作

4.SpringBoot集成Kafka 文章目录 4.SpringBoot集成Kafka1.入门示例2.yml完整配置3.关键配置注释说明1. 生产者优化参数2. 消费者可靠性配置3. 监听器高级特性4. 安全认证配置 4.配置验证方法5.不同场景配置模板场景1&#xff1a;高吞吐日志收集场景2&#xff1a;金融级事务消息…...

【工具篇】【深度解析:2025 AI视频工具的全面指南】

随着人工智能技术的飞速发展,AI视频工具已经成为内容创作者、营销人员、教育工作者以及普通用户的得力助手。这些工具不仅简化了视频制作流程,还提供了前所未有的创意可能性。本文将详细介绍各类AI视频工具,帮助你找到最适合自己需求的工具。 1. 文生视频工具 智谱清影:这…...

前端面试真题 2025最新版

文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性&#xff1a;Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss&#xff0c;有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…...

数据结构课程设计(java实现)---九宫格游戏,也称幻方

【问题描述】 九宫格&#xff0c;一款数字游戏&#xff0c;起源于河图洛书&#xff0c;与洛书是中国古代流传下来的两幅神秘图案&#xff0c;历来被认为是河洛文化的滥觞&#xff0c;中华文明的源头&#xff0c;被誉为"宇宙魔方"。九宫格游戏对人们的思维锻炼有着极大…...

一文掌握Charles抓包工具的详细使用

Charles是一款强大的HTTP代理/HTTP监视器/反向代理工具,广泛用于开发和测试网络应用程序。在爬虫开发中,Charles可以帮助开发者拦截、查看和修改HTTP/HTTPS请求和响应,从而更好地理解网络通信过程,分析和调试爬虫程序。本文将详细介绍Charles的安装、配置、基本使用方法以及…...

Ollama下载安装+本地部署DeepSeek+UI可视化+搭建个人知识库——详解!(Windows版本)

目录 1️⃣下载和安装Ollama 1. &#x1f947;官网下载安装包 2. &#x1f948;安装Ollama 3.&#x1f949;配置Ollama环境变量 4、&#x1f389;验证Ollama 2️⃣本地部署DeepSeek 1. 选择模型并下载 2. 验证和使用DeepSeek 3️⃣使用可视化工具 1. Chrome插件-Page …...

Rk3568驱动开发_点亮led灯(手动挡)_5

1.MMU简介 完成虚拟空间到物理空间的映射 内存保护设立存储器的访问权限&#xff0c;设置虚拟存储空间的缓冲特性 stm32点灯可以直接操作寄存器&#xff0c;但是linux点灯不能直接访问寄存器&#xff0c;linux会使能mmu linux中操作的都是虚拟地址&#xff0c;要想访问物理地…...

【服务治理中间件】consul介绍和基本原理

目录 一、CAP定理 二、服务注册中心产品比较 三、Consul概述 3.1 什么是Consul 3.2 Consul架构 3.3 Consul的使用场景 3.4 Consul健康检查 四、部署consul集群 4.1 服务器部署规划 4.2 下载解压 4.3 启动consul 五、服务注册到consul 一、CAP定理 CAP定理&#xff…...

Docker下ARM64架构的源码编译Qt5.15.1,并移植到开发板上

Docker下ARM64架构的源码编译Qt5.15.1,并移植到开发板上 1、环境介绍 QT版本&#xff1a;5.15.1 待移植环境&#xff1a; jetson nano 系列开发板 aarch64架构&#xff08;arm64&#xff09; 编译环境&#xff1a; 虚拟机Ubuntu18.04&#xff08;x86_64&#xff09; 2、…...

对话Stack Overflow,OceanBase CTO 杨传辉谈分布式数据库的“前世今生”

近日&#xff0c; OceanBase CTO 杨传辉受邀出席全球知名开发者论坛 Stack Overflow 的最新一期播客节目&#xff0c;与 Stack Overflow 高级内容创作官 Ryan Donovan 展开对话。双方围绕分布式数据库的可靠性、一致性保障、HTAP 架构以及 AI 时代分布式数据库的发展趋势等热点…...

ds回答-开源llm应用开发平台

以下是几个著名的开源 LLM 应用开发平台&#xff0c;涵盖不同场景和技术特点&#xff1a; 1. Dify 特点&#xff1a;低代码 / 无代码开发、支持 RAG 检索、Agent 智能体、模型管理、LLMOps 全流程优化。核心功能&#xff1a;可视化工作流编排、数百种模型兼容&#xff08;如 GP…...

C++ Qt常见面试题(4):Qt事件过滤器

在 Qt 中,事件过滤器(Event Filter)提供了一种机制,可以拦截并处理对象的事件(如鼠标事件、键盘事件等),在事件到达目标对象之前对其进行预处理。事件过滤器通常用于以下场景: 捕获和处理特定的事件(如鼠标点击、按键等);对事件进行筛选或修改;实现全局的事件监听功…...

CF 109A.Lucky Sum of Digits(Java实现)

题目分析 给定一个值&#xff0c;判断这个值能否被4和7组成&#xff0c;如果能就输出最小的组合。不能就输出-1。 思路分析 由于是最小组合&#xff0c;即判断4能最多有多少个。但是如果一个值能完全被7整除&#xff0c;那就不需要4了&#xff0c;只用7组合的话位数会更短。(例…...

计算机毕业设计Python+DeepSeek-R1大模型游戏推荐系统 Steam游戏推荐系统 游戏可视化 游戏数据分析(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

生鲜行业智能化供应链解决方案技术白皮书

行业痛点与技术挑战 损耗控制难题 行业平均损耗率达18%-25%&#xff0c;需构建动态定价模型与智能分拣系统 冷链管理复杂度 全程温控数据采集点超过23个/车次&#xff0c;异常响应延迟需压缩至90秒内 供需预测偏差 传统模式预测准确率不足65%&#xff0c;亟需AI驱动需求预测体…...

《每天搞懂一道Hard》之数独终结者(LeetCode 37)

&#x1f4cc;《每天搞懂一道Hard》之数独终结者&#xff08;LeetCode 37&#xff09; &#x1f517;原题链接&#xff1a;https://leetcode.com/problems/sudoku-solver/ 今天我们来解剖一个经典回溯算法问题——数独求解器&#xff01;这道题在算法面试中出现频率高达35%&a…...