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

数据库(SQL语句:DMLDQL)

目录

有关数据表的DML操作

1.1 INSERT 语句

1.2 REPLACE 语句

replace语句的语法格式(三种)

REPLACE 语句 和  INSERT 语句的区别

1.3 DELETE 语句 | | TRUNCATE 语句

DELETE

TRUNCATE

DROP

1.4 UPDATE 数据

1.5 SELECT 语句 (DQL数据查询语句)

1.5.1 基础语法

语法解释

1.5.2 SELECT 语句中的算数表达式

1.5.3 运算符优先级

1.5.4 NULL值的使用

补充

1.5.5 祛除重复的记录

1.5.6 WHERE 限制所选择的横向区域

1.5.7 WHERE 中的比较运算符

1.5.8 LIKE 关键字

1.5.9 GROUP BY 分组查询

语法

分组函数的重要规则

1.5.10 ORDER BY 排序查询

语法

1.5.11 LIMIT 区间查询

语法

1.5.12 GROUP_CONCAT 分组数据合并

注意事项

1.6 多表关联查询

1.6.1交叉连接查询

1.6.2 等值连接查询

语法

1.6.3 内连接查询

语法


有关数据表的DML操作

INSERT        

        针对于数据的插入

DELETE       

        针对于数据的删除

UPDATE       

        针对于数据的修改

1.1 INSERT 语句

INSERT INTO 表名 [(列名1,列名2,......)] VALUES (值1,值2,......);
默认情况下,一条插入命令只针对一行进行影响
INSERT INTO 表名 [(columnName,[columnName...])] VALUES
(value[,value.....]),(value[,value.....]),
(value[,value.....]).....;
一次性插入多条记录

注意:

        如果我们为每一列都要指定注入的值,那么表名后面就不需要罗列 插入的列名

INSERT INTO 表名 VALUES (值1,值2,值3,......)

1.2 REPLACE 语句

replace语句的语法格式(三种)

语法格式1replace into 表名 [(字段列表)] values (值列表);

语法格式2

replace [into] 目标表名 [(字段列表1) select (字段列表2) form 源表] [where 条件表达式];
语法格式3replace [into] 表名 set 字段1=值1,字段2=值2;

REPLACE 语句 和  INSERT 语句的区别

        replace 语句的功能 和 insert 语句的功能 基本相同,不同之处在于:使用 replace语句向表插入新纪录时,如果新记录的 主键值或者唯一性约束的字段值与已有记录相同,则已有记录先被删除(注意:已有记录删除时也不能违背外键约束条件)  然后再插入新记录

        使用 replace 的最大好处是可以将 delect 和 insert 合二为一(效果相当于更新),形成一个原子操作,这样就无需将 delect 操作与 insert 操作置于事务中了

1.3 DELETE 语句 | | TRUNCATE 语句

DELCET (TRUNCATE) FRON 表名 [WHERE 条件];

DELETE

        删除数据,保留表结构,必要时可以回滚,但是如果数据量较大,运行速度不及 TRUNCATE

TRUNCATE

        删除所有数据,保留表结构,不能够回滚,一次全部删除所有数据,速度相对很快

DROP

        删除数据和表结构,删除速度最快

1.4 UPDATE 数据

UPDATE 表名 SET 列名 = 值 [,列名 = 值, 列名 = 值, 列名 = 值,......]
[WHERE 条件];

1.5 SELECT 语句 (DQL数据查询语句)

1.5.1 基础语法

SELECT {*,列名,函数}
FROM 表名
[WHERE 条件];

语法解释

        1、SELECT 检索关键字,* 匹配所有列        ,        匹配指定列

        2、FROM  所提供的数据源(表,视图,另一个查询机制反馈的结果) 

        3、WHERE  条件(控制查询的区域)

示例:

#查询学生表的所有列以及所有行
SELECT *
FORM student;#查询指定三列的内容所有行(学生表的姓名、住址、邮箱)
SELECT StudentName,Adress,Email
FROM student;#查询生日在2002-09-06 2010-09-06 的 男生 的 姓名
SELECT StudentName
FROM student
WHERE BornDate>'2002-09-06' AND BornDate<'2010-09-06' AND sex = 1;

1.5.2 SELECT 语句中的算数表达式

对数值型数据列、变量、常量可以使用算数操作符创建表达式(+  -  * /)
对日期型数据列、变量、常量可以使用部分算数操作符创建表达式(+ -)

运算符不仅可以在列和常量之间进行运算,也可以在多列之间进行运算

示例:

SELECT 100+80;
SELECT '300'+80;  		#只要其中一个是数值类型,而另一个能够转成数值,则自动转换并计算
SELECT 'ABC'+20;  		#若转换不成功,则将其认为是数字0对待
SELECT 'Hello'+'World';	#若转换不成功,则将其认为是数字0对待  
SELECT NULL+80; 		#只要有一个为NULL,则结果为NULL

1.5.3 运算符优先级

乘除 优先级 高于 加减

同级运算  时 运算顺序  由左到右

表达式内  使用括号,可以改变优先级的运算顺序

1.5.4 NULL值的使用

String str = null;     
String str = "";

null指的是        不可用、未分配的值

null不等于        零或者空格

任意数据类型都支持  null  这种表达式

包括  null  的任何算数表达式结果都等于 空

字符串 和 null 进行连接运算,结果也为 空

补充

<==>        安全等于        等价于        =        和        IS        两者的结合

示例:

#查询学号为001的学生
SELECT *
FROM student
WHERE StudentNo <==> 001;    #  WHERE StudentNo = 001;#查询邮箱为空的学生的信息
SELECT *
FROM student
WHERE Email <==> NULL;   #  WHERE Email IS NULL;

1.5.5 祛除重复的记录

可以使用  关键字  DISTINCT  清除查询记录中的重复的数据

示例:

#查看学生表的性别
#缺省情况下查询显示所有行,包括重复行
SELECT sex "性别" 
FROM student;
#可以使用关键字DISTINCT清除查询记录中的重复数据
SELECT DISTINCT sex "性别" 
FROM student;

1.5.6 WHERE 限制所选择的横向区域

WHERE 中的 字符串 或者 日期格式的内容,需要使用 单引号 进行专门的标识

正确标识:

        StudentName = ‘张三’

错误标识:

        StudentName = 张三

字符串内的数据,对大小写很敏感

如果所查询记录中有        Zhang123@163.com        那么我们在检索的时候,就不能表示为:zhang123@163.com

日期值对格式是敏感的

如果所查询记录中有        2002-09-06 00:00:00        那么我们在检索的时候,就不能表示为:2002年09月06日

示例:

#查询姓名是张三的学生信息
SELECT * 
FROM student 
WHERE StudentName = '张三';#查询生日是1986-12-31的学生信息
SELECT *
FROM student
WHERE BornDate = '1986-12-31';#查询学号是0001的学生信息
SELECT * 
FROM student
WHERE StudentNo = 0001;

1.5.7 WHERE 中的比较运算符

        <   >   <=   >=   !=   =

示例:

#查询生日在2000-01-01之后的学生信息
SELECT *
FROM student
WHERE BornDate > '2000-01-01';
#WHERE中逻辑运算符  AND  OR  NOT
#AND需要所有条件都满足#查询班级编号是1,并且生日在1980-01-01之后,并且性别是1的学生信息
SELECT *
FROM student
WHERE GradeId = 1 AND BornDate > '1980-01-01' AND sex = 1;
#OR只要满足多条件之一即可#查询班级编号是1,或者生日在1980-01-01之后,或者性别是1的学生信息
SELECT *
FROM student
WHERE GradeId = 1 OR BornDate > '1980-01-01' OR sex = 1;
#NOT表示取反#查询邮箱不为空的学生的姓名,邮箱地址
SELECT StudentName "姓名",Email "邮箱地址"
FROM student
WHERE Email IS NOT NULL;#查询生日在2000-2010之间的学生姓名
SELECT StudentName "姓名"
FROM student
WHERE BornDate >= '2000-01-01' AND BornDate <= '2010-01-01';#使用BETWEEN关键字实现范围查询
SELECT StudentName "姓名"
FROM student
WHERE BornDate BETWEEN '2000-01-01' AND '2010-01-01';#班级是1或2或3班的学生姓名
SELECT StudentName "姓名"
FROM student
WHERE GradeId = 1 OR GradeId = 3 OR GradeId = 2;#使用IN关键字进行匹配
SELECT StudentName "姓名"
FROM student
WHERE GradeId IN (1,2,3);

1.5.8 LIKE 关键字

LIKE关键字主要用于

        执行模糊查询,查询条件可以包含 文字字符 或 占位符

        通过 % 表示匹配 0 或者 多个字符

        _ 表示匹配一个字符

示例:

#查询学生姓名 姓名以张开始,后面字符数量不定
SELECT StudentName "姓名"
FROM student
WHERE StudentName LIKE '张%';
LIKE '%张'以 张 字结束
LIKE '%张%'包含 张 字
LIKE '张_'以张开始而且后方匹配一个字符

1.5.9 GROUP BY 分组查询

GROUP BY        真正作用在于 与各种聚合函数配合使用,用来对查询出来的数据进行 行分组

分组的含义:将表中列值相同的多条记录,当成是一条记录进行处理,最终也只能输出一条记录,分组函数 忽略空值

语法

SELECT {*,列名,函数}
FROM 表名
[WHERE 基础条件]
[GROUP BY 分组条件]
[HAVING 过滤条件]

示例:

#统计各班人数
SELECT COUNT(*) "人数",GradeID "班级编号"
FROM student
WHERE sex = 1
GROUP BY (GradeID);#统计每个学生的考试总分,平均分,最高分,最低分
SELECT StudentNo "学号", SUM(StudentResult) "总分",AVG(StudentResult) "平均分",MAX(StudentResult) "最高分",MIN(StudentResult) "平最低分"
FROM result
GROUP BY (StudentNo);#考试时间在 2012年01月01日后 统计每个学生的考试总分,平均分,最高分,最低分
SELECT StudentNo "学号", SUM(StudentResult) "总分",AVG(StudentResult) "平均分",MAX(StudentResult) "最高分",MIN(StudentResult) "平最低分"
FROM result
WHERE ExamDate >= '2012-01-01'
GROUP BY (StudentNo);#考试时间在 2012年01月01日后 统计每个学生的考试总分,平均分,最高分,最低分 过滤掉 总分在650以下的
SELECT StudentNo "学号", SUM(StudentResult) "总分",AVG(StudentResult) "平均分",MAX(StudentResult) "最高分",MIN(StudentResult) "平最低分"
FROM result
WHERE ExamDate >= '2012-01-01'
GROUP BY (StudentNo)
HAVING  SUM(StudentResult) >= 650;

分组函数的重要规则

如果使用了分组函数,或者是使用了GROUP BY(字段1,字段2,......)执行查询,那么出现在SELECT 列表后的字段,要么必须 是聚合函数,要么出现过在 GROUP字句里面

GROUP BY 子句的字段可以不出现在 SELECT 内

使用聚合函数但不使用分组查询时,那么所有的数据会作为一组进行显示
GROUP BY 前面的 WHERE 表示:分组前执行的条件过滤
GROUP BY 后面的 HAVING 表示:分组后执行的条件过滤

1.5.10 ORDER BY 排序查询

语法

SELECT {*,列名,函数} 
FROM 表名 
[WHERE 基础条件]
[GROUP BY 分组条件]
[HAVING 过滤条件]
[ORDER BY (需要排序的字段) ASC||DESC];  #ASC升序(升序)  DESC(降序)

示例:

#查询平均成绩在80以上的学生(学号)信息,同时成绩还需要按照降序排列
SELECT StudentNo "学号",AVG(StudentResult) "成绩"
FROM result
GROUP BY (StudentNo)
HAVING AVG(StudentResult) > 80;
ORDER BY(AVG(StudentResult)) DESC;

1.5.11 LIMIT 区间查询

语法

SELECT {*,列名,函数} 
FROM 表名 
[WHERE 基础条件]
[GROUP BY 分组条件]
[HAVING 过滤条件]
[ORDER BY (需要排序的字段) ASC||DESC]  #ASC升序(升序)  DESC(降序)
[LIMIT A,B];
LIMIT连续区间查询       
LIMIT A,BA表示需要查询的行的索引位        B所查询的容量
LIMIT 0,5第一行---第五
LIMIT 5,5第六行---第十
LIMIT 10,5第十一行---第十五
LIMIT 15,5第十六---第二十

技巧:

        LIMIT (当前页码数-1)*容量,容量

示例:

#求学校学生中 三甲学生的信息
#分析 学生总分 降序排列 区间取前三
SELECT StudentNo "学号",SUM(StudentResult) "总成绩"
FROM result
GROUP BY (StudentNo)
ORDER BY(SUM(StudentResult)) DESC
LIMIT 0,3;

1.5.12 GROUP_CONCAT 分组数据合并

示例:

#根据班级进行分组,要求查看各班人数,以及各班学员姓名。
SELECT GradeID "班级编号",COUNT(*) "班级人数",GROUP_CONCAT(StudentName) "学员姓名"
FROM student
GROUP BY(GradeID);

注意事项

使用GROUP_CONCAT()函数时必须要对数据源进行分组,如果不分组,所有数据都将合并成一行
对结果集排序 查询语句执行的查询结果,数据是按照插入时顺序进行排序
实际上需要按照某列大小值进行拍讯的话,建议只针对于数值或日期通过 ORDER BY函数进行排序
在语句最后也可以通过LIMIT控制容量大小

1.6 多表关联查询

1.6.1交叉连接查询

示例:

#查询所有的学生+所有的班级信息
SELECT * 
FROM student,grade; 

1.6.2 等值连接查询

语法

SELECT * FROM 表1,表2,... WHERE 表1.列 = 表2.列 [AND...];

示例:

#查询所有的学生姓名,住址,班级名称
SELECT StudentName "姓名",Address "住址",GradeName "班级名称"
FROM student,grade
WHERE student.GradeID = grade.GradeID;

1.6.3 内连接查询

语法

SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列 = 表2.列 [INNER JOIN 表3 ON 关系 .....][WHERE 基础条件];

示例:

#练习查询学生姓名,参考科目,考试时间,考试成绩
SELECT s.StudentName "学生姓名",su.SubjectName "参考科目",r.ExamDate "考试时间",r.StudentResult "考试成绩" 
FROM student s INNER JOIN result r ON r.StudentNo = s.StudentNo
INNER JOIN subject su ON r.SubjectNo = su.SubjectNo;

相关文章:

数据库(SQL语句:DMLDQL)

目录 有关数据表的DML操作 1.1 INSERT 语句 1.2 REPLACE 语句 replace语句的语法格式&#xff08;三种&#xff09; REPLACE 语句 和 INSERT 语句的区别 1.3 DELETE 语句 | | TRUNCATE 语句 DELETE TRUNCATE DROP 1.4 UPDATE 数据 1.5 SELECT 语句 &#xff08;DQL数…...

AnimatedDrawings:让绘图动起来

老样子&#xff0c;先上图片和官网。这个项目是让绘制的动画图片动起来&#xff0c;还能绑定人体的运动进行行为定制。 快速开始 1. 下载代码并进入文件夹&#xff0c;启动一键安装 git clone https://github.com/facebookresearch/AnimatedDrawings.gitcd AnimatedDrawingspip…...

红黑树浅浅学习

红黑树浅浅学习 红黑树概念红黑树平衡性调整 红黑树概念 二叉树&#xff1a;二叉树是每个节点最多有两个子树的树结构。二叉查找树&#xff1a;又称“二叉搜索树”&#xff0c;左孩子比父节点小&#xff0c;右孩子比父节点大&#xff0c;还有一个特性就是”中序遍历“可以让结…...

QGraphicsView 如何让图形大小适配窗口

1. setSceneRect 做什么用&#xff1f; setSceneRect是一个Qt中的函数&#xff0c;用于设置QGraphicsView中的场景矩形&#xff08;QRectF&#xff09;。 QGraphicsView是一个用于显示和编辑图形场景的控件&#xff0c;而setSceneRect函数用于设置场景矩形&#xff0c;即指定…...

sqlmap使用教程(3)-探测注入漏洞

1、探测GET参数 以下为探测DVWA靶场low级别的sql注入&#xff0c;以下提交方式为GET&#xff0c;问号&#xff08;?&#xff09;将分隔URL和传输的数据&#xff0c;而参数之间以&相连。--auth-credadmin:password --auth-typebasic &#xff08;DVWA靶场需要登录&#xf…...

期待已久!阿里云容器服务 ACK AI 助手正式上线

作者&#xff1a;行疾 大模型技术的蓬勃发展持续引领 AI 出圈潮流&#xff0c;各行各业都在尝试采用 AI 工具实现智能增效。 2023 年云栖大会上&#xff0c;阿里云容器服务团队正式发布 ACK AI 助手&#xff0c;带来大模型增强智能诊断&#xff0c;帮助企业和开发者降低 K8s …...

[BUG] Authentication Error

前言 给服务器安装了一个todesk&#xff0c;但是远程一直就是&#xff0c;点击用户&#xff0c;进入输入密码界面&#xff0c;还没等输入就自动返回了 解决 服务器是无桌面版本&#xff0c;或者桌面程序死掉了&#xff0c;重新安装就好 sudo apt install xorg sudo apt inst…...

23种设计模式概述

学习设计模式对我们有什么帮助&#xff1f; 1.提高代码质量和可维护性&#xff1a;设计模式是经过验证的解决方案&#xff0c;有助于解决常见的设计问题。使用设计模式可以减少代码冗余&#xff0c;增强代码的可读性和可维护性&#xff0c;并提高代码的可靠性。 2.提升开发效率…...

英文阅读-LinkedIn‘s Tips for Highly Effective Code Review

LinkedIn的CR技巧 LinkedIn团队CodeReview经验与方法&#xff0c;原文来自https://thenewstack.io/linkedin-code-review/ 总结 Do I Understand the “Why”? 在提交pr的同时需要描述本次修改的“动机”&#xff0c;有助于提高代码文档质量。 Am I Giving Positive Feedbac…...

性能优化-高通的Hexagon DSP和NPU

原文来自【 Qualcomm’s Hexagon DSP, and now, NPU 】 本文主要介绍Qualcomm Hexagon DSP和NPU&#xff0c;这些为处理简单大量运算而设计的硬件。 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xf…...

第137期 Oracle的数据生命周期管理(20240123)

数据库管理137期 2024-01-23 第137期 Oracle的数据生命周期管理&#xff08;20240123&#xff09;1 ILM2 Heat Map3 ADO4 优点5 对比总结 第137期 Oracle的数据生命周期管理&#xff08;20240123&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Orac…...

电脑的GPU太强了,pytorch版本跟不上,将cuda驱动进行降级

我的情况&#xff1a; 我买的电脑的GPU版本为rtx4060&#xff0c;但是装上相应的驱动后&#xff0c;cuda的版本为12.3&#xff0c;而现在pytorch中cuda安装命令的最新版本为12.1&#xff0c;所以我将电脑的驱动进行降级为cuda版本为10.1的。 最后成功安装cuda10.1版本的驱动 …...

1 认识微服务

1.认识微服务 随着互联网行业的发展&#xff0c;对服务的要求也越来越高&#xff0c;服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢&#xff1f; 1.0.学习目标 了解微服务架构的优缺点 1.1.单体架构 单体架构&#xff1a;将业务的所有…...

PHP+SOCKET 服务端多进程处理多客户端请求 demo

服务端 $socket socket_create(AF_INET,SOCK_STREAM,SOL_TCP); socket_bind($socket,0,95012) or die( server bind fail: . socket_strerror(socket_last_error())); socket_listen($socket,5);$child 0; //初始化子进程数 while(true){$client socket_accept($socket);$pi…...

Matplotlib笔记:安装Matplotlib+常用绘图

Matplotlib Python的2D绘图库 安装Matplotlib 打开Anaconda Prompt切换环境&#xff08;默认是base&#xff0c;无需切换&#xff09;输入命令行安装pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib3.5.2 绘图 导入import matplotlib.pyplot as plt …...

Confluence6+mysql5.7安装避坑详细记录

目录 一、前言 二、下载与安装 1、版本和安装环境 2、安装数据库 3、配置数据库 4、安装confluence 三、Pj confluence 1、选择语言和产品安装 2、Pj 3、上传mysql驱动 4、重启Confluence服务继续安装 四、Confluence重启卸载方法 重启方法 方法一 方法二 卸载…...

YTM32的HSM模块在信息安全场景中的应用

YTM32的HSM模块在信息安全场景中的应用 文章目录 YTM32的HSM模块在信息安全场景中的应用引言应用场景&#xff1a;一点点密码学基础硬件&#xff1a;YTM32的信息安全子系统HCU外设模块硬件特性基本的应用操作流程&#xff0c;以计算AES-ECB为例硬件上对处理多块数据上的一些设计…...

时间序列大模型:TimeGPT

论文&#xff1a;https://arxiv.org/pdf/2310.03589.pdf TimeGPT&#xff0c;这是第一个用于时间序列的基础模型&#xff0c;能够为训练期间未见过的多样化数据集生成准确的预测。 大规模时间序列模型通过利用当代深度学习进步的能力&#xff0c;使精确预测和减少不确定性成为…...

CloudPanel RCE漏洞复现(CVE-2023-35885)

0x01 产品简介 CloudPanel 是一个基于 Web 的控制面板或管理界面,旨在简化云托管环境的管理。它提供了一个集中式平台,用于管理云基础架构的各个方面,包括虚拟机 (VM)、存储、网络和应用程序。 0x02 漏洞概述 由于2.3.1 之前的 CloudPanel 具有不安全的文件管理器 cook…...

WPF多值转换器

背景&#xff1a;实现Slider拖动可以调整rgb 单转换器&#xff1a;WPF中数据绑定转换器Converter-CSDN博客 在View中&#xff1a; <StackPanel Orientation"Vertical"><Slider x:Name"slider_R" Minimum"0" Maximum"255" Wi…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

vue3 字体颜色设置的多种方式

在Vue 3中设置字体颜色可以通过多种方式实现&#xff0c;这取决于你是想在组件内部直接设置&#xff0c;还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法&#xff1a; 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...