【MySQL 數據庫】MySQL基本查詢(第二節)

請添加圖片描述

文章目錄

  • 📝Update
    • 🌉 將孫悟空同學的數學成績變更為 80 分
    • 🌉 將曹孟德同學的數學成績變更為60分,語文成績變更為70分
    • 🌉 將總成績倒數前三的3位同學的數學成績加上30分
    • 🌉將所有同學的語文成績更新為原來的2倍
  • 🌠 Delete
    • 🌉 刪除數據
      • 🌉 刪除孫悟空同學的考試成績
      • 🌉 刪除整張表數據
    • 🌉 截斷表
  • 🌠 插入查詢結果
  • 🌠聚合函數
      • 🌉統計班級共有多少同學
      • 🌉統計班級收集的 qq 號有多少
      • 🌉統計本次考試的數學成績分數個數
      • 🌉 統計數學成績總分
      • 🌉統計平均總分
      • 🌉返回英語最高分
      • 🌉返回 > 70 分以上的數學最低分
  • 🌠group by子句的使用
  • 🚩總結


📝Update

【MySQL 數據庫】MySQL基本查詢(第一節)


語法:

UPDATE table_name SET column = expr [, column = expr ...] 
[WHERE ...] [ORDER BY ...] [LIMIT ...]

對查詢到的結果進行列值更新

案例:

🌉 將孫悟空同學的數學成績變更為 80 分

  • 更新值為具體值
  • 查看原數據
SELECT name, math FROM exam_result WHERE name = '孫悟空';| name | math | 
| 孫悟空 | 78|
1 row in set (0.00 sec) 
  • 數據更新
UPDATE exam_result SET math = 80 WHERE name = '孫悟空'; Query OK, 1 row affected (0.04 sec)
Rows matched:1 Changed:1 warnings:0
  • 查看更新后數據
SELECT name,math FROM exam_result WHERE name="孫悟空';| name | math |
|孫悟空 | 80|
1 row in set(0.00 sec)

🌉 將曹孟德同學的數學成績變更為60分,語文成績變更為70分

  • 一次更新多個列
  • 查看原數據
SELECT name,math,chinese FROM exam_result WHERE name="曹孟德';
| name | math | chinese|
| 曹孟德 | 84| 82|
1 row in set (0.00 sec)
  • 數據更新
UPDATE exam_result SET math =60,chinese=70 WHERE name='曹孟德';
Query ok,1 row affected (0.14 sec) Rows matched:1 Changed:1 warnings:0
  • 查看更新后數據
SELECT name,math,chinese FROM exam_result WHERE name="曹孟德';
| name | math | chinese|
| 曹孟德 | 60| 70|
1 row in set (0.00 sec)

🌉 將總成績倒數前三的3位同學的數學成績加上30分

  • 更新值為原值基礎上變更
  • 別名可以在ORDER BY中使用
  • 查看原數據
SELECT name, math,chinese+math+english總分FROM exam_result
ORDER BY總分LIMIT3;
| name | math| 總分 |
| 宋公明 | 65 | 170 |
| 劉玄德 | 85 | 185 |
| 曹孟德 | 60| 197 |
3 rows in set (0.00sec)
  • 數據更新,不支持math+=30這種語法
UPDATE exam_result SET math = math+30
ORDER BY chinese + math+english LIMIT 3;
  • 查看更新后數據
  • 思考:這里還可以按總分升序排序取前3個么?
SELECT name,math,chinese +math+english總分FROM exam_result WHERE name IN('宋公明','劉玄德','曹孟德');
| name | math| 總分 |
| 曹孟德 | 90 | 227 |
| 劉玄德 | 115 | 215 |
| 宋公明 | 95 | 200 |
3 rows in set (0.00 sec)
  • 按總成績排序后查詢結果
SELECT name,math,chinese+math+english總分FROM exam_result
ORDER BY總分LIMIT3;
| name | math| 總分 |
| 宋公明 | 95 | 200 |
| 劉玄德 | 115 | 215 |
| 唐三藏 | 98 | 221 |
3 rows in set (0.00 sec)

🌉將所有同學的語文成績更新為原來的2倍

  • 注意:更新全表的語句慎用!
  • 沒有WHERE子句,則更新全表
  • 查看原數據
SELECT* FROM exam_result;
| id | name | chinese| math | english |
| 1 | 唐三藏 | 67 | 98 | 56 |
| 2 | 孫悟空 | 87 | 80 | 77 |
| 3 | 豬悟能 | 88 | 98 | 90 |
| 4 | 曹孟德 | 70 | 90 | 67 |
| 5 | 劉玄德 | 55 | 115 | 45 |
| 6 | 孫權 | 70| 73 | 78 |
| 7 | 宋公明 | 75| 95| 30 |
7 rows in set(0.00 sec)
  • 數據更新
UPDATE exam_result SET chinese = chinese*2;
Query OK,7rows affected (0.00 sec)
Rows matched:7 changed:7 warnings:0
  • 查看更新后數據
SELECT* FROM exam_result;
| id | name | chinese | math | english |
| 1 | 唐三藏 | 134 | 98 | 56 |
| 2 | 孫悟空 | 174 | 80 | 77 |
| 3 | 豬悟能 | 176 | 98 | 90 |
| 4 | 曹孟德 | 140 | 90 | 67 |
| 5 | 劉玄德 | 110 | 115 | 45 |
| 6 | 孫權 | 140 | 73 | 78 |
| 7 | 宋公明 | 150 | 95| 30 |
7 rows in set (0.00 sec)

🌠 Delete

🌉 刪除數據

語法:

DELETE FROM table_name [WHERE...] [ORDER BY...] [LIMIT...]

案例:

🌉 刪除孫悟空同學的考試成績

  • 查看原數據
SELECT*FROM exam_result WHERE name="孫悟空';
| id | name | chinese | math | english |
| 2 | 孫悟空 | 174 | 80 | 77 |
1 row in set(0.00 sec)
  • 刪除數據
DELETE FROM exam_result WHERE name='孫悟空';
Query OK,1 row affected (0.17sec)
  • 查看刪除結果
SELECT*FROM exam_result WHERE name="孫悟空';
Empty set (0.00 sec)

🌉 刪除整張表數據

  • 注意:刪除整表操作要慎用!
  • 準備測試表
CREATE TABLE for_delete ( id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR (20);Query OK,0 rows affected (0.16 sec)
);
  • 插入測試數據
INSERT INTO for_delete (name) VALUES ('A'),('B'),("c");Query OK,3 rows affected (1.05 sec) Records:3Duplicates:0 warnings:0
  • 查看測試數據
SELECT* FROM for_delete;| id | name |
| 1 | A |
| 2 | B |
| 3 | C |
3 rows in set (0.00 sec)
  • 刪除整表數據
DELETE FROM for_delete;Query OK,3rows affected (0.00 sec)
  • 查看刪除結果
SELECT * FROM for_delete;Empty set (0.00 sec)
  • 再插入一條數據,自增id在原值上增長
INSERT INTO for_delete (name) VALUES ("'D");
Query OK,1 row affected (0.00 sec)
  • 查看數據
SELECT* FROM for_delete;| id | name |
| 4 | D |
1 row in set(0.00 sec)
  • 查看表結構,會有AUTO_INCREMENT項
SHOW CREATE TABLE for_delete\G*************************** 1. row ***************************
Table: for_delete
create Table: CREATE TABLE for_delete'(
idint(11)NOT NULL AUTO_NCREMENT, "name' varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

🌉 截斷表

語法:

TRUNCATE [TABLE] table_name

注意:
這個操作慎用

  1. 只能對整表操作,不能像 DELETE 一樣針對部分數據操作;
  2. 實際上 MySQL 不對數據操作,所以比 DELETE 更快,但是TRUNCATE在刪除數據的時候,并不經過真正的事物,所以無法回滾;
  3. 會重置 AUTO_INCREMENT 項

案例:

  • 準備測試表
CREATE TABLE for_truncate ( 
id INT PRIMARY KEY AUTO_INCREMENT, 
name VARCHAR(20) 
); 
Query OK, 0 rows affected (0.16 sec)
  • 插入測試數據
INSERT INTO for_truncate (name) VALUES ('A'), ('B'), ('C'); Query OK, 3 rows affected (1.05 sec)
Records: 3 Duplicates: 0 Warnings: 0
  • 查看測試數據
SELECT * FROM for_truncate; 
| id | name | 
| 1 | A | 
| 2 | B | 
| 3 | C | 
3 rows in set (0.00 sec)
  • 截斷整表數據,注意影響行數是 0,所以實際上沒有對數據真正操作
TRUNCATE for_truncate; 
Query OK, 0 rows affected (0.10 sec)
  • 查看刪除結果
SELECT * FROM for_truncate; 
Empty set (0.00 sec)
  • 再插入一條數據,自增 id 在重新增長
INSERT INTO for_truncate (name) VALUES ('D'); 
Query OK, 1 row affected (0.00 sec)
  • 查看數據
SELECT * FROM for_truncate; 
| id | name | 
| 1 | D | 
1 row in set (0.00 sec)
  • 查看表結構,會有 AUTO_INCREMENT=2 項
SHOW CREATE TABLE for_truncate\G 
*************************** 1. row ***************************
Table: for_truncate
Create Table: CREATE TABLE `for_truncate` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

🌠 插入查詢結果

語法:

INSERT INTO table_name [(column [, column ...])] SELECT ...

案例:
刪除表中的重復記錄,重復的數據只能有一份

  • 創建原數據表
CREATE TABLE duplicate_table (id int, name varchar(20)); 
Query OK, 0 rows affected (0.01 sec)
  • 插入測試數據
INSERT INTO duplicate_table VALUES 
(100, 'aaa'), 
(100, 'aaa'), 
(200, 'bbb'), 
(200, 'bbb'), 
(200, 'bbb'), 
(300, 'ccc'); 
Query OK, 6 rows affected (0.00 sec)
Records: 6 Duplicates: 0 Warnings: 0

思路:

  • 創建一張空表 no_duplicate_table,結構和 duplicate_table 一樣
CREATE TABLE no_duplicate_table LIKE duplicate_table; 
  • 將 duplicate_table 的去重數據插入到 no_duplicate_table
INSERT INTO no_duplicate_table SELECT DISTINCT * FROM duplicate_table;Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
  • 通過重命名表,實現原子的去重操作
RENAME TABLE duplicate_table TO old_duplicate_table, 
no_duplicate_table TO duplicate_table; 

Query OK, 0 rows affected (0.00 sec)

  • 查看最終結果
SELECT * FROM duplicate_table; | id | name | 
| 100 | aaa | 
| 200 | bbb | 
| 300 | ccc | 
3 rows in set (0.00 sec)

🌠聚合函數

函數說明
COUNT([DISTINCT] expr)返回查詢到的數據的 數量
SUM([DISTINCT] expr)返回查詢到的數據的 總和,不是數字沒有意義
AVG([DISTINCT] expr)返回查詢到的數據的 平均值,不是數字沒有意義
MAX([DISTINCT] expr)返回查詢到的數據的 最大值,不是數字沒有意義
MIN([DISTINCT] expr)返回查詢到的數據的 最小值,不是數字沒有意義

案例:

🌉統計班級共有多少同學

  • 使用 * 做統計,不受 NULL 影響
SELECT COUNT(*) FROM students; | COUNT(*) | 
| 4 |
1 row in set (0.00 sec)
  • 使用表達式做統計
SELECT COUNT(1) FROM students;| COUNT(1) | 
| 4 |
1 row in set (0.00 sec)

🌉統計班級收集的 qq 號有多少

  • NULL 不會計入結果
SELECT COUNT(qq) FROM students; | COUNT(qq) | 
| 1 |
1 row in set (0.00 sec)

🌉統計本次考試的數學成績分數個數

  • COUNT(math) 統計的是全部成績
SELECT COUNT(math) FROM exam_result; | COUNT(math) | 
| 6 |
1 row in set (0.00 sec)
  • COUNT(DISTINCT math) 統計的是去重成績數量
SELECT COUNT(DISTINCT math) FROM exam_result; | COUNT(math) | 
| 6 |
1 row in set (0.00 sec)

🌉 統計數學成績總分

SELECT SUM(math) FROM exam_result; | SUM(math) | 
| 569 |
1 row in set (0.00 sec)
  • 不及格 < 60 的總分,沒有結果,返回 NULL
SELECT SUM(math) FROM exam_result WHERE math < 60;| SUM(math) | 
| NULL | 
1 row in set (0.00 sec)

🌉統計平均總分

SELECT AVG(chinese + math + english) 平均總分 FROM exam_result; 
| 平均總分 |
| 297.5 |

🌉返回英語最高分

SELECT MAX(english) FROM exam_result; | MAX(english) | 
| 90 |
1 row in set (0.00 sec)

🌉返回 > 70 分以上的數學最低分

SELECT MIN(math) FROM exam_result WHERE math > 70; | MIN(math) | 
| 73 |
1 row in set (0.00 sec)

🌠group by子句的使用

  1. 語法結構
    SELECT 分組列1, 分組列2, 聚合函數(統計列)
    FROM 表名
    [WHERE 篩選條件]  -- 分組前篩選行
    GROUP BY 分組列1, 分組列2  -- 按列分組(與SELECT中分組列順序一致)
    [HAVING 分組篩選條件]  -- 分組后篩選組
    [ORDER BY 排序列];  -- 對分組結果排序
    

在select中使用group by 子句可以對指定列進行分組查詢

select column1, column2, .. from table group by column;
  1. 核心規則
    • SELECT 后出現的非聚合函數列,必須全部出現在 GROUP BY 子句中(否則會報錯,因為無法確定非分組列的取值)。
    • GROUP BY 可以按多個列分組(先按第一列分組,同一組內再按第二列細分)。

2、經典案例解析(基于 EMP 員工表)
假設 EMP 表結構如下(簡化版):

empnoenamejobsaldeptno
1001張三經理500010
1002李四職員200010
1003王五職員180010
1004趙六經理450020
1005錢七職員220020

案例 1:按單個列分組(部門)
需求:顯示每個部門的平均工資、最高工資和員工人數。

SELECT deptno AS 部門編號,AVG(sal) AS 平均工資,MAX(sal) AS 最高工資,COUNT(*) AS 員工人數  -- 統計每個部門的人數
FROM EMP
GROUP BY deptno;  -- 按部門編號分組

結果

部門編號平均工資最高工資員工人數
102933.3350003
203350.0045002

案例 2:按多個列分組(部門+崗位)
需求:顯示每個部門中,每種崗位的平均工資和最低工資。

SELECT deptno AS 部門編號,job AS 崗位,AVG(sal) AS 平均工資,MIN(sal) AS 最低工資
FROM EMP
GROUP BY deptno, job;  -- 先按部門分組,同部門內再按崗位分組

結果

部門編號崗位平均工資最低工資
10經理5000.005000
10職員1900.001800
20經理4500.004500
20職員2200.002200

案例 3:GROUP BY + HAVING 篩選分組結果
HAVING 用于對分組后的結果進行篩選(類似 WHERE,但 WHERE 是分組前篩選行,HAVING 是分組后篩選組)。

需求:顯示平均工資低于 3000 的部門及其平均工資。

SELECT deptno AS 部門編號,AVG(sal) AS 平均工資
FROM EMP
GROUP BY deptno
HAVING 平均工資 < 3000;  -- 篩選分組后的平均工資

結果

部門編號平均工資
102933.33

案例 4:GROUP BY + WHERE + HAVING 組合使用
需求:排除工資低于 1500 的員工后,統計每個部門的平均工資,且只顯示平均工資高于 2500 的部門。

SELECT deptno AS 部門編號,AVG(sal) AS 平均工資
FROM EMP
WHERE sal >= 1500  -- 先排除工資<1500的員工(本案例中無此類員工,僅作示例)
GROUP BY deptno
HAVING 平均工資 > 2500;  -- 再篩選平均工資>2500的部門

結果

部門編號平均工資
102933.33
203350.00

三、常見錯誤與注意事項

  1. SELECT 中的非聚合列必須在 GROUP BY
    錯誤示例:

    SELECT deptno, job, AVG(sal) FROM EMP GROUP BY deptno;  -- 錯誤!job未在GROUP BY中
    

    原因:分組后每個部門包含多個崗位,job 列的值不唯一,無法確定顯示哪一個。

  2. HAVING 可以使用別名,WHERE 不能
    正確:HAVING 平均工資 < 3000平均工資AVG(sal) 的別名)
    錯誤:WHERE 平均工資 < 3000WHERE 不支持聚合函數別名)

  3. GROUP BY 的分組順序不影響結果,但建議與 SELECT 中分組列順序一致
    例如 GROUP BY deptno, jobGROUP BY job, deptno 分組邏輯不同,結果也不同。


🚩總結

點擊刷題----->牛客刷題SQL篇

面試題:SQL查詢中各個關鍵字的執行先后順序 from > on> join > where > group by > with > having > select > distinct > order by > limit

請添加圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/90686.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/90686.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/90686.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Axios 響應攔截器

1.定義&#xff1a;響應攔截器&#xff08;Response Interceptor&#xff09;是一個可以在 axios 接收到服務器響應后&#xff0c;響應數據交給 .then() 處理之前執行的函數。你可以用它來統一處理響應數據&#xff0c;進行錯誤處理&#xff0c;或者對返回的數據做格式化和轉換…

k8s的nodeport和ingress

1.流量轉發圖targerport轉發到實際的容器端口containerPort&#xff08;后端端口&#xff09;nodeportingress2.配置場景總結字段作用對象必填示例值何時配置containerPort容器否80需明確記錄容器端口時&#xff08;推薦&#xff09;targetPortPod是80定義 Service 轉發規則時p…

VLA:自動駕駛的“新大腦”?

&#x1f525; 什么是 VLA&#xff1f;為什么突然火了&#xff1f;在自動駕駛圈子里&#xff0c;最近一個詞特別火&#xff1a;VLA。它不是某個新車的型號&#xff0c;也不是某家公司的新品牌&#xff0c;而是一種全新的智能架構&#xff0c;被稱為“自動駕駛的大腦2.0”。&…

Linux操作系統之線程(八):信號量sem

前言&#xff1a;大家好啊&#xff0c;我們上一篇文章已經講解了關于線程同步的一種辦法&#xff1a;運用條件變量cond。今天&#xff0c;我們就來學習一下線程同步的另外一種方法&#xff0c;信號量&#xff01;&#xff01;信號量呢有System V 信號量與POSIX 信號量&#xff…

【RocketMQ】一分鐘了解RocketMQ

MQ是什么 MQ全稱為Message Queue&#xff0c;即消息隊列 &#xff0c;是一種提供消息隊列服務的中間件&#xff0c;也稱為消息中間件&#xff0c;是一套提供了消息生 產、存儲、消費全過程的軟件系統&#xff0c;遵循FIFO原則。 MQ的好處有哪些 異步解耦 最常見的一個場景是…

01 01 01 第一部分 C++編程知識 C++入門 第一個C++程序

第一部分 C編程知識第一章 C入門 —— 第一個C程序一、第一個C程序代碼展示//寫一個C程序&#xff0c;實現在屏幕上打印 “hello world” #include <iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; }二、…

進制定義與轉換詳解

文章目錄&#x1f4d8; 進制定義與轉換詳解一、進制的含義二、常見進制介紹1. 十進制&#xff08;Decimal&#xff0c;Base-10&#xff09;2. 二進制&#xff08;Binary&#xff0c;Base-2&#xff09;3. 八進制&#xff08;Octal&#xff0c;Base-8&#xff09;4. 十六進制&am…

【安卓筆記】用MVC、MVP、MVVM來實現井字棋案例

0. 環境&#xff1a;電腦&#xff1a;Windows10Android Studio: 2024.3.2編程語言: JavaGradle version&#xff1a;8.11.1Compile Sdk Version&#xff1a;35Java 版本&#xff1a;Java111. 首先、簡單實現井字棋的功能。功能拆解&#xff1a;1. 棋盤為3x32. 點擊棋盤button&a…

【洛谷】單向鏈表、隊列安排、約瑟夫問題(list相關算法題)

文章目錄單向鏈表題目描述題目解析代碼隊列安排題目描述題目解析代碼約瑟夫問題題目描述題目解析代碼單向鏈表 題目描述 題目解析 這道題因為有大量的任意位置插入刪除&#xff0c;所以肯定不能用數組&#xff0c;用鏈表是最合適的&#xff0c;而在算法競賽通常都用靜態鏈表&a…

當人機交互邁向新紀元:腦機接口與AR/VR/MR的狂飆之路

從手機到 “頭盔”&#xff1a;交互終端的變革猜想??在當今數字化時代&#xff0c;智能手機無疑是我們生活中不可或缺的一部分。它集通訊、娛樂、辦公等多種功能于一身&#xff0c;成為了人們與外界交互的主要窗口。然而&#xff0c;隨著科技的飛速發展&#xff0c;智能手機作…

InfluxDB HTTP API 接口調用詳解(二)

實際應用案例演示 1. 數據寫入案例 假設在一個物聯網設備數據采集場景中&#xff0c;有多個傳感器設備持續采集環境的溫度和濕度數據。我們以 Python 語言為例&#xff0c;使用requests庫來調用 InfluxDB 的 Write 接口將數據寫入 InfluxDB。 首先&#xff0c;確保已經安裝了…

世運會線上知識競賽答題pk小程序怎么做

隨著2025年成都世界運動會的來臨&#xff0c;越來越多的企事業單位組織員工進行線上知識競賽&#xff0c;那么答題PK小程序該怎么做&#xff0c;接下來我們來一一分析&#xff1a; 世運會線上知識競賽答題pk小程序怎么做一、答題功能&#xff1a;支持多種題型&#xff0c;如選擇…

Java畢業設計 | 基于微信小程序的家校互動作業管理系統(Spring Boot+Vue.js+uni-app+AI,附源碼+文檔)

Java畢業設計 | 基于微信小程序的家校互動作業管理系統&#xff08;Spring BootVue.jsuni-app&#xff0c;附源碼文檔&#xff09;&#x1f3af; 畢業設計私人教練 專注計算機畢設輔導第 6 年&#xff0c;累計 1v1 帶飛 800 同學順利通關。從選題、開題、代碼、論文到答辯&…

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服務器

CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服務器 一、前言 由于 Jellyfin 的 GPL 協議和 Intel 的 media-driver (iHD) Linux 驅動&#xff08;部分開源&#xff09;在協議上不兼容的緣故&#xff0c;Jellyfin 官方的 Docker 鏡像&#xff1a;jellyfin/jellyfin 并不包含 …

PyTorch武俠演義 第一卷:初入江湖 第4章:損失玉佩的評分風波

第一卷&#xff1a;初入江湖 第4章&#xff1a;損失玉佩的評分風波比武開幕 晨鐘響徹山谷&#xff0c;PyTorch派三年一度的"模型比武大會"正式開始。各分舵弟子列隊入場&#xff0c;林小碼跟在Tensor大師身后&#xff0c;眼睛瞪得溜圓——只見&#xff1a; "卷積…

HttpServletRequestWrapper存儲Request

HTTP請求的輸入流只能被讀取一次&#xff0c;再想獲取就獲取不到了&#xff0c;那有什么方法可以緩存呢&#xff0c;我們可以自定義一個HttpServletRequest&#xff0c;或者是想在請求參數中統一添加或刪除參數也可以使用此類進行改造&#xff0c;然后通過過濾器繼續向下流轉。…

算法:數組part02: 209. 長度最小的子數組 + 59.螺旋矩陣II + 代碼隨想錄補充58.區間和 + 44. 開發商購買土地

算法&#xff1a;數組part02: 209. 長度最小的子數組 59.螺旋矩陣II 代碼隨想錄補充58.區間和 44. 開發商購買土地 209. 長度最小的子數組題目&#xff1a;https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 文章講解&#xff1a;https://programmercarl…

Spring 核心知識點梳理 1

目錄 Spring Spring是什么&#xff1f; Spring中重要的模塊 Spring中最重要的就是IOC(控制反轉)和AOP(面向切面編程) 什么是IOC DI和IOC之間的區別 為什么要使用IOC呢&#xff1f; IOC的實現機制 什么是AOP Aop的核心概念 AOP的環繞方式 AOP發生的時期 AOP和OOP的…

Kafka運維實戰 07 - kafka 三節點集群部署(混合模式)(KRaft 版本3.7.0)

目錄環境準備主機準備補充說明JDK安裝 (三臺主機分別執行)下載jdkjdk安裝kafka 部署(三臺主機分別執行)kafka 下載kafka 版本號結構解析kafka 安裝下載和解壓安裝包(3臺主機都執行)配置 server.properties &#xff08;KRaft 模式&#xff09;192.168.37.10192.168.37.11192.16…

linux內核與GNU之間的聯系和區別

要理解操作系統&#xff08;如 GNU/Linux&#xff09;的組成&#xff0c;需要明確 內核&#xff08;Kernel&#xff09; 和 GNU 工具鏈 各自的功能&#xff0c;以及它們如何協作構成完整的操作系統。以下是詳細分析&#xff1a;1. 內核&#xff08;Kernel&#xff09;的功能 內…