数据库:MySQL 指令大全(备忘清单)
文章目录
- 入门
- 介绍
- 登录MySQL
- 常用的
- 数据库 Database
- 表 Table
- Proccess
- 查看 MySQL 信息
- 退出MySQL会话
- 备份
- MySQL 示例
- 管理表格
- 从表中查询数据
- 从多个表查询
- 使用 SQL 约束
- 修改数据
- 管理视图
- 管理触发器
- WHEN
- EVENT
- TRIGGER_TYPE
- 管理索引
- MySQL 数据类型
- Strings
- Date & time
- Numeric
- 函数
- 聚合函数
- 数学函数
- 日期和时间函数
- 字符串函数
- 高级函数
本备忘单旨在快速理解 MySQL 所涉及的主要概念,提供了最常用的SQL语句,供您参考。
参考:
- SQL 基础教程 (w3school.com.cn)
- SQL 语句教程 (1keydata.com)
- 21分钟 MySQL 基础入门 (jaywcjlove.github.io)
入门
介绍
MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成,如下所示的一个表格
name ▼ 键 ▼ 列(col)
┌┈┈┈┈┬┈┈┈┈┈┈┈┈┬┈┈┈┈┈┈┬┈┈┈┈┈┈┈┐
┆ id ┆ name ┆ uid ┆ level ┆ ◀ 表头header
├┈┈┈┈┼┈┈┈┈┈┈┈┈┤┈┈┈┈┈┈┤┈┈┈┈┈┈┈┤
┆ 1 ┆ mysql ┆ 0 ┆ 3 ┆
├┈┈┈┈┼┈┈┈┈┈┈┈┈┤┈┈┈┈┈┈┤┈┈┈┈┈┈┈┤
┆ 2 ┆ redis ┆ 12 ┆ 1 ┆ ◀ 行 row
└┈┈┈┈┴┈┈┈┈┈┈┈┈┴┈┈┈┈┈┈┴┈┈┈┈┈┈┈┘redis ▲ 值
表头(header)每一列的名称列(col)具有相同数据类型的数据的集合行(row)每一行用来描述某个人/物的具体信息值(value)行的具体信息,每个值与该列数据类型相同键(key)用来识别某个特定的人/物的方法,有唯一性
登录MySQL
# 默认用户名<root>,-p 是密码,
# ⚠️参数后面不需要空格
mysql -h 127.0.0.1 -u <用户名> -p<密码>
mysql -D 数据库名 -h 主机名 -u 用户名 -p
mysql -h <host> -P <端口号> -u <user> -p [db_name]
mysql -h <host> -u <user> -p [db_name]
常用的
数据库 Database
| :- | :- |
|---|---|
CREATE DATABASE db ; | 创建数据库 |
SHOW DATABASES; | 列出数据库 |
USE db; | 切换到数据库 |
CONNECT db ; | 切换到数据库 |
DROP DATABASE db; | 删除数据库 |
表 Table
| :- | :- |
|---|---|
SHOW TABLES; | 列出当前数据库的表 |
SHOW FIELDS FROM t; | 表的列表字段 |
DESC t; | 显示表格结构 |
SHOW CREATE TABLEt; | 显示创建表sql |
TRUNCATE TABLEt; | 删除表中的所有数据 |
DROP TABLEt; | 删除表格 |
Proccess
| :- | :- |
|---|---|
show processlist; | 列出进程 |
kill pid; | 杀死进程 |
查看 MySQL 信息
# 显示当前mysql的version的各种信息
mysql> status;
# 显示当前mysql的version信息
mysql> select version();
# 查看 MySQL 端口号
mysql> show global variables like 'port';
退出MySQL会话
mysql> exit
退出 quit; 或 \q; 一样的效果
备份
创建备份
mysqldump -u user -p db_name > db.sql
导出不带架构的数据库
mysqldump -u user -p db_name --no-data=true --add-drop-table=false > db.sql
恢复备份
mysql -u user -p db_name < db.sql
MySQL 示例
管理表格
创建一个包含三列的新表
CREATE TABLE t (id INT,name VARCHAR DEFAULT NOT NULL,price INT DEFAULT 0PRIMARY KEY(id)
);
从数据库中删除表
DROP TABLE t ;
向表中添加新列
ALTER TABLE t ADD column;
从表中删除列c
ALTER TABLE t DROP COLUMN c ;
添加约束
ALTER TABLE t ADD constraint;
删除约束
ALTER TABLE t DROP constraint;
将表从t1重命名为t2
ALTER TABLE t1 RENAME TO t2;
将列 c1 重命名为 c2
ALTER TABLE t1 CHANGE c1 c2 datatype;
ALTER TABLE table_name RENAME COLUMN c1 TO c2;
将列c1的数据类型改为datatype
ALTER TABLE t1 MODIFY c1 datatype;
删除表中的所有数据
TRUNCATE TABLE t;
从表中查询数据
从表中查询列c1、c2中的数据
SELECT c1, c2 FROM t
查询表中的所有行和列
SELECT * FROM t
查询数据并使用条件筛选行
SELECT c1, c2 FROM t
WHERE condition
查询表中的不同行
SELECT DISTINCT c1 FROM t
WHERE condition
按升序或降序对结果集排序
SELECT c1, c2 FROM t
ORDER BY c1 ASC [DESC]
跳过行的偏移并返回下n行
SELECT c1, c2 FROM t
ORDER BY c1
LIMIT n OFFSET offset
使用聚合函数对行进行分组
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
使用HAVING子句筛选组
SELECT c1, aggregate(c2)
FROM t
GROUP BY c1
HAVING condition
从多个表查询
内部连接 t1 和 t2
SELECT c1, c2
FROM t1
INNER JOIN t2 ON condition
左连接t1和t1
SELECT c1, c2
FROM t1
LEFT JOIN t2 ON condition
右连接t1和t2
SELECT c1, c2
FROM t1
RIGHT JOIN t2 ON condition
执行完全外部连接
SELECT c1, c2
FROM t1
FULL OUTER JOIN t2 ON condition
生成表中行的笛卡尔积
SELECT c1, c2
FROM t1
CROSS JOIN t2
执行交叉连接的另一种方法
SELECT c1, c2
FROM t1, t2
使用INNER Join子句将t1连接到自身
SELECT c1, c2
FROM t1 A
INNER JOIN t1 B ON condition
使用SQL运算符,合并两个查询中的行
SELECT c1, c2 FROM t1
UNION [ALL]
SELECT c1, c2 FROM t2
返回两个查询的交集
SELECT c1, c2 FROM t1
INTERSECT
SELECT c1, c2 FROM t2
从另一个结果集中减去一个结果集
SELECT c1, c2 FROM t1
MINUS
SELECT c1, c2 FROM t2
使用模式匹配%查询行_
SELECT c1, c2 FROM t1
WHERE c1 [NOT] LIKE pattern
查询列表中的行
SELECT c1, c2 FROM t
WHERE c1 [NOT] IN value_list
查询两个值之间的行
SELECT c1, c2 FROM t
WHERE c1 BETWEEN low AND high
检查表中的值是否为NULL
SELECT c1, c2 FROM t
WHERE c1 IS [NOT] NULL
使用 SQL 约束
将c1和c2设置为主键
CREATE TABLE t(c1 INT, c2 INT, c3 VARCHAR,PRIMARY KEY (c1,c2)
);
将c2列设置为外键
CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT,FOREIGN KEY (c2) REFERENCES t2(c2)
);
使c1和c2中的值唯一
CREATE TABLE t(c1 INT, c1 INT,UNIQUE(c2,c3)
);
确保c1>0和c1>=c2中的值
CREATE TABLE t(c1 INT, c2 INT,CHECK(c1> 0 AND c1 >= c2)
);
c2列中的设置值不为NULL
CREATE TABLE t(c1 INT PRIMARY KEY,c2 VARCHAR NOT NULL
);
修改数据
在表格中插入一行
INSERT INTO t(column_list)
VALUES(value_list);
在表格中插入多行
INSERT INTO t(column_list)
VALUES (value_list), (value_list), …;
将行从t2插入t1
INSERT INTO t1(column_list)
SELECT column_list
FROM t2;
更新列c1中所有行的新值
UPDATE t
SET c1 = new_value;
更新列c1、c2中与条件匹配的值
UPDATE t
SET c1 = new_value, c2 = new_value
WHERE condition;
删除表中的所有数据
DELETE FROM t;
删除表中的行子集
DELETE FROM t
WHERE condition;
管理视图
创建由c1和c2组成的新视图
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
使用选中选项创建新视图
CREATE VIEW v(c1,c2)
AS
SELECT c1, c2
FROM t;
WITH [CASCADED | LOCAL] CHECK OPTION;
创建递归视图
CREATE RECURSIVE VIEW v
AS
select-statement -- anchor part
UNION [ALL]
select-statement; -- recursive part
创建临时视图
CREATE TEMPORARY VIEW v
AS
SELECT c1, c2
FROM t;
删除视图
DROP VIEW view_name;
管理触发器
创建或修改触发器
CREATE OR MODIFY TRIGGER trigger_name
WHEN EVENT
ON table_name TRIGGER_TYPE
EXECUTE stored_procedure;
WHEN
| :- | :- |
|---|---|
BEFORE | 在事件发生前调用 |
AFTER | 事件发生后调用 |
EVENT
| :- | :- |
|---|---|
INSERT | 为INSERT调用 |
UPDATE | 调用UPDATE |
DELETE | 调用DELETE |
TRIGGER_TYPE
| :- | :- |
|---|---|
FOR EACH ROW | - |
FOR EACH STATEMENT | - |
管理索引
在t表的c1和c2上创建索引
CREATE INDEX idx_name
ON t(c1,c2);
在t表的c3、c4上创建唯一索引
CREATE UNIQUE INDEX idx_name
ON t(c3,c4)
删除索引
DROP INDEX idx_name ON t;
MySQL 数据类型
Strings
| - | - |
|---|---|
CHAR | String (0 - 255) |
VARCHAR | String (0 - 255) |
TINYTEXT | String (0 - 255) |
TEXT | String (0 - 65535) |
BLOB | String (0 - 65535) |
MEDIUMTEXT | String (0 - 16777215) |
MEDIUMBLOB | String (0 - 16777215) |
LONGTEXT | String (0 - 4294967295) |
LONGBLOB | String (0 - 4294967295) |
ENUM | One of preset options |
SET | Selection of preset options |
Date & time
| Data Type | Format |
|---|---|
DATE | yyyy-MM-dd |
TIME | hh:mm:ss |
DATETIME | yyyy-MM-dd hh:mm:ss |
TIMESTAMP | yyyy-MM-dd hh:mm:ss |
YEAR | yyyy |
Numeric
| - | - |
|---|---|
TINYINT x | Integer (-128 to 127) |
SMALLINT x | Integer (-32768 to 32767) |
MEDIUMINT x | Integer (-8388608 to 8388607) |
INT x | Integer (-2147483648 to 2147483647) |
BIGINT x | Integer (-9223372036854775808 to 9223372036854775807) |
FLOAT | Decimal (precise to 23 digits) |
DOUBLE | Decimal (24 to 53 digits) |
DECIMAL | “DOUBLE” stored as string |
函数
聚合函数
| 函数 | 解释 |
|---|---|
SUM() | 计算一列值的总和 |
AVG() | 计算一列值的平均值 |
COUNT() | 计算行数,可选择性地忽略NULL值 |
MAX() | 找出一列的最大值 |
MIN() | 找出一列的最小值 |
数学函数
| 函数 | 解释 | 示例语法 | 结果 |
|---|---|---|---|
ABS(x) | 返回数值的绝对值 | ABS(-5) | 5 |
ROUND(x,y) | 四舍五入到指定的小数位数,y为小数位数,默认为0 | ROUND(3.1415,2) | 3.14 |
FLOOR(x) | 向下取整至最接近的整数 | FLOOR(3.7) | 3 |
CEIL(x) | 向上取整至最接近的整数 | CEIL(3.3) | 4 |
SQRT(x) | 返回一个数的平方根 | SQRT(16) | 4 |
MOD(x,y) | 返回x除以y的余数 | MOD(10,3) | 1 |
RAND([seed]) | 返回0到1之间的随机数,可选种子值 | RAND() 或 RAND(123) | 0.345… |
日期和时间函数
| 函数 | 解释 |
|---|---|
NOW() | 返回当前日期和时间 |
CURDATE() | 返回当前日期 |
CURTIME() | 返回当前时间 |
DATE_FORMAT() | 格式化日期时间输出 |
DATEDIFF() | 计算两个日期之间相差的天数 |
STR_TO_DATE() | 将字符串转换为日期格式 |
字符串函数
| 函数 | 解释 | 示例语法 | 结果 |
|---|---|---|---|
CONCAT(s1,s2,...) | 连接两个或更多字符串 | CONCAT('Hello, ','World!') | ‘Hello, World!’ |
LOWER(str) | 转换为小写 | LOWER('HELLO') | ‘hello’ |
UPPER(str) | 转换为大写 | UPPER('world') | ‘WORLD’ |
TRIM(str) | 去除字符串两端空格 | TRIM(' Hello ') | ‘Hello’ |
LEFT(str,len) | 提取字符串左侧的若干字符 | LEFT('Hello', 3) | ‘Hel’ |
RIGHT(str,len) | 提取字符串右侧的若干字符 | RIGHT('Hello', 2) | ‘lo’ |
SUBSTR(str,pos,len) | 提取字符串中的一部分 | SUBSTR('Hello', 2, 3) | ‘ell’ |
REPLACE(str,from_str,to_str) | 替换字符串中的部分文本 | REPLACE('Hello', 'l', 'L') | ‘HeLLo’ |
高级函数
| 函数 | 解释 | 示例语法 | 结果 |
|---|---|---|---|
| BIN(x) | 返回 x 的二进制编码,x 为十进制数。 | BIN(2) | 10 |
| BINARY(s) | 将字符串 s 转换为二进制字符串。 | BINARY 'RUNOOB' | 'RUNOOB'(显示效果,实际存储为二进制) |
| CASE | 复合条件函数,根据条件返回不同结果。 | CASE WHEN 1 > 0 THEN '1 > 0' WHEN 2 > 0 THEN '2 > 0' ELSE '3 > 0' END | '1 > 0' |
| CAST(x AS type) | 转换数据类型。 | CAST('2017-08-29' AS DATE) | 2017-08-29 |
| COALESCE(expr1, expr2, …, expr_n) | 返回第一个非空表达式的值。 | COALESCE(NULL, NULL, 'runoob.com', NULL, 'google.com') | 'runoob.com' |
| CONNECTION_ID() | 返回当前连接的唯一ID。 | CONNECTION_ID() | 4292835(示例值) |
| CONV(x, f1, f2) | 将 f1 进制数转换为 f2 进制数。 | CONV(15, 10, 2) | 1111 |
| CONVERT(s USING cs) | 转换字符串 s 的字符集为 cs。 | CHARSET(CONVERT('ABC' USING gbk)) | gbk |
| CURRENT_USER() | 返回当前用户。 | CURRENT_USER() | guest@% |
| DATABASE() | 返回当前数据库名。 | DATABASE() | runoob |
| IF(expr, v1, v2) | 条件表达式,expr 为真则 v1,否则 v2。 | IF(1 > 0, '正确', '错误') | '正确' |
| IFNULL(v1, v2) | 如果 v1 不为 NULL,则返回 v1,否则返回 v2。 | IFNULL(NULL, 'Hello Word') | 'Hello Word' |
| ISNULL(expression) | 判断表达式是否为 NULL。 | ISNULL(NULL) | 1 |
| LAST_INSERT_ID() | 返回最近生成的 AUTO_INCREMENT 值。 | LAST_INSERT_ID() | 6(示例值) |
| NULLIF(expr1, expr2) | 若 expr1 等于 expr2,则返回 NULL,否则返回 expr1。 | NULLIF(25, 25) | NULL |
相关文章:
数据库:MySQL 指令大全(备忘清单)
文章目录 入门介绍登录MySQL常用的数据库 Database表 TableProccess 查看 MySQL 信息退出MySQL会话备份 MySQL 示例管理表格从表中查询数据从多个表查询使用 SQL 约束修改数据管理视图管理触发器WHENEVENTTRIGGER_TYPE 管理索引 MySQL 数据类型StringsDate & timeNumeric 函…...
NET进行CAD二次开发之二
本文主要针对CAD 二次开发入门与实践:以 C# 为例_c# cad-CSDN博客的一些实践问题做一些补充。 一、DLL介绍 在 AutoCAD 中,accoremgd.dll、acdbmgd.dll 和 acmgd.dll 都是与.NET API 相关的动态链接库,它们在使用.NET 语言(如 C#、VB.NET)进行 AutoCAD 二次开发时起着关…...
Python 实现大文件的高并发下载
项目背景 基于一个 scrapy-redis 搭建的分布式系统,所有item都通过重写 pipeline 存储到 redis 的 list 中。这里我通过代码演示如何基于线程池 协程实现对 item 的中文件下载。 Item 结构 目的是为了下载 item 中 attachments 保存的附件内容。 {"crawl_tim…...
【最新】 ubuntu24安装 1panel 保姆级教程
系统:ubuntu24.04.1 安装软件 :1panel 第一步:更新系统 sudo apt update sudo apt upgrade 如下图 第二步:安装1panel,运行如下命令 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o …...
c++图论(二)之图的存储图解
在 C 中实现图的存储时,常用的方法包括 邻接矩阵(Adjacency Matrix)、邻接表(Adjacency List) 和 边列表(Edge List)。以下是具体实现方法、优缺点分析及代码示例: 1. 邻接矩阵&…...
c++图论(一)之图论的起源和图的概念
C 图论之图论的起源和图的概念 图论(Graph Theory)是数学和计算机科学中的一个重要分支,其起源可以追溯到 18 世纪 的经典问题。以下是图论的历史背景、核心起源问题及其与基本概念和用途: 借用一下CSDN的图片哈 一、图论的起源&…...
《Python深度学习》第二讲:深度学习的数学基础
本讲来聊聊深度学习的数学基础。 深度学习听起来很厉害,其实它背后是一些很有趣的数学原理。本讲会用简单的方式解释这些原理,还会用一些具体的例子来帮助你理解。 2.1 初识神经网络 先从一个简单的任务开始:识别手写数字。 想象一下,你有一堆手写数字的图片,你想让计算…...
ChatGPT and Claude国内使用站点
RawChat kelaode chatgptplus chatopens(4.o mini免费,plus收费) 网页: 定价: wildcard 网页: 虚拟卡定价: 2233.ai 网页: 定价: MaynorAPI chatgpt cla…...
进行性核上性麻痹:精心护理,点亮希望之光
进行性核上性麻痹是一种罕见的神经退行性疾病,严重影响患者的生活质量。有效的健康护理能够在一定程度上缓解症状、延缓病情发展,给患者带来更好的生活体验。 在日常生活护理方面,由于患者平衡能力逐渐下降,行动不便,居…...
ZED X系列双目3D相机的耐用性与创新设计解析
在工业自动化和学术研究领域,高精度的视觉设备正成为提升效率和质量的关键。ZED X系列AI立体相机,凭借其先进的技术和耐用的设计,为这一领域带来了新的可能。 核心技术:深度感知与精准追踪 ZED X系列的核心技术之一是Neural Dept…...
HarmonyOS三层架构实战
目录: 1、三层架构项目结构1.0、三层架构简介1.1、 common层(主要放一些公共的资源等)1.2、 features层(主要模块定义的组件以及图片等静态资源)1.3、 products层(主要放主页面层和一些主要的资源ÿ…...
计算机四级 - 数据库原理 - 第4章 「关系数据库标准语言SQL」
4.1 SQL概述 4.1.1 结构化查询语言SQL SQL(Structured Query Language)称为结构化查询语言,它是由1974年由Boyce和Chamberi提出的,1975年至1979年IBM公司的San Jose Research Laboratory研制了关系数据库管理系统的原型系统System R,并实现了这种语198…...
基于PMU的14节点、30节点电力系统状态估计MATLAB程序
“电气仔推送”获得资料(专享优惠) 程序简介: 程序采用三种方法对14节点和30节点电力系统状态进行评估: ①PMU同步向量测量单元结合加权最小二乘法(WLS)分析电力系统的电压幅值和相角状态; …...
JS超过Number的最大值
场景:用户输入(这个可以通过前端限制输入长度控制)或正规场景,大数据量展示 Number类型的最大值是2^53 - 1 解决方案一:BigInt BigInt 是 JavaScript 中专门用来表示任意精度整数的类型。它允许你处理超出 Number 范围的整数。 const bigNu…...
Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】
在测试工作中,需求文档中的图片(如界面设计图、流程图)往往是测试用例生成的重要参考。然而,手动提取图片并识别内容不仅耗时,还容易出错。本文将通过一个自研小工具,结合 PaddleOCR 和大模型,自…...
整形在内存中的存储(例题逐个解析)
目录 一.相关知识点 1.截断: 2.整形提升: 3.如何 截断,整型提升? (1)负数 (2)正数 (3)无符号整型,高位补0 注意:提升后得到的…...
基于变分推理与 Best‑of‑N 策略的元 Prompt 自动生成与优化框架
摘要 本文提出了一种融合变分推理与 Best‑of‑N 策略的元 Prompt 自动生成与优化框架,通过高度参数化的模板、随机扰动采样及多指标评分机制,实现从初始提示生成到最终输出的动态优化。同时,针对实际应用中对自适应参数调整、深层语义理解、…...
AI 技术在智慧农业中的应用实践
智慧农业是通过现代信息技术(如物联网、大数据、人工智能等)提升农业生产效率、降低资源消耗、改善农产品质量的现代农业模式。AI 技术在智慧农业中的应用实践涵盖了从种植到收获的全流程,以下是具体的方案和应用场景: 1. AI 在智慧农业中的应用场景 1.1 精准种植 应用场景…...
蓝牙系统的核心组成解析
一、硬件层:看得见的物理载体 1. 射频模块(Radio Frequency Module) 专业描述:工作在2.4GHz ISM频段,支持GFSK/π/4 DQPSK/8DPSK调制方式 功能类比:相当于人的"嘴巴"和"耳朵" 发射端…...
centos 7误删/bash 拯救方法
进入救援模式 1. 插入CentOS 7安装光盘,重启系统。在开机时按BIOS设置对应的按键(通常是F2等),将启动顺序调整为CD - ROM优先。 2. 系统从光盘启动后,选择“Troubleshooting”,然后选择“Rescue a Cent…...
uniapp笔记-底部和首部标签页菜单生成
逻辑 这些都是需要配置pages.json文件。 其中底部需要手动配置tarBar,如: "tabBar": {"list":[{"pagePath": "pages/index/index","text": "首页"},{"pagePath": "pages/…...
基于Gemini 生成 Gemini Embedding
在本报告中,我们介绍了Gemini Embedding,这是一款基于谷歌功能最强大的大型语言模型Gemini的先进嵌入模型。借助Gemini的多语言和代码理解能力,Gemini Embedding能够为多种语言和文本模态的文本生成高度通用的嵌入表示。Gemini Embedding生成的表示可以预先计算并应用于多种…...
SpringBoot 和vue前后端配合开发网页拼图10关游戏源码技术分享
今天分享一个 前后端结合 的网页游戏 开发项目源码技术。 这也是我第一次写游戏类的程序,虽然不是特别复杂的游戏,但是是第一次写,肯定要记录一下了,哈哈。 游戏的内容 就是 我们显示中玩的那个 拼图碎片的 游戏,类似下…...
OpenCV计算摄影学(21)非真实感渲染之边缘保留滤波器edgePreservingFilter()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 滤波是图像和视频处理中的基础操作。边缘保留平滑滤波器被广泛应用于多种不同场景[98]。 cv::edgePreservingFilter 是一种边缘保留滤波器&#…...
Qemu 详解与 ARM 虚拟机搭建指南
1. Qemu 是什么? Qemu(Quick Emulator)是一款开源的机器模拟器和虚拟化工具,支持多种硬件架构(如 x86、ARM、PowerPC 等)。它的核心功能包括: 动态指令翻译:将不同架构的指令实时翻…...
JVM并发编程AQSsync锁ReentrantLock线程池ThreadLocal
并发编程2 synchronized锁实现**AQS****ReentrantLock实现****JUC 常用类**池的概念 ThreadLocalThreadLocal原理内存泄露强引用:软引用弱引用虚引用ThreadLocal内存泄露 synchronized锁实现 synchronized是一个关键字,实现同步,还需要我们提供一个同步锁对象,记录锁状态,记录…...
CMake学习笔记(三):静态库,动态库的生成和使用
一:动态库 接下来我们简单的讲解下动态库的建立和使用:在后面的项目的开发过程中,我们使用第三方库或者我们跑这个项目的时候我们总会看到一些.so的文件,这些就是所谓的动态库,里面的内容就是编译后的源文件,是程序运行时被加载和…...
《Classifier-Free Diffusion Guidance》的核心观点与方法
介绍《Classifier-Free Diffusion Guidance》的核心观点与方法 在扩散模型(Diffusion Models)的研究中,如何在生成样本的质量与多样性之间找到平衡一直是核心挑战之一。传统的生成模型(如GANs或Glow)通过截断…...
什么是数学建模?数学建模是将实际问题转化为数学问题
数学建模是将实际问题转化为数学问题,并通过数学工具进行分析、求解和验证的过程。 一、数学建模的基本流程 问题分析 • 明确目标:确定需要解决的核心问题。 • 简化现实:识别关键变量、忽略次要因素。 • 定义输入和输出:明确模…...
唤起“队列”的回忆
又来博客记录自己的学习心得了,嘿嘿嘿(^~^) 目录 队列的概念和结构: 队列的创建和初始化: 队列入栈: 队列出栈: 队列的销毁: 取队头和队尾数据: 结语: 队列的概念…...
