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

UNION,UNION ALL 的详细用法

目录

一、基本概念

二、核心区别

三、语法使用规则

四、代码实演示

4.1 两张表字段相同,字段顺序也相同

4.2 两张表字段相同。但字段顺序不同

4.3 两张表存在相同字段,但一张表字段多,一张表字段少


一、基本概念

操作符功能描述去重处理性能对比
UNION合并多个查询结果,自动去除重复行较低(需排序去重)
UNION ALL合并多个查询结果,保留所有行(包括重复行)较高

二、核心区别

对比维度UNIONUNION ALL
重复数据处理自动去重保留所有重复行
执行效率较慢(需排序和去重)较快(直接合并结果)
资源消耗高(涉及临时表排序)
排序行为结果集默认无明确顺序结果集默认无明确顺序
适用场景需唯一结果的合并需保留所有记录的合并

上面两张表不需要要小伙伴们全部记下来,当然啦,能记住最好。

主要记住一句话"UNION 会去重,效率低;UNION ALL 不去重,效率高;且二者都不会自动排序"。

三、语法使用规则

UNION 和 UNION ALL 语法规则是一样的,如下实例SQL

-- UNION 语法
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
-- 这里使用了 column1, column2将字段一一列出来,如果 table1和table2字段的顺序一致,可以直接写为 select * ,下方 UNION ALL 同理
select * from table1
UNION
SELECT * FROM table2;-- UNION ALL 语法
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;
或
select * from table1
UNION ALL
SELECT * FROM table2;

但需要注意以下三点:

(1)列数一致:所有 SELECT 语句的列数必须相同;
(2)数据类型兼容:对应列的数据类型需兼容(如 VARCHAR 与 TEXT 兼容);
(3)列名规则:最终结果集的列名以第一个 SELECT 的列名为准;

四、代码实演示

4.1 两张表字段相同,字段顺序也相同

user1 表数据如下图

user2 表数据如下图

此时 user1 和 user2 两个表字段完全相同,但数据略有不同,两张表都有相同的 "张三"、"李四"、"王五";

(1)使用 UNION,结果如下图。

因为两张表的"张三"、"李四"、"王五" 完全相同,所以 UNION 帮我们自动去重了,查询合并后的结果就是7条数据;

(2)使用 UNION ALL,结果如下图。

UNION ALL 不会自动去重,而是将两张表的全部数据合并,一共十条数据;

4.2 两张表字段相同。但字段顺序不同

user1 表数据如下图

user4 表数据如下图

此时由于两张表字段顺序,我们不能直接使用 select * ,虽然username,password 都是 VARCHAR 类型可以兼容,但是查询到的数据会报错

如下图,不管是 UNION,还是UNION ALL,最终的表字段顺序会以第一张表 user1 的字段顺序为准,这就会产生一个问题,我 user4 表中,passwor 和 username 顺序是反着的,因为没有转化,就会导致查询到的结果中,user4 表的查询结果,用户的密码 password 被当作 username,用户的 username 被当作 password;造成数据错误。

这种情况下,我们就不能直接使用 SELECT *,而是需要将字段一一对应。

如下图中代码所示,我们需要将字段一一列出,并让两张表的字段顺序也与之对应,我这里使用 AS 关键字取别名,实际开发过程中也较为常见,有时候 table1 用户名字段可能为 username,table2 表中用户名字段可能为 name,我们就为查询结果的虚拟表字段取别名,方便我们理解。

4.3 两张表存在相同字段,但一张表字段多,一张表字段少

这也是一种较为常见的情况,比如我 table1 表中有 A,B,C三个字段;table2 有A,B,C,D四个字段,我希望对这两张表UNION合并取出查询结果。

如下为 user1 表数据

如下为 user3 表数据,

与之对比,user3 少了一个 age 年龄字段。

此时,我们如果使用 SELECT * 去 查询,会报错。如下图,报错称"两张表有不同数量的列"。

此时我们就需要"补列字段" ,因为 user3 没有 age 字段,我们要在查询结果中进行填充;

如下,我们使用 "NULL AS age"对查询结果中 user3 的age字段进行填充,使其全部为 NULL,这样就可以与 user1 进行UNION 或 UNION ALL啦!

当然,我们也可以不使用 NULL 进行填充,使用任何数据都可以。

例如空字符串'',这样一来查询结果就全部都是空字符串了。

也可以使用具体数据,比如 age 为年龄,我们就让没有这个字段的,全部默认填充为 18。 

如下图

OK小伙伴们,以上三种情况基本上涵盖了多表进行 UNION,UNION ALL 的全部情况啦!不难理解,有需要自动动手尝试的小伙伴,我就把建表SQL放在文章最下面了,自取即可。

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for user1
-- ----------------------------
DROP TABLE IF EXISTS `user1`;
CREATE TABLE `user1`  (`uid` int NOT NULL,`username` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,`password` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user1
-- ----------------------------
INSERT INTO `user1` VALUES (1, '张三', '123', 17);
INSERT INTO `user1` VALUES (2, '李四', '1234', 18);
INSERT INTO `user1` VALUES (3, '王五', '12345', 18);
INSERT INTO `user1` VALUES (4, '赵六', '12346', 19);
INSERT INTO `user1` VALUES (5, '123', '12345', 20);DROP TABLE IF EXISTS `user2`;
CREATE TABLE `user2`  (`uid` int NOT NULL,`username` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,`password` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user2
-- ----------------------------
INSERT INTO `user2` VALUES (1, '张三', '123', 17);
INSERT INTO `user2` VALUES (2, '李四', '1234', 18);
INSERT INTO `user2` VALUES (3, '王五', '12345', 18);
INSERT INTO `user2` VALUES (4, '赵六', '12345', 19);
INSERT INTO `user2` VALUES (5, '123456', '123454536', 21);DROP TABLE IF EXISTS `user3`;
CREATE TABLE `user3`  (`uid` int NOT NULL,`username` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,`password` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user3
-- ----------------------------
INSERT INTO `user3` VALUES (1, '张三', '123');
INSERT INTO `user3` VALUES (2, '李四', '1234');
INSERT INTO `user3` VALUES (4, '赵六', '12346');
INSERT INTO `user3` VALUES (5, '123456', '123454536');DROP TABLE IF EXISTS `user4`;
CREATE TABLE `user4`  (`uid` int NOT NULL,`password` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,`username` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NULL DEFAULT NULL,`age` int NULL DEFAULT NULL,PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_unicode_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of user4
-- ----------------------------
INSERT INTO `user4` VALUES (1, 'afd‘', 'ewfew', 11);
INSERT INTO `user4` VALUES (2, 'defg', 'ergegwr', 19);
INSERT INTO `user4` VALUES (3, 'fdgg', 'fwe', 55);
INSERT INTO `user4` VALUES (4, '而我4', '3544', 18);
INSERT INTO `user4` VALUES (5, '12345', '123', 20);SET FOREIGN_KEY_CHECKS = 1;

相关文章:

UNION,UNION ALL 的详细用法

目录 一、基本概念 二、核心区别 三、语法使用规则 四、代码实演示 4.1 两张表字段相同,字段顺序也相同 4.2 两张表字段相同。但字段顺序不同 4.3 两张表存在相同字段,但一张表字段多,一张表字段少 一、基本概念 操作符功能描述去重处…...

Java 集合遍历过程中修改数据触发 Fail-Fast 机制 ,导致报ConcurrentModificationException异常

Java Fail-Fast 机制 Fail-Fast 机制是 Java 集合框架中的一种错误检测机制,用于在遍历集合时检测结构修改。如果在迭代器创建之后,集合被修改(例如添加或删除元素),并且这种修改不是通过迭代器自身的 remove() 方法进…...

Javascript 日期相关计算

1、获取当前日期的前一天 // 获取当前日期let today new Date();today.setDate(today.getDate() - 1);// 转换为本地日期字符串格式let yesterdayStr today.toISOString().slice(0, 10);console.log(yesterdayStr); // 例如: "2023-04-03" (格式取决于地区设置) 2…...

自动驾驶背后的数学:特征提取中的线性变换与非线性激活

在上一篇博客「自动驾驶背后的数学:从传感器数据到控制指令的函数嵌套」—— 揭秘人工智能中的线性函数、ReLU 与复合函数中,我们初步探讨了自动驾驶技术中从传感器数据到控制指令的函数嵌套流程,其中提到了特征提取模块对传感器数据进行线性…...

DNS解析查询工具

dig命令 1 常用命令 命令:dig 您的域名(示例:dig www.baidu.com) 2、根据解析记录查询,比如MX,CNAME,NS,PTR等,只需将类型加在命令后面即可。 示例:dig bai…...

【eNSP实战】(续)一个AC多个VAP的实现—将隧道转发改成直接转发

在 一个AC多个VAP的实现—CAPWAP隧道转发 此篇文章配置的基础上,将隧道转发改成直接转发 一、改成直接转发需要改动的配置 (一)将连接AP的接口改成trunk口,并允许vlan100、101、102通过 [AC1]interface GigabitEthernet 0/0/8 …...

解决远程卡在下载vscode-server的问题,一键安装脚本

vscode-server 下载与安装脚本 vscode-server一键安装脚本 简介 此脚本用于下载并安装指定提交 ID 和架构的 VS Code Server。用户可以选择不同的架构,并输入对应的 VS Code 提交 ID 来下载和安装 vscode-server。VS Code提交ID可以在VS Code界面“帮助>关于…...

【unity实战】用unity封装一个复杂全面且带不同射击模式的飞机大战射击系统

考虑到每个人基础可能不一样,且并不是所有人都有同时做2D、3D开发的需求,所以我把 【零基础入门unity游戏开发】 分为成了C#篇、unity通用篇、unity3D篇、unity2D篇。 【C#篇】:主要讲解C#的基础语法,包括变量、数据类型、运算符、流程控制、面向对象等,适合没有编程基础的…...

LeetCode[42] 接雨水

动态规划 left_max[i] height[i]左侧的最高高度right_max[i] height[i]右侧的最高高度height[i]能接多少水&#xff1f;min(left_max[i], right_max[i])-height[i] class Solution { public:int trap(vector<int>& height) {int len height.size();vector<in…...

c++ 基础题目lambda

1. auto lambda = [](double x) { return static_cast<int>(x); }; 是 匿名函数对象 ,不可直接声明 a.可以赋值给一个与其类型兼容的 std::function 类型的对象 std::function<int(int, int)> lambda = [](int x, int y) { return x + y; }; b.使用具体的 lambda …...

RTSP/Onvif安防视频EasyNVR平台 vs.多协议接入视频汇聚EasyCVR平台:设备分组的区别

EasyNVR安防视频云平台是旭帆科技TSINGSEE青犀旗下支持RTSP/Onvif协议接入的安防监控流媒体视频云平台。平台具备视频实时监控直播、云端录像、云存储、录像检索与回看、告警等视频能力&#xff0c;能对接入的视频流进行处理与多端分发&#xff0c;包括RTSP、RTMP、HTTP-FLV、W…...

网络编程套接字【端口号/TCPUDP/网络字节序/socket编程接口/UDPTCP网络实验】

网络编程套接字 0. 前言1. 认识端口号2. 认识TCP和UDP协议3. 网络字节序4. socket编程接口5. 实现一个简单的UDP网络程序5.1 需求分析5.2 头文件准备5.3 服务器端设计5.4 客户端设计5.5 本地测试5.6 跨网络测试5.7 UDP小应用——客户端输入命令&#xff0c;服务器端执行 6. 地址…...

【C语言预编译处理精选题】

C语言预编译处理精选题 一、选择易错题1.1 纯文本替换&#xff0c;注意优先级&#xff01;1.2 再来一道文本替换&#xff0c;别马虎1.3 宏定义的替换1.4带参数宏定义的空格问题1.5 " "的include1.6 条件编译1.7 预编译概念 二、填空易错题2.1 注意两个连续的 i2.2 异…...

云钥科技工业相机定制服务,助力企业实现智能智造

在工业自动化、智能制造和机器视觉快速发展的今天&#xff0c;工业相机作为核心感知设备&#xff0c;其性能直接决定了检测精度、生产效率和产品质量。然而&#xff0c;标准化工业相机往往难以满足复杂多样的应用场景需求&#xff0c;‌工业相机定制‌逐渐成为企业突破技术瓶颈…...

用了Cline和华为云的大模型,再也回不去了

这两年AI火热&#xff0c;受影响最大的还是程序员群体&#xff0c;因为编程语言是高度形式化的&#xff0c;完全可以用BNF等形式精确地定义&#xff0c;不像自然语言那样&#xff0c;容易出现歧义。另外开源是软件界的潮流&#xff0c;GitHub上有海量的开源代码可供AI来训练&am…...

vs2017版本与arcgis10.1的ArcObject SDK for .NET兼容配置终结解决方案

因电脑用的arcgis10.1,之前安装的vs2010正常能使用AO和AE&#xff0c;安装vs2017后无法使用了&#xff0c;在重新按照新版本arcgis engine或者arcObject费时费力&#xff0c;还需要重新查找资源。 用vs2017与arc10.1的集成主要两个问题&#xff0c;1&#xff1a;安装后vs中没有…...

Java对接微信支付全过程详解

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…...

微软 System Center Configuration Manager(SCCM)的组件文件

微软 System Center Configuration Manager(SCCM) 或 Microsoft Endpoint Configuration Manager(MECM) 的组件文件,属于企业级设备管理工具的一部分。以下是具体说明: C:\Windows\CCM\smsswd.exe C:\Windows\CCM\tsmanager.exe smsswd.exe 和 tsmanager.exe 是 Micros…...

C语言和C++到底有什么关系?

C 读作“C 加加”&#xff0c;是“C Plus Plus”的简称。 顾名思义&#xff0c;C 就是在 C 语言的基础上增加了新特性&#xff0c;玩出了新花样&#xff0c;所以才说“Plus”&#xff0c;就像 Win11 和 Win10、iPhone 15 和 iPhone 15 Pro 的关系。 C 语言是 1972 年由美国贝…...

10.PE导出表

一:定位导出表 PIMAGE_NT_HEADERS->OptionalHeader->DataDirectory[0] typedef struct _IMAGE_DATA_DIRECTORY {DWORD VirtualAddress; // 导出表的RVADWORD Size; // 导出表大小(没用) } IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; 该结构的Vi…...

springBoot中不添加依赖 , 手动生成一个token ,并校验token,在统一拦截器中进行校验 (使用简单 , 但是安全性会低一点)

要在 Spring Boot 里实现接口统一拦截并校验 Token&#xff0c;可以借助 Spring 的拦截器机制。下面是具体的实现步骤和代码示例。 1. 创建 Token 工具类 import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgori…...

VSCode C/C++ 环境搭建指南

一、前言 Visual Studio Code&#xff08;简称 VSCode&#xff09;是一款轻量级且功能强大的跨平台代码编辑器&#xff0c;凭借丰富的插件生态和高度的可定制性&#xff0c;深受开发者喜爱。对于 C/C 开发者而言&#xff0c;在 VSCode 中搭建开发环境&#xff0c;能够获得灵活…...

ES6(4) Map 集合详解

1. Map 集合简介 Map 是 ES6 提供的一种新的键值对数据结构&#xff0c;与普通对象&#xff08;Object&#xff09;不同&#xff0c;Map 的键可以是任意类型&#xff08;包括对象、函数等&#xff09;。 2. 创建 Map 集合 可以使用 new Map() 创建一个 Map&#xff0c;并在括…...

DeepSeek私有化部署与安装浏览器插件内网穿透远程访问实战

文章目录 前言1. 本地部署OllamaDeepSeek2. Page Assist浏览器插件安装与配置3. 简单使用演示4. 远程调用大模型5. 安装内网穿透6. 配置固定公网地址 前言 最近&#xff0c;国产AI大模型Deepseek成了网红爆款&#xff0c;大家纷纷想体验它的魅力。但随着热度的攀升&#xff0c…...

【设计模式】建造者模式

三、建造者模式 3.3 建造者模式 建造者(Builder) 模式也称构建器模式、构建者模式或生成器模式&#xff0c;同工厂模式或原型 模式一样&#xff0c;也是一种创建型模式。建造者模式比较复杂&#xff0c;不太常用&#xff0c;但这并不表示不需要了 解和掌握该模式。建造者模式…...

一场由 ES 分片 routing 引发的问题

一场由 ES 分片 routing 引发的问题 ES 结构 {"poroperties": {"joinType": {"type": "join","eager_global_ordinals": true,"relations": {"spu": "sku"}},"id":{"type&q…...

搭建Python量化开发环境:从零开始的完整指南

搭建Python量化开发环境&#xff1a;从零开始的完整指南 在量化投资领域&#xff0c;一个稳定且高效的开发环境是成功的关键。本文将引导你一步步搭建起自己的Python量化开发环境&#xff0c;确保你能够顺利开始编写和运行量化策略。 &#x1f680;量化软件开通 &#x1f68…...

JavaScript日期区间计算:精准解析年月日差异

一、应用场景与功能概述 在日常的制作项目或者是练习&#xff0c;我们经常需要计算两个日期之间的精确时间差。本文将通过一个JavaScript日期计算函数&#xff0c;详细解析如何实现精准的年/月/日差异计算&#xff0c;并探讨实际开发中的常见问题和解决方案。 二、核心功能解…...

大数据学习(71)-三范式构成

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…...

el-table 插槽踩过的坑 :slot-scope 和#default的区别

slot-scope和#default是Vue中用于定义插槽的两种不同语法&#xff0c;它们在Vue 2和Vue 3中有不同的应用场景和语法规则。‌ slot-scope 在‌Vue 2.x‌中&#xff0c;slot-scope是用于声明具名插槽并获取父组件传递过来的数据的主要方式。通过slot-scope可以定义一个变量scop…...

Linux一键安装node.js【脚本】

node.js一般不用系统的apt安装&#xff0c;而是用nvm这个前端的应用商店安装 node.js是js环境&#xff0c;nvm是安装nodejs管理器。npm是nodejs里的包管理器&#xff0c;安装模块的&#xff0c;类似于python的pip 把以下代码复制保存在一个文件里 比如nano install_nodejs.sh …...

vue3:pinia安装及其使用

​一、安装 Pinia 的步骤 ​1、安装 Pinia npm install pinia 2、​在 Vue 应用中引入 Pinia 在 main.js 中引入并注册 Pinia&#xff1a; import { createApp } from vue; import { createPinia } from pinia; import App from ./App.vue;const app createApp(App); app…...

vue2升级Vue3--native、对inheritAttrs作用做以解释、声明的prop属性和未声明prop的属性

native取消 在 Vue 3 中&#xff0c;v-on 的 .native 修饰符已经被移除。在 Vue 2 中&#xff0c;.native 修饰符用于在组件的根元素上监听原生 DOM 事件&#xff0c;但在 Vue 3 中&#xff0c;这一行为发生了变化。 在 Vue 3 中&#xff0c;所有未在子组件的 emits 选项中定…...

【漫话机器学习系列】146.Softmax 激活函数(Softmax Activation Function)

Softmax 激活函数详解 1. Softmax 函数概述 Softmax 函数&#xff08;Softmax Activation Function&#xff09;是一种常用于多分类任务的激活函数&#xff0c;广泛应用于机器学习和深度学习模型&#xff0c;特别是在神经网络的输出层。它的主要作用是将输入的多个实数值转换…...

解决:ModuleNotFoundError: No module named ‘_sqlite3‘

报错&#xff1a; from _sqlite3 import * ModuleNotFoundError: No module named _sqlite3安装sqlite3支持组件: sudo apt-get install libsqlite3-dev进入之前下载的python包下&#xff0c;重新编译和安装Python ./configure --enable-loadable-sqlite-extensions make &a…...

C++差分风暴:区间修改终极模板

目录 &#x1f525; 差分核心价值 &#x1f31f; 一维差分模板 1. 核心思想 2. 代码实现 3. 动态图示 &#x1f4e6; 二维差分模板 1. 核心公式 2. 代码实现 3. 二维修改示意图 &#x1f6a8; 六大避坑指南 &#x1f4a1; 复杂度对比 &#x1f308; LeetCode实战 &…...

easypoi导入Excel兼容日期和字符串格式的日期和时间

问题场景 在使用easypoi导入Excel时&#xff0c;涉及到的常用日期会有yyyy-MM-dd HH:mm:ss、yyyy-MM-dd和HH:mm:ss&#xff0c;但是Excel上面的格式可不止这些&#xff0c;用户总会输入一些其他格式&#xff0c;如 如果在定义verify时用下面这种格式定义&#xff0c;那么总会…...

《保险科技》

自己在保险行业工作很多年&#xff0c;只是接触了一些数据的内容&#xff0c;对于保险业务的知识了解的很少&#xff0c;想通过这本书补充一下&#xff0c;但是发现这本书就是一些知识的拼接。 先将保险的历史&#xff0c;后讲保险的定义&#xff0c;然后就是吹嘘保险行业和互联…...

QT编程之HTTP服务端与客户端技术

一、HTTP 服务器实现方案 ‌QtWebApp 集成‌ 将QtWebApp源码的 httpserver 目录导入项目&#xff0c;并在 .pro 文件中添加 include ($$PWD/httpserver/httpserver.pri)‌。配置 WebApp.ini 文件定义服务参数&#xff08;IP、端口、线程池等&#xff09;&#xff0c;通过 HttpL…...

每日一题--计算机网络

一、基础概念类问题 1. TCP 和 UDP 的区别是什么&#xff1f; 回答示例&#xff1a; TCP&#xff1a;面向连接、可靠传输&#xff08;通过三次握手建立连接&#xff0c;丢包重传&#xff09;、保证数据顺序&#xff08;如文件传输、网页访问&#xff09;。 UDP&#xff1a;无…...

IIS 服务器日志和性能监控

Internet Information Services &#xff08;IIS&#xff09; 是 Microsoft 提供的一款功能强大、灵活且可扩展的 Web 服务器&#xff0c;用于托管网站、服务和应用程序。IIS 支持 HTTP、HTTPS、FTP、SMTP 和更多用于提供网页的协议&#xff0c;因此广泛用于企业环境。 IIS 的…...

Unity学习之Shader总结(一)

一、Lesson1 1、渲染流水线 &#xff08;1&#xff09;应用阶段 模型->模型处理&#xff08;应用阶段&#xff09;–>输入结构 应用阶段主要操作&#xff1a;粗粒度剔除、进行渲染设置、准备基本数据、输出到几何阶段 &#xff08;2&#xff09;几何阶段 输入结构-&…...

java,poi,提取ppt文件中的文字内容

注意&#xff0c;不涉及图片处理。 先上pom依赖&#xff1a; <!-- 处理PPTX文件 --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.3</version></dependency><!--…...

matlab R2024b下载教程及安装教程(附安装包)

文章目录 前言一、matlab R2024b 安装包下载二、matlab R2024b安装教程 前言 为帮助大家顺利安装该版本软件&#xff0c;特准备matlab R2024b下载教程及安装教程&#xff0c;它将以简洁明了的步骤&#xff0c;指导你轻松完成安装&#xff0c;开启 MATLAB R2024 的强大功能之旅…...

设计模式之外观模式:原理、实现与应用

引言 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型设计模式&#xff0c;它通过提供一个统一的接口来简化复杂系统的使用。外观模式隐藏了系统的复杂性&#xff0c;使得客户端可以通过一个简单的接口与系统交互。本文将深入探讨外观模式的原理、实现方式以及实…...

移远QuecPython模组中的看门狗技术:如何提升设备可靠性

概述 对蜂窝通信模组而言&#xff0c;看门狗&#xff08;Watchdog&#xff09;是一种硬件或软件的监控机制&#xff0c;用于监测模组的运行状态。当模组因为外界干扰或程序错误陷入死循环时&#xff0c;看门狗会自动触发模组重启&#xff0c;从而恢复模组的运行状态。 对看门…...

汽车感性负载-智能高边钳位能量计算

随着汽车电子技术的发展&#xff0c;新的电子电气架构下&#xff0c;越来越多的执行部件在车身出现&#xff0c;比如电磁阀、风机、水泵、油泵、雨刮继电器等常用的执行器&#xff0c; 它们一般都表现为感性特点。驱动这些负载的最简单和最常见的方法是将它们连接到高边侧开关(…...

Kubernetes之ETCD

ETCD 是 Kubernetes 的核心组件之一&#xff0c;它是一个分布式键值对存储数据库&#xff0c;专为高可用性和一致性设计。它在 Kubernetes 中的主要作用是存储所有集群数据&#xff0c;包括配置数据和状态信息。ETCD 是 Kubernetes 的“大脑”&#xff0c;其稳定性对整个集群至…...

通过Geopandas进行地理空间数据可视化

目录 引言 安装与导入 数据加载与探索 数据预处理 基本地图可视化 添加其他数据到地图上 空间分析与查询 地图叠加与分组 空间缓冲区 交互式地图可视化 实际应用案例 城市规划 环境监测 结论 引言 在数据科学领域,地理空间数据可视化扮演着至关重要的角色。它不…...

堆(heap)

堆&#xff1f;对于初学者来说&#xff0c;或许是一个陌生十足的概念。 但&#xff01;堆不可怕。 什么是堆&#xff1f; 学术上&#xff0c;常常是这样说的&#xff08;一个完全二叉树&#xff09;。 没毛病&#xff0c;要想更好的理解堆(heap)&#xff0c;确实需要好好掌…...