【 MYSQL | 基礎篇 四大SQL語句 】資料位于文章末尾

摘要:本文先介紹數據庫 SQL 核心概念,接著闡述 SQL 通用語法DDL、DML、DQL、DCL 四大分類,隨后詳細講解各類語句操作,包括 DDL 的數據庫與表操作及數據類型,DML 的數據增刪改,DQL 的查詢語法與功能,DCL 的用戶管理和權限控制,助力掌握 MySQL 基礎操作。

思維導圖

1. MySQL 概述

1.1 數據庫相關概念

本部分將講解三個核心概念:數據庫、數據庫管理系統、SQL。

名稱全稱簡稱
數據庫存儲數據的倉庫,數據是有組織的進行存儲DataBase
數據庫管理系統操縱和管理數據庫的大型軟件DataBase Management System?
SQL操作關系型數據庫的編程語言,定義了一套操作關系型數據庫統一標準Structured Query Language?

2. SQL語句

全稱 Structured Query Language(結構化查詢語言),是操作關系型數據庫的編程語言,定義了一套操作關系型數據庫的統一標準。無論使用 Oracle、SQL Server 還是 MySQL 等關系型數據庫,均可以通過 SQL 語言進行統一操作,因此掌握 SQL 可靈活適配不同關系型數據庫場景。

2.1 SQL 通用語法

在學習具體 SQL 語句前,需先了解 SQL 語言的通用規則

  1. SQL 語句可單行或多行書寫,必須以分號結尾

  2. 可使用空格 / 縮進來增強語句可讀性(不影響執行結果);

  3. MySQL 中的 SQL 語句不區分大小寫,建議關鍵字使用大寫,提高辨識度;

2.2 SQL 分類

根據功能,SQL 語句主要分為四類:DDL、DML、DQL、DCL,具體說明如下:

分類說明
DDL用于定義數據庫對象(數據庫、表、字段),如創建 / 刪除數據庫、創建 / 修改表結構等
DML用于對數據庫表中的數據進行增、刪、改操作
DQL用于查詢數據庫表中的記錄,是業務中使用頻次最高的 SQL 類型
DCL用于管理數據庫用戶、控制數據庫訪問權限,如創建用戶、授予 / 撤銷權限等

2.3 DDL(數據定義語言)

DDL 主要用于操作數據庫、表、字段等 “結構級” 對象,核心是 “定義結構”,不涉及具體數據。

2.3.1 數據庫操作
1. 查詢所有數據庫
show databases;

執行結果會顯示當前 MySQL 服務器中所有已創建的數據庫,例如系統默認數據庫 information_schemamysqlsys 等。


2. 查詢當前數據庫
select database();

用于確認當前所處/正在使用的數據庫上下文(若未切換數據庫,返回 NULL)。


3. 創建數據庫
create database [ if not exists ] 數據庫名 [ default charset 字符集 ] [ collate 排序規則 ];

易錯點:數據庫名稱在【 if not exists 】后面

  • if not exists:可選參數,避免重復創建同名數據庫導致報錯(若數據庫已存在則不執行);

  • default charset:可選參數,指定數據庫默認字符集;

  • collate:可選參數,指定字符排序規則(通常默認跟隨字符集,無需手動設置)。


4. 刪除數據庫
drop database [ if exists ] 數據庫名;
  • if exists:可選參數,避免刪除不存在的數據庫導致報錯(若數據庫不存在則不執行操作)。


5. 切換數據庫
use 數據庫名;

操作某數據庫下的表前,必須先通過 use 切換到該數據庫上下文。

2.3.2 表操作
2.3.2.1 表操作 - 查詢與創建
1. 查詢當前數據庫所有表
show tables;

需先通過 use 切換到目標數據庫,否則無法查詢表。


2. 查看指定表結構
desc 表名;

返回表的字段名、數據類型、是否允許為 NULL、主鍵 / 外鍵、默認值等結構信息。


3. 查詢指定表的建表語句
show create table 表名;

返回創建該表的完整 SQL 語句,包含默認存儲引擎(如 InnoDB)、字符集等隱式配置。


4. 創建表結構
CREATE TABLE 表名(
?字段1 字段1類型 [ COMMENT 字段1注釋 ],
?字段2 字段2類型 [ COMMENT 字段2注釋 ],
?...
?字段n 字段n類型 [ COMMENT 字段n注釋 ]
?
) [ COMMENT 表注釋 ];
  • 字段定義格式:字段名 類型 [約束] [注釋]

  • 最后一個字段后不能加逗號,否則會語法報錯;

  • COMMENT:可選參數,用于添加字段 / 表的說明,提高可讀性。

2.3.2.2 表操作 - 數據類型

MySQL 中的數據類型主要分為三類:數值類型字符串類型日期時間類型,需根據業務場景選擇合適的類型(如年齡用 TINYINT,手機號用 CHAR(11))。

1. 數值類型

適用于存儲整數、小數等數值數據,核心是 “節省存儲空間” 和 “保證精度”。

類型大小有符號(SIGNED)范圍無符號(UNSIGNED)范圍描述
TINYINT1byte(-128, 127)(0, 255)小整數值(如年齡、狀態碼)
SMALLINT2bytes(-32768, 32767)(0, 65535)中整數值(如數量較少的 ID)
MEDIUMINT3bytes(-8388608, 8388607)(0, 16777215)大整數值
INT/INTEGER4bytes(-2147483648, 2147483647)(0, 4294967295)常用大整數值(如用戶 ID、訂單 ID)
BIGINT8bytes(-2^63, 2^63-1)(0, 2^64-1)極大整數值(如海量數據的 ID)
FLOAT4bytes(-3.4E+38, 3.4E+38)0 和 (1.2E-38, 3.4E+38)單精度浮點數(精度較低,不適合金額)
DOUBLE8bytes(-1.8E+308, 1.8E+308)0 和 (2.2E-308, 1.8E+308)雙精度浮點數(精度較高,仍不適合金額)
DECIMAL可變依賴 M(精度)和 D(標度)依賴 M(精度)和 D(標度)定點小數(精確存儲,適合金額、分數等)

使用建議

  • 年齡:TINYINT UNSIGNED(無負數,范圍 0-255 足夠);

  • 分數(如滿分 100,1 位小數):DOUBLE(4,1)(總長度 4,小數位 1,范圍 0.0-100.0);

  • 金額(如保留 2 位小數):DECIMAL(10,2)(避免浮點數精度丟失)。

2. 字符串類型

適用于存儲文本、符號等字符數據,核心是 “區分定長與變長”。

類型大小描述
CHAR0-255 bytes定長字符串(指定長度后,無論實際值多長,均占用固定字節)
VARCHAR0-65535 bytes變長字符串(僅占用實際值長度 + 1-2 字節的長度標識,節省空間)
TINYTEXT0-255 bytes短文本(適合存儲少量文字,如備注)
TEXT0-65535 bytes長文本(適合存儲文章、評論等)
MEDIUMTEXT0-16777215 bytes中等長度文本
LONGTEXT0-4294967295 bytes極大文本(適合存儲超大文本,如日志)
TINYBLOB/BLOB/MEDIUMBLOB/LONGBLOB同對應 TEXT 類型二進制數據(如圖片、文件,不推薦直接存儲,建議存文件路徑)

CHAR 與 VARCHAR 區別

  • CHAR(10):存儲 “abc” 時,仍占用 10 字節(空格填充),性能高;

  • VARCHAR(10):存儲 “abc” 時,僅占用 3 + 1 = 4 字節(1 字節標識長度),節省空間。

使用建議

  • 用戶名(長度不定,最長 50):VARCHAR(50)

  • 性別(固定值 “男 / 女”):CHAR(1)

  • 手機號(固定 11 位):CHAR(11)

3. 日期時間類型

適用于存儲日期、時間或混合時間數據,核心是 “匹配業務場景精度”。

類型大小范圍格式描述
DATE3bytes1000-01-01 至 9999-12-31YYYY-MM-DD僅日期(如生日)
TIME3bytes-838:59:59 至 838:59:59HH:MM:SS僅時間(如打卡時間)
YEAR1byte1901 至 2155YYYY僅年份(如畢業年份)
DATETIME8bytes1000-01-01 00:00:00 至 9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS日期 + 時間(如訂單創建時間,不依賴時區)
TIMESTAMP4bytes1970-01-01 00:00:01 至 2038-01-19 03:14:07YYYY-MM-DD HH:MM:SS日期 + 時間(依賴時區,自動更新,適合記錄 “最后修改時間”)

使用建議

  • 生日:DATE

  • 訂單創建時間:DATETIME

  • 數據最后修改時間:TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(自動更新)。

2.3.2.3 表操作 - 修改(修改表結構)
1. 添加字段
ALTER TABLE 表名 ADD 字段名 類型 (長度) [ COMMENT 注釋 ] [ 約束 ];

2. 修改數據類型
ALTER TABLE 表名 MODIFY 字段名 新數據類型 (長度);

3. 修改字段名和數據類型
ALTER TABLE 表名 CHANGE 舊字段名 新字段名 類型 (長度) [ COMMENT 注釋 ] [ 約束 ];

可同時修改字段名和類型,需注意新舊字段名的順序。


4. 刪除字段
ALTER TABLE 表名 DROP 字段名;

5. 修改表名
ALTER TABLE 表名 RENAME TO 新表名;

核心:ALTER??TABLE? 表名? ?[ 操作 ]? 字段名???類型?

2.3.2.4 表操作 - 刪除
1. 刪除表
DROP TABLE [ IF EXISTS ] 表名;

if exists:避免刪除不存在的表導致報錯。

2. 刪除表并重新創建(清空數據 + 保留結構)
TRUNCATE TABLE 表名;
  • 效果:刪除表中所有數據,但保留表結構(相當于 “清空表”);

  • 注意:數據無法恢復,且自增字段會重置為初始值(如 1)。

2.5 DML(數據操作語言)

DML 用于對表中的數據進行 “增、刪、改” 操作,核心是 “操作數據”,不改變表結構。

2.5.1 添加數據(INSERT)
1. 給指定字段添加數據
INSERT INTO 表名 (字段名1, 字段名2, ...) VALUES (值1, 值2, ...);
  • 字段名與值必須一一對應(順序、數量、類型需匹配);

  • 字符串和日期類型的值必須用單引號包裹;

  • 字段值需符合表結構約束。

2. 給全部字段添加數據(省略字段名)
INSERT INTO 表名 VALUES (值1, 值2, ...);
  • 需按表中字段的默認順序傳入所有字段的值,不推薦(表結構變更后易報錯)。

3. 批量添加數據
-- 方式1:指定字段批量插入
?
INSERT INTO 表名 (字段名1, 字段名2, ...)
?
VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
?
-- 方式2:全部字段批量插入
?
INSERT INTO 表名
?
VALUES (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
注意事項
  1. 字段順序與值順序必須一致;

  2. 字符串、日期類型必須用單引號包裹;

  3. 插入的值需符合字段約束(如長度、范圍、非空等),否則報錯。

2.5.2 修改數據(UPDATE)
UPDATE 表名 SET 字段名1 = 值1, 字段名2 = 值2, ... [ WHERE 條件 ];

WHERE:可選參數,用于指定修改的范圍(若省?WHERE,則修改表中所有數據,謹慎)。

注意事項
  1. WHERE 條件會修改全表數據,生產環境中需嚴格校驗條件;

  2. 可同時修改多個字段,用逗號分隔字段賦值表達式。

2.5.3 刪除數據(DELETE)
DELETE FROM 表名 [ WHERE 條件 ];
  • WHERE:可選參數,指定刪除的范圍(若省略 WHERE,則刪除表中所有數據!)。

注意事項
  1. WHERE 條件會刪除全表數據,且數據無法通過 ROLLBACK 恢復(除非開啟事務);

  2. DELETE 只能刪除行數據,不能刪除單個字段的值(需用 UPDATE 將字段設為 NULL);

  3. DataGrip 等工具會對刪除全表操作進行二次確認,避免誤操作。

2.6 DQL(數據查詢語言)

DQL 用于查詢表中的記錄,是業務中最常用的 SQL 類型,支持條件篩選、排序、分組、分頁等復雜操作。

2.6.1 數據準備

先創建 emp 員工表并插入測試數據,后續案例基于該表展開。

2.6.2 DQL 基本語法

完整 DQL 語法結構(按編寫順序):

SELECT
?
字段列表  -- 要查詢的字段(如 name, age 或 * 表示所有字段)
?
FROM
?
表名列表  -- 要查詢的表(單表查詢僅需寫表名)
?
WHERE
?
條件列表  -- 行級篩選條件(如 age > 20)
?
GROUP BY
?
分組字段列表  -- 按指定字段分組(如按 gender 分組)
?
HAVING
?
分組后條件列表  -- 分組后的篩選條件(如 count(*) > 5)
?
ORDER BY
?
排序字段列表  -- 按指定字段排序(如 age ASC 升序)
?
LIMIT
?
分頁參數  -- 分頁查詢(如 LIMIT 0, 10 表示第 1 頁,10 條/頁)

執行順序(與編寫順序不同,需重點理解):

FROMWHEREGROUP BYHAVINGSELECTORDER BYLIMIT

2.6.3 基礎查詢(無篩選條件)
1. 查詢多個指定字段
SELECT 字段1, 字段2, ... FROM 表名;

2. 查詢所有字段(不推薦)
SELECT * FROM 表名;

缺點:不直觀、影響效率(若表字段多,會冗余返回不必要的字段),生產環境建議明確指定字段。


3. 字段設置別名
-- 方式1:使用 AS(推薦,可讀性高)
?
SELECT 字段1 AS 別名1, 字段2 AS 別名2 FROM 表名;
?
-- 方式2:省略 AS(簡潔)
?
SELECT 字段1 別名1, 字段2 別名2 FROM 表名;

別名含空格或特殊字符時,需用單引號包裹。


4. 去除重復記錄
SELECT DISTINCT 字段列表 FROM 表名;

僅當所有指定字段的值完全相同時,才會被視為重復記錄并去重。

2.6.4 條件查詢(WHERE)

通過 WHERE 子句篩選符合條件的行數據,支持比較運算符和邏輯運算符。

1. 常用比較運算符
比較運算符功能
>大于
>=大于等于
<小于
<=小于等于
=等于
<>!=不等于
BETWEEN ... AND ...在指定范圍(含邊界)
IN(...)在指定集合中
LIKE 占位符模糊匹配
IS NULL為空
IS NOT NULL不為空
  • 模糊匹配占位符:

 ? `_`:匹配單個任意字符;
?`%`:匹配 0 個或多個任意字符。
2. 常用邏輯運算符
邏輯運算符功能
AND&&并且(多個條件同時成立)
OR 或 ``
NOT!非(否定條件)

2.6.5 聚合函數

聚合函數用于對一列數據進行 “縱向計算”(將列數據視為一個整體),返回單個結果值。

1. 常用聚合函數
函數功能
count(字段)統計非 NULL 值的記錄數
max(字段)求該列的最大值
min(字段)求該列的最小值
avg(字段)求該列的平均值
sum(字段)求該列的總和

注意:NULL 值不參與任何聚合函數計算。

2. 語法
SELECT 聚合函數(字段列表) FROM 表名 [ WHERE 條件 ];

2.6.6 分組查詢(GROUP BY)

通過 GROUP BY 按指定字段分組,將相同值的行歸為一組,然后對每組進行聚合計算(如統計每組人數、平均年齡)。

1. 語法
SELECT 分組字段, 聚合函數(字段) FROM 表名 [ WHERE 條件 ] GROUP BY 分組字段 [ HAVING 分組后條件 ];
  • WHERE:分組的篩選條件(篩選行數據,不滿足條件的行不參與分組);

  • HAVING:分組的篩選條件(篩選分組結果,不滿足條件的分組不顯示)。

注意:前后的第一個查詢字段必須相同,都為分組字段,第二個是聚合函數才有意義

2. WHERE 與 HAVING 的區別
對比維度WHEREHAVING
執行時機分組前分組后
作用對象行數據分組結果
支持的條件不能使用聚合函數可以使用聚合函數
3. 注意事項
  1. 分組后查詢的字段只能是 “分組字段” 或 “聚合函數”,查詢其他字段無意義(結果不可控);

  2. 多字段分組時,按字段順序依次分組(先按第一個字段分組,同組內再按第二個字段分組)。

2.6.7 排序查詢(ORDER BY)

通過 ORDER BY 按指定字段對查詢結果排序,支持升序和降序。

1. 語法
SELECT 字段列表 FROM 表名 [ WHERE 條件 ] [ GROUP BY 分組字段 ] [ HAVING 分組后條件 ] ORDER BY 字段1 排序方式1, 字段2 排序方式2 ...;
  • 排序方式:

 ? `ASC`:升序(默認,可省略);
?`DESC`:降序;

多字段排序:先按字段 1 排序,字段 1 值相同的行再按字段 2 排序。

2.6.8 分頁查詢(LIMIT)

通過 LIMIT 實現分頁查詢(避免一次性返回大量數據,優化性能),僅 MySQL 支持(其他數據庫如 Oracle 用 ROWNUM)。

1. 語法
SELECT 字段列表 FROM 表名 [ 其他子句 ] LIMIT 起始索引, 查詢記錄數;
  • 起始索引:從 0 開始(表示第 1 條數據的索引為 0);

  • 計算公式:起始索引 = (頁碼 - 1) * 每頁記錄數

  • 若查詢第 1 頁數據,起始索引可省略。

2.6.9 DQL 執行順序驗證

通過別名測試可確認 DQL 執行順序:

FROMWHEREGROUP BYHAVINGSELECTORDER BYLIMIT

2.7 DCL(數據控制語言)

DCL 用于管理數據庫用戶和控制訪問權限,主要由 DBA(數據庫管理員)操作,開發人員使用較少。

2.7.1 管理用戶
1. 查詢用戶

MySQL 中所有用戶信息存儲在系統數據庫 mysqluser 表中:

select * from mysql.user;
  • 核心字段:

 ? `Host`:用戶可訪問的主機(`localhost` 表示僅本地訪問,`%` 表示任意主機訪問);
?`User`:用戶名;
?`authentication_string`:用戶密碼(加密存儲)。
  • 注意:Host + User 唯一標識一個用戶(同一用戶名,不同主機視為不同用戶)。


2. 創建用戶
CREATE USER '用戶名'@'主機名' IDENTIFIED BY '密碼';
  • 主機名:

  `localhost`:僅允許本地(當前服務器)訪問;
?`%`:允許任意主機訪問(遠程訪問需開放 MySQL 端口 3306);

密碼:長度至少 4 位(MySQL 8.0+ 默認密碼策略較嚴格,需包含字母、數字、符號)。


3. 修改用戶密碼
ALTER USER '用戶名'@'主機名' IDENTIFIED WITH mysql\_native\_password BY '新密碼';

mysql_native_password:指定密碼加密方式(兼容舊版本客戶端,MySQL 8.0+ 推薦)。


4. 刪除用戶
DROP USER '用戶名'@'主機名';
注意事項
  1. 必須指定 主機名(即使是 %),否則無法準確匹配用戶;

  2. 開發環境中避免創建 % 主機的用戶(安全風險),建議僅允許指定 IP 訪問。

2.7.2 權限控制

MySQL 定義了多種權限,常用權限如下:

權限說明
ALLALL PRIVILEGES所有權限
SELECT查詢數據權限(僅 DQL)
INSERT插入數據權限(僅 DML)
UPDATE修改數據權限(僅 DML)
DELETE刪除數據權限(僅 DML)
ALTER修改表結構權限(僅 DDL)
DROP刪除數據庫 / 表 / 視圖權限(僅 DDL)
CREATE創建數據庫 / 表權限(僅 DDL)
1. 查詢用戶權限
SHOW GRANTS FOR '用戶名'@'主機名';

2. 授予權限
GRANT 權限列表 ON 數據庫名.表名 TO '用戶名'@'主機名';
  • 權限列表:多個權限用逗號分隔(如 SELECT, INSERT),ALL 表示所有權限;

  • 數據庫名。表名:

  `*.*`:所有數據庫的所有表(全局權限);
?`itcast.*`:`itcast` 數據庫的所有表;
?`itcast.emp`:`itcast` 數據庫的 `emp` 表。

3. 撤銷權限
REVOKE 權限列表 ON 數據庫名.表名 FROM '用戶名'@'主機名';
注意事項
  1. 授予 / 撤銷權限后,無需重啟 MySQL,權限立即生效;

  2. 開發環境中遵循 “最小權限原則”(如僅給查詢需求的用戶授予 SELECT 權限),避免權限過大導致安全風險。


黑馬十天精通MYSQL百度網盤資料鏈接

?提取碼: wind?

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

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

相關文章

Webrtc支持FFMPEG硬解碼之Intel

Intel QSV下載編譯git clone https://github.com/lu-zero/mfx_dispatch.git1.使用CMake生產VS工程編譯生成libmfx.lib文件 頭文件為mfx文件夾libmfx---include---mfx---lib---libmfx.libWebrtc中ffmpeg的修改因為Webrtc中的ffmpeg是使用gn進行編譯的&#xff0c;所以這里先找到…

【二叉樹(DFS) - LeetCode】437. 路徑總和 III

437. 路徑總和 III 題解&#xff1a;DFS /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullp…

【Python】shutil.make_archive() 方法詳解

文章目錄功能概述函數簽名核心參數詳解1. base_name2. format3. root_dir4. base_dir使用示例將 /home/user/project/data 目錄打包為 data.tar.gz&#xff0c;并保存到 /home/user/backups/打包當前工作目錄下的 docs 文件夾為 zip 文件替代方案總結shutil.make_archive() 是 …

CAN總線(Controller Area Network Bus)控制器局域網總線(二)

6、錯誤幀 總線上所有設備都會監督總線的數據&#xff0c;一旦發現“位錯誤”或“填充錯誤”或“CRC錯誤”或“格式錯誤”或“應答錯誤” &#xff0c;這些設備便會發出錯誤幀來破壞數據&#xff0c;同時終止當前的發送設備。7、過載幀 當接收方收到大量數據而無法處理時&#…

LeetCode 317 離建筑物最近的距離

LeetCode 317 題的詳細題目信息如下&#xff1a;題目名稱Shortest Distance from All Buildings&#xff08;中文譯名&#xff1a;離建筑物最近的距離&#xff09;題目描述給你一個由 0、1 和 2 組成的二維網格&#xff0c;其中&#xff1a;0 代表空地1 代表建筑物2 代表障礙物…

AI之CodeTool之Kode:Kode(claude_code風格)的簡介、安裝和使用方法、案例應用之詳細攻略

AI之CodeTool之Kode&#xff1a;Kode(claude_code風格)的簡介、安裝和使用方法、案例應用之詳細攻略 目錄 相關文章 LLMs之PE之SystemPrompt&#xff1a;analysis_claude_code的簡介、使用方法、案例應用之詳細攻略 AI之CodeTool之Kode&#xff1a;Kode(claude_code風格)的簡…

網絡請求優化:用 Retrofit 攔截器玩轉日志、重試與緩存,OkHttp 和 Volley 誰更香?

目錄 1. 攔截器:Retrofit 的“超級管理員” 攔截器的本質 為什么用攔截器? 2. 日志攔截器:讓請求和響應“現原形” 引入日志攔截器 實現日志攔截器 日志輸出示例 生產環境注意事項 3. 重試攔截器:網絡不穩定也能穩如狗 設計重試邏輯 集成到 Retrofit 優化重試策…

LeetCode - 283. 移動零

題目 283. 移動零 - 力扣&#xff08;LeetCode&#xff09; 思路 我們使用左右兩個指針&#xff1a;左指針left指向已處理好的非零元素的末尾位置&#xff0c;右指針right用于遍歷數組。 算法步驟&#xff1a; 初始化left為-1&#xff08;表示還沒有處理任何非零元素&…

Redis不同場景下的注意事項

Redis常見的 使用場景&#xff1a; 緩存系統(核心場景) 存儲熱點數據&#xff0c;減少數據庫訪問壓力。提升接口響應速度。技術點&#xff1a; 用String/Hash 存儲結構化數據結合過期時間&#xff08;TTL&#xff09;和緩存淘汰策略(如LRU)管理內存。解決緩存問題&#xff1a;穿…

【完整源碼+數據集+部署教程】高速公路施工區域物體檢測系統源碼和數據集:改進yolo11-RepNCSPELAN

背景意義 隨著城市化進程的加快&#xff0c;高速公路建設與維護工作日益頻繁&#xff0c;施工區域的安全管理成為亟待解決的重要問題。在高速公路施工區域&#xff0c;工人和設備的安全是首要考慮因素&#xff0c;而有效的物體檢測系統能夠顯著提高施工現場的安全性與工作效率。…

如何在FastAPI中玩轉全鏈路追蹤,讓分布式系統故障無處遁形?

url: /posts/30e1d2fbf1ad8123eaf0e1e0dbe7c675/ title: 全鏈路追蹤如何讓FastAPI微服務架構的每個請求都無所遁形? date: 2025-08-28T23:40:47+08:00 lastmod: 2025-08-28T23:40:47+08:00 author: cmdragon summary: 全鏈路追蹤是現代微服務架構中監控系統行為的核心技術,通…

Win11 壓縮實測:Win11 的壓縮軟件的最佳配置和使用方式

文章目錄測試環境機器配置被壓縮文件WinRAR7zipLinux子系統準備極限壓縮減小字典的極限壓縮7zipWin11準備極限壓縮7zip系統內置右鍵壓縮菜單極限壓縮總結&#xff1a;Win11 的壓縮軟件的最佳配置和使用方式測試環境 機器配置 Win11系統 16GB內存 8核CPU 被壓縮文件 文件夾內…

CMake構建學習筆記22-libxml2庫的構建

在上一篇文章《CMake構建學習筆記21-通用的CMake構建腳本》中&#xff0c;筆者封裝了一個通用的cmake構建腳本cmake-build.ps1&#xff0c;那么這里筆者就嘗試通過這個腳本來構建libxml2庫。 libxml2是GNOME項目下的XML庫&#xff0c;雖然比不上TinyXML-2輕量&#xff0c;但是…

虛擬私有網絡筆記

VPN應用場景 ——VPN概述 ? 利用公共網絡來構建的私人專用網絡稱為虛擬私有網絡&#xff08;VPN&#xff0c; Virtual Private Network&#xff09;&#xff0c;用于構建VPN的公共網絡包括Internet 、幀中繼、ATM等。在公共網絡上組建的VPN象企業現有的私有網絡 一樣提供安全性…

Python 輕量級 HTML 解析器 - lxml入門教程

文章目錄初始化解析器路徑查找查找所有標簽查找指定 id 的標簽查找指定 class 的標簽查找包含指定 class 的標簽復雜路徑查找示例1示例2常見操作獲取所有標簽的鏈接獲取 div 標簽的文本內容, 其他標簽類似其他元素操作初始化解析器 from lxml import html from lxml.html impor…

(CVPR-2025)VideoMage:文本生成視頻擴散模型的多主體與動作定制化

VideoMage&#xff1a;文本生成視頻擴散模型的多主體與動作定制化 paper title&#xff1a;VideoMage: Multi-Subject and Motion Customization of Text-to-Video Diffusion Models paper是National Taiwan University發表在CVPR 2025的工作 Code:鏈接 圖1. 多主體與動作定制化…

OpenCV輪廓近似與Python命令行參數解析

在計算機視覺任務中&#xff0c;輪廓分析是目標檢測、形狀識別的核心步驟。而approxPolyDP函數作為輪廓簡化的關鍵工具&#xff0c;能有效減少輪廓頂點數量&#xff0c;降低計算復雜度&#xff1b;同時&#xff0c;argparse庫則能讓Python腳本更靈活、易用。本文將結合具體案例…

基于Springboot在線音樂推薦平臺

目錄 一、項目介紹 二、功能介紹 三、核心代碼 四、效果圖 源碼獲取 前言 在經濟繁榮的浪潮過去后&#xff0c;社會的焦點逐漸從物質追求轉向了文化和生活品質的提升[1]。文化生活的繁榮成為人們關注的焦點之一&#xff0c;而音樂&#xff0c;作為文化的一部分&#xff0…

LeetCode算法日記 - Day 26: 歸并排序、交易逆序對的總數

目錄 1. 歸并排序 1.1 題目解析 1.2 解法 1.3 代碼實現 2. 交易逆序對的總數 2.1 題目解析 2.2 解法 2.3 代碼實現 1. 歸并排序 912. 排序數組 - 力扣&#xff08;LeetCode&#xff09; 給你一個整數數組 nums&#xff0c;請你將該數組升序排列。 你必須在 不使用任…

C++(Qt)軟件調試---vcpkg安裝crashpad(34)

C(Qt)軟件調試—vcpkg安裝crashpad&#xff08;34&#xff09; 文章目錄C(Qt)軟件調試---vcpkg安裝crashpad&#xff08;34&#xff09;[toc]1 概述&#x1f41c;2 環境配置3 qt使用crashpad庫捕獲異常4 cmake中添加crashpad5 相關地址&#x1f410;更多精彩內容&#x1f449;內…