MySQL高级查询
MySQL
前言
文本源自微博客 (www.microblog.store),且已获授权.
一. mysql基础知识
1. mysql常用系统命令
- 启动命令
net start mysql - 停止命令
net stop mysql - 登录命令
mysql -h ip -P 端口 -u 用户名 -p
本机可以省略 ip mysql -u 用户名 -p
- 查看数据库版本
mysql --version/select version();(已登录) - 显示所有数据库
show databases;- 进⼊指定的库
use 库名; - 显示当前库中所有表
show tables; - 查看其他库中所有的表
show tables from 库名 - 查看表的创建语句
show create table 表名; - 查看表结构
desc 表名; - 查看当前所在库
select database();
- 进⼊指定的库
- 查看当前mysql支持的存储引擎
show engines; - 查看系统变量及其值
show variables; - 查看某个系统变量
show VARIABLES like '变量名';
2. mysql语法规范
- 不区分大小写,但建议关键字大写,表明、列明小写
- 每条语句最好用英文分号结尾
- 每条命令根据需要,可以进行缩进或换行
- 注释
- 单行注释: #注释文字
- 单行注释: – 注释文字,注意这里需要加空格
- 多行注释 /*注释文字*/
3. SQL的语言分类
- DQL(Data Query Language):数据查询语⾔ select 相关语句
- DML(Data Manipulate Language):数据操作语⾔ insert 、update、delete 语句
- DDL(Data Define Language):数据定义语⾔ create、drop、alter 语句
- TCL(Transaction Control Language):事务控制语⾔ set autocommit=0、start
transaction、savepoint、commit、rollback
二. MySQL中数据类型介绍
1. MySQL的数据类型
主要包括以下五大类
- 整形数据: bit、bool、tinyint、smallint、mediumint、int、bigint
- **浮点数类型:**float、double、decimal、decimal
- **字符串类型:**char、varchar、tinyblob、blob、mediumblob、longblob、tinytext、text、mediumtext、longtext
- **日期类型:**Date、DateTime、TimeStamp、Time、Year
- **其他数据类型:**xxxx
2. 数据类型选择的一些建议
- **选小不选大:**⼀般情况下选择可以正确存储数据的最小数据类型,越小的数据类型通
常更快,占用磁盘,内存和CPU缓存更小。 - **简单就好:**简单的数据类型的操作通常需要更少的CPU周期,例如:整型比字符操作
代价要小得多,因为字符集和校对规则(排序规则)使字符比整型比较更加复杂。 - **尽量避免NULL:**尽量制定列为NOT NULL,除非真的需要NULL类型的值,有NULL的
列值会使得索引、索引统计和值比较更加复杂。 - 浮点类型的建议统⼀选择decimal
- 记录时间的建议使用int或者bigint类型,将时间转换为时间戳格式,如将时间转换为
秒、毫秒,进行存储,方便走索引
九. 分组查询(group by、having)
1. 前期准备
-
语法
SELECT column, group_function,... FROM table [WHERE condition] GROUP BY group_by_expression [HAVING group_condition]; -
说明
group_function:聚合函数。
group_by_expression:分组表达式,多个之间用逗号隔开。
group_condition:分组之后对数据进行过滤。分组中,select后面只能有两种类型的列:
-
分组中,select后面只能有两种类型的列
-
出现在group by后的列
-
或者使用聚合函数的列
-
聚合函数
函数名称 作用 max 查询指定列的最大值 min 查询指定列的最小值 count sum avg 分组时,可以使用使用上面的聚合函数。
2. 查询
-
单字段分组
查询每个用户下单数量,输出:用户id、下单数量
SELECTuser_id,COUNT( user_id ) FROMt_order GROUP BYuser_id -
查询每个用户每年下单数量,输出字段:用户id、年份、下单数量,如下
SELECTuser_id,the_year,COUNT( user_id ) FROMt_order GROUP BYuser_id,the_year; -
分组前筛选数据
分组前对数据进行筛选,使用where关键字
需要查询2018年每个用户下单数量,输出:用户id、下单数量
SELECTuser_id,COUNT( user_id ) FROMt_order WHERE the_year = 2018 GROUP BYuser_id; -
分组后筛选数据
分组后对数据筛选,使用having关键字
查询2018年订单数量大于1的用户,输出:用户id,下单数量
SELECTuser_id,COUNT( user_id ) AS total FROMt_order WHERE the_year = 2018 GROUP BYuser_idHAVING total>1; -
where和having的区别
where是在分组(聚合)前对记录进行筛选,而having是在分组结束后的结果里筛选,最后返回整个sql的查询结果。
可以把having理解为两级查询,即含having的查询操作先获得不含having子句时的sql查询结果表,然后在这个结果表上使用having条件筛选出符合的记录,最后返回这些记录,因此,having后是可以跟聚合函数的,并且这个聚集函数不必与select后面的聚集函数相同。
十二. 子查询
子查询:
出现在select语句中的select语句,称为子查询或内查询。
外部的select查询语句,称为主查询或外查询。
1. 子查询分类
- 按结果集的行列数不同分为4种
- 标量子查询(结果集只有⼀行⼀列)
- 列子查询(结果集只有⼀列多行)
- 行子查询(结果集有⼀行多列)
- 表子查询(结果集⼀般为多行多列)
- 按子查询出现在主查询中的不同位置分
- select后面:仅仅支持标量子查询。
- from后面:支持表子查询。
- where或having后面:支持标量子查询(单列单行)、列子查询(单列多行)、行子
查询(多列多行) - exists后面(即相关子查询):表子查询(多行、多列)
(数据准备:javacode2018_employees.sql)
2. select后面的子查询
子查询位于select后⾯的,仅仅支持标量子查询。
-
实例1 查询每个部门员工个数
-- 查询每个部门员工个数 SELECTa.*,( SELECT count(*) FROM employees b WHERE b.department_id = a.department_id ) AS 员工个数 FROMdepartments a; -
查询员工号=102的部门名称
-- 菜鸟版本 /*SELECT* FROMdepartments dep WHEREdep.department_id = ( SELECT emp.department_id FROM employees emp WHERE emp.employee_id = 102 );*/ -- 高级版SELECT ( SELECT a.department_name FROM departments a, employees b WHERE a.department_id = b.department_id AND b.employee_id = 102 ) AS 部门名;
3. from后面的子查询
将子查询的结果集充当⼀张表,要求必须起别名,否者这个表找不到。
然后将真实的表和子查询结果表进行连接查询。
-
查询每个部门的平均工资
SELECTemp.department_id,avg( emp.salary ) FROMemployees AS emp GROUP BYemp.department_id; -
薪资等级表
select * from job_grades; -
联合查询: 将上面2个结果连接查询,筛选条件: 平均工资 between lowest_sal and highest_sal
SELECTemp.department_id,emp.department_name,sa AS '平均工资',job.grade_level FROM( SELECTemp.department_id,dep.department_name,avg( emp.salary ) AS saFROMemployees AS emp ,departments AS dep where dep.department_id = emp.department_idGROUP BYemp.department_id) emp,job_grades job WHEREemp.sa BETWEEN job.lowest_sal AND job.highest_sal;
4. where和having后面的子查询
-
where和having使用情况
-
标量子查询(单行单列子查询)
-
列子查询(单行多列子查询)
-
行子查询(一行多列子查询)
-
-
特点
-
子查询放在小括号内。
-
子查询⼀般放在条件的右侧。
-
标子查询,⼀般搭配着单行单列操作符使用 >、<、>=、<=、=、<>、!=
-
列子查询,⼀般搭配着多行操作符使用
-
in(not in):列表中的“任意⼀个”
- any或者some:和子查询返回的“某⼀个值”比较,比如a>some(10,20,30),a大于
子查询中任意⼀个即可,a大于子查询中最小值即可,等同于a>min(10,20,30)。 - all:和子查询返回的“所有值”比较,比如a>all(10,20,30),大于子查询中所有
值,换句话说,a大于子查询中最大值即可满足查询条件,等同于a>max(10,20,30);
- any或者some:和子查询返回的“某⼀个值”比较,比如a>some(10,20,30),a大于
-
子的执行优先于主查询执行,因为主查询的条件用到了子查询的结果。
-
mysql中的in、any、some、all
in,any,some,all分别是子查询关键词之⼀。
- in:in常用于where表达式中,其作用是查询某个范围内的数据
- any和some⼀样: 可以与=、>、>=、<、<=、<>结合起来使用,分别表示等于、大于、
大于等于、小于、小于等于、不等于其中的任何⼀个数据。 - all:可以与=、>、>=、<、<=、<>结合是来使用,分别表示等于、大于、大于等于、小
于、小于等于、不等于其中的其中的所有数据。
1. 标量子查询
1. ⼀般标量子查询
查询谁的工资比Abel的⾼?
-
查询abel的工资【改查询是标量子查询】
SELECTemp.salary FROMemployees AS emp WHEREemp.last_name = 'Abel' -
查询员工信息,满足salary>①的结果
SELECT* FROMemployees emp WHEREemp.salary > ( SELECT emp.salary FROM employees AS emp WHERE emp.last_name = 'Abel' );
2. 多个标量子查询
返回jobid与141号员工相同,salary比143号员工多的员工、姓名、jobid和工资
-
查询141号员工的job_id
-- 1. 查询141号员工的job_idSELECTemp.job_id FROMemployees emp WHEREemp.employee_id = 141; -
查询143号员工的salary
SELECTemp.salary FROMemployees emp WHEREemp.employee_id = 143; -
查询员工的姓名、job_id、工资,要求job_id=① and salary>②
SELECT* FROMemployees emp WHEREemp.job_id = ( SELECT emp.job_id FROM employees emp WHERE emp.employee_id = 141 ) AND emp.salary > ( SELECT emp.salary FROM employees emp WHERE emp.employee_id = 143 );
3. 子查询+分组函数
查询最低工资大于50号部门最低工资的部门id和其最低工资【having】
-
查询50号部门的最低工资
SELECTmin( salary ) FROMemployees WHEREdepartment_id = 50; -
查询每个部门的最低工资
SELECTmin( salary ) FROMemployees GROUP BYdepartment_id; -
在②的基础上筛选,满足min(salary)>①
SELECTemp.department_id,min( emp.salary ) minSalary FROMemployees emp GROUP BYemp.department_id HAVINGMIN( emp.salary )>(SELECTmin( salary ) FROMemployees WHEREdepartment_id = 50 );
2. 列子查询(子查询结果集⼀列多行)
列子查询需要搭配多行操作符使用:in(not in)、any/some、all。
为了提升效率,最好去重⼀下distinct关键字。
实例1
返回location_id是1400或1700的部门中的所有员工姓名:
-
方式一:
a. 查询location_id是1400或1700的部门编号
select DISTINCT department_id from departments WHERE location_id in(1400,1700);b. 查询员工姓名,要求部门是①列表中的某⼀个
SELECTlast_name FROMemployees WHEREdepartment_id IN ( SELECT DISTINCT department_id FROM departments WHERE location_id IN ( 1400, 1700 ) ); -
方式二:使用any实现
SELECTlast_name FROMemployees WHEREdepartment_id = ANY ( SELECT DISTINCT department_id FROM departments WHERE location_id IN ( 1400, 1700 ) ); -
拓展,下面与not in等价
SELECTlast_name FROMemployees WHEREdepartment_id <>ALL ( SELECT DISTINCT department_id FROM departments WHERE location_id IN ( 1400, 1700 ) );
实例2
返回其他工种中比jobid为’ITPROG’工种任意工资低的员工的员工号、姓名、job_id、salary
-
查询job_id为’IT_PROG’部门任-工资
SELECT DISTINCT salary FROM employees WHERE job_id = 'IT_PROG' -
查询员⼯号、姓名、job_id、salary,slary<①的任意⼀个
SELECT* FROMemployees WHEREsalary < ANY ( SELECT DISTINCT salary FROM employees WHERE job_id = 'IT_PROG' ) AND job_id != 'IT_PROG'; -
或者
SELECT* FROMemployees WHEREsalary < ( SELECT MAX(salary ) FROM employees WHERE job_id = 'IT_PROG' ) AND job_id != 'IT_PROG';
实例3
返回其他工种中比jobid为’ITPROG’部门所有⼯资低的员⼯的员⼯号、姓名、
job_id、salary
-
使用
ALL实现:SELECTemp.employee_id,emp.first_name,emp.job_id,emp.salary FROMemployees emp WHEREemp.salary < ALL ( SELECT DISTINCT salary FROM employees WHERE job_id = 'IT_PROG' ) AND emp.job_id != 'IT_PROG'; -
使用
min:SELECTemp.employee_id,emp.first_name,emp.job_id,emp.salary FROMemployees emp WHEREemp.salary < ( SELECT MIN(salary) FROM employees WHERE job_id = 'IT_PROG' ) AND emp.job_id != 'IT_PROG';
3. 行子查询(子查询结果集一行多列)
查询员工编号最小并且工资最高的员工信息,3种方式:
a. 查询最⼩的员⼯编号
SELECTmin( employee_id )
FROMemployees;
b. 查询最⾼⼯资
SELECTMAX( salary )
FROMemployees;
方式1 分开使用查询条件
SELECT*
FROMemployees
WHEREemployee_id = ( SELECT min( employee_id ) FROM employees ) AND salary = ( SELECT MAX( salary ) FROM employees );
方式2 使用联合查询条件
SELECT*
FROMemployees
WHERE( employee_id, salary ) = (SELECTmin( employee_id ),MAX( salary ) FROMemployees )
方式3 使用联合查询条件
SELECT*
FROMemployees
WHERE( employee_id, salary ) IN (SELECTmin( employee_id ),MAX( salary ) FROMemployees );
4. exists后面(也叫做相关子查询)
- 语法:exists(完整的查询语句)。
- exists查询结果:
1或0,exists查询的结果用来判断子查询的结果集中是否有值。 - ⼀般来说,能用exists的子查询,绝对都能用in代替,所以exists用的少。
- 和前面的查询不同,这先执行主查询,然后主查询查询的结果,再根据子查询进行过
滤,子查询中涉及到主查询中用到的字段,所以叫相关子查询。
实例1 简单实例
SELECT EXISTS( SELECT employee_id FROM employees WHERE salary = 300000 ) AS 'exists返回1或者0';
+----------------------+
| exists返回1或者0 |
+----------------------+
| 0 |
+----------------------+
1 row in set (0.00 sec)
实例2 查询所有员⼯的部门名称
-
查询所有员⼯的部门名称
SELECTa.department_name FROMdepartments a WHEREEXISTS (SELECT1 FROMemployees b WHEREa.department_id = b.department_id); -
使用
in实现SELECTa.department_name FROMdepartments a WHEREa.department_id IN ( SELECT department_id FROM employees );
实例3 查询所有员⼯的部门名称
-
exists实现SELECTa.department_name FROMdepartments a WHERENOT EXISTS ( SELECT 1 FROM employees b WHERE a.department_id = b.department_id AND b.department_id IS NOT NULL ); -
in实现SELECTa.department_name FROMdepartments a WHEREa.department_id NOT IN ( SELECT 1 FROM employees b WHERE a.department_id = b.department_id AND b.department_id IS NOT NULL );
相关文章:
MySQL高级查询
MySQL 前言 文本源自微博客 (www.microblog.store),且已获授权. 一. mysql基础知识 1. mysql常用系统命令 启动命令 net start mysql停止命令 net stop mysql登录命令 mysql -h ip -P 端口 -u 用户名 -p 本机可以省略 ip mysql -u 用户名 -p 查看数据库版本 mysql --ve…...
聊聊啥项目适合做自动化测试
作为测试从业者,你是否遇到过这样的场景,某天公司大Boss找你谈话。 老板:小李,最近工作辛苦了 小李:常感谢您的认可,这不仅是对我个人的鼓励,更是对我们整个团队努力的认可。我们的成果离不开每…...
ROS2开发机器人移动
.创建功能包和节点 这里我们设计两个节点 example_interfaces_robot_01,机器人节点,对外提供控制机器人移动服务并发布机器人的状态。 example_interfaces_control_01,控制节点,发送机器人移动请求,订阅机器人状态话题…...
【强化学习】第02期:动态规划方法
笔者近期上了国科大周晓飞老师《强化学习及其应用》课程,计划整理一个强化学习系列笔记。笔记中所引用的内容部分出自周老师的课程PPT。笔记中如有不到之处,敬请批评指正。 文章目录 2.1 动态规划:策略收敛法/策略迭代法2.2 动态规划…...
安全技术和防火墙(二)
接上一节 备份和还原 iptables-save > /opt/iptables.bak iptables-restore < /opt/iptables.bak snat和dnat snat源地址转换 内网到外网 内网ip转换成可以访问外网的ip 内网的多个主机可以只有一个有效的公网ip地址访问外部网络 dnat 目的地址转发 外部用户&#…...
【51单片机入门】数码管原理
文章目录 前言共阴极与共阳极数码管多个数码管显示原理 总结 前言 在我们的日常生活中,数码管被广泛应用于各种电子设备中,如电子表、计时器、电子钟等。数码管的主要功能是显示数字和一些特殊字符。在这篇文章中,我们将探讨数码管的工作原理…...
三星DRAM、NAND,“又双叒叕”带头涨价了
据韩国媒体《每日经济新闻》报道,三星电子计划在第三季度上调服务器DRAM和企业级NAND闪存的价格,涨幅预计在15%-20%,主要受人工智能(AI)需求激增的推动。这一举措有望提振公司下半年业绩。 据《经济日报》报道援引业内消息,由于厂…...
星戈瑞FITC-PEG2000-Biotin的生物相容性
生物相容性是指材料与生物体之间相互作用时,材料对生物体无毒、无刺激,且能够被生物体接受并正常发挥其功能的特性。 FITC-PEG2000-Biotin作为一种荧光标记试剂,在细胞成像、药物传递和生物标志物检测等领域具有诸多应用前景。 FITC-PEG2000…...
数据资产管理的艺术:构建智能化、精细化的数据资产管理体系,从数据整合、分析到决策支持,为企业提供一站式的数据资产解决方案,助力企业把握数字时代的新机遇
一、引言 在数字化浪潮席卷全球的今天,数据已经成为企业最重要的资产之一。如何高效、安全地管理这些海量数据,从中提取有价值的信息,并将其转化为决策支持,是每个企业都必须面对的挑战。本文将探讨数据资产管理的艺术࿰…...
基于Java微信小程序校园自助打印系统设计和实现(源码+LW+调试文档+讲解等)
💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟感兴趣的可以先收藏起来,还…...
股票复盘思路
股票复盘是一个回顾和分析市场及个人交易决策的过程,旨在从过去的表现中学习并优化未来的投资策略。以下是一些基本的股票复盘步骤和关注点: 市场概况回顾: 观察并记录每日市场的整体表现,包括大盘指数涨跌、成交量变化。统计涨停和跌停个股的数量,了解市场情绪和活跃度。…...
OpenGL系列(六)摄像机
在 OpenGL系列(六)变换 中,一个目标物体经过模型矩阵、观察矩阵和投影矩阵的变换才能正常显示出来,其中模型矩阵主要针对目标物体,它会影响物体的位姿。观察矩阵和投影矩阵主要针对观察者而已,这两个变换决…...
一个端口配置两个vue和后端服务,nginx以及前后端服务怎么配?
nginx配置重点看server中的内容: worker_processes 8; pid /usr/local/nginx/logs/nginx.pid;events {# 此为 Linux 系统特为处理大批量文件描述符而作改进的 poll 事件模型use epoll;worker_connections 512; # 工作进程的最大连接数量# 允许同时接受多个网络连…...
295. 数据流的中位数
class MedianFinder {Queue<Integer> A,B;public MedianFinder() {A new PriorityQueue<>();//小根堆存储后半部分B new PriorityQueue<>((x,y)->(y-x));//大根堆存储前半部分}public void addNum(int num) {if(A.size()0 && B.size()0){B.add(…...
OCR训练和C#部署英文字符训练
PaddleOCR是一个基于飞桨开发的OCR(Optical Character Recognition,光学字符识别)系统。其技术体系包括文字检测、文字识别、文本方向检测和图像处理等模块。以下是其优点: 高精度:PaddleOCR采用深度学习算法进行训练…...
webpack【实用教程】
基础配置 配置的拆分和合并 通常 webpack 的配置文件会有3个 webpack.common.js 公共配置(会被另外两个配置文件导入并合并)webpack.dev.js 开发环境的配置webpack.prod.js 生产环境的配置 开发环境的本地服务 在 webpack.dev.js 中配置 devServer:…...
如何使用C++进行文件读写操作
在C中,我们可以使用标准库中的 <fstream>(文件流)来进行文件的读写操作。以下是一些基本的文件读写操作的示例。 读取文件 cpp复制代码 #include <fstream> #include <iostream> #include <string> int main() { s…...
Tensorflow Lite移动平台编译
Android平台编译 如果不做定制化操作,我们不需要自己编译TensorFlow Lite Android库。我们可以直接使用位于MavenCentral的TensorFlow Lite AAR。但是在某些情况下,我们需要本地编译TensorFlow Lite。例如,您可能正在构建一个包含operations selected from TensorFlow的自定…...
2024年6月24日-6月30日(ue5肉鸽视频p16-p25)
试过重点放在独立游戏上,有个indienova独立游戏团队是全职的,由于他们干了几个月,节奏暂时跟不上,紧张焦虑了。五一时也有点自暴自弃了,实在没必要,按照自己的节奏走即可。精力和时间也有限,放在…...
LeetCode.面试题17.24.最大子矩阵详解
问题描述 给定一个正整数、负整数和 0 组成的 N M 矩阵,编写代码找出元素总和最大的子矩阵。 返回一个数组 [r1, c1, r2, c2],其中 r1, c1 分别代表子矩阵左上角的行号和列号,r2, c2 分别代表右下角的行号和列号。若有多个满足条件的子矩阵…...
SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...
2025.6.9总结(利与弊)
凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...
【系统架构设计师-2025上半年真题】综合知识-参考答案及部分详解(回忆版)
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20~21题】【第…...
