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

【数据库】关系数据库标准语言-SQL(金仓)下

4、数据查询

语法:
SELECT [ALL | DISTINCT] <目标列表达式> [,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] …
[ WHERE <条件表达式> ]
[ GROUP BY <列名1> [ HAVING <条件表达式> ] ]
[ ORDER BY <列名2> [ ASC | DESC ] ] ;

注:
➢ SELECT子句:指定要显示的属性列;
➢ FROM子句:指定查询对象(基本表或视图);
➢ WHERE子句:指定查询条件;
➢ GROUP BY子句:对查询结果按指定列的值分组,该属性列值
相等的元组为一个组。通常会在每组中使用集函数;
➢ HAVING短语:筛选出只有满足指定条件的组;
➢ ORDER BY子句:对查询结果按指定列值升序或降序排序。

如果你用金仓数据库,请设置好你自己的模式
金仓数据库提示找不到数据表,一般都是模式路径问题
SET search_path TO “S-T”;
SET search_path TO PUBLIC;
SET search_path TO “S-T”,PUBLIC;
注意:在金仓V8,设置搜索模式路径之后,这个路径(查找和插入)优先,如果需要删除数据、删除表格,最好加前缀

4.1单表查询–只涉及到一个表的查询
  • SELECT+列名

[例1]查询全体学生的学号与姓名。
SELECT Sno,Sname
FROM “S-T”.Student; //等价于 πsno,Sname (Student)–投影,但是投影会去重复,SELECT不会去重复
[例2] 查询全体学生的详细记录。
SELECT * FROM “S-T”.Student;//表示将表中的列全部按序输出

😎实战
[步骤1] 设置默认搜索路径
SET search_path TO “S-T”;
<无论是查找还是插入,都会默认到"S-T"模式下>
[步骤2] 在Student表插入一个记录
INSERT INTO student (sno,sname,ssex,sage,sdept)
VALUES(‘231803001’,‘张三’,‘M’,18,‘网络与信息安全学院’);
<在设置了默认搜索路径后(要插入的表在默认搜索路径所包含的模式中),插入记录的时候就不用加前缀了>
[步骤3] 查看插入情况,执行单表查询例子
SELECT Sno,Sname From Student;
SELECT * From Student ;

  • SELECT+目标列表达式

[例1] 查全体学生的姓名及其出生年份(假设这个表是2025年的)
SELECT Sname, 2025-Sage
FROM Student;
在这里插入图片描述

[例2]查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所在系名。
SELECT Sname, ‘Year of Birth:’, 2007-Sage, LOWER(Sdept)
FROM Student ;
在这里插入图片描述

使用列别名改变查询结果的列标题
;
SELECT Sname 姓名, ‘出生年份:’ 出生年份, 2025-Sage 出生年份, LOWER(Sdept) 院系小写
FROM Student;
在这里插入图片描述
LOWER和UPPER的使用在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述原表中的数据并没有改变
在这里插入图片描述在这里插入图片描述
SELECT语句想显示出一整列解释语句,但原始表的内容并不变,只是执行本次SELECT才会显示。在这里插入图片描述在这里插入图片描述
但是,如果这样,列名会出错:
在这里插入图片描述在这里插入图片描述

  • 消除结果中取值重复的行--在SELECT子句中使用DISTINCT短语。
    在这里插入图片描述
    💥注意:DISTINCT短语的作用范围是所
  • 有目标列。返

回的所有目标列中必须有一个属性不同。
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:在关系代数投影(π)运算的定义中直接去掉了结果中的重复元组,在SQL中必须在SELECT子句中用DISTINCT明确指定才能去掉重复列。

4.2单表查询–使用WHERE子句

在这里插入图片描述

4.2.1比较

在这里插入图片描述

4.2.2确定范围(BETWEEN AND)

在这里插入图片描述

4.2.3确定集合(IN、NOT IN)

在这里插入图片描述

4.2.4字符串匹配

在这里插入图片描述
在这里插入图片描述

💥注意:没有模糊查询的要求就不要使用LIKE,效率会低很多

在这里插入图片描述
在这里插入图片描述

4.2.5涉及空值的查询

在这里插入图片描述

在这里插入图片描述

4.2.6多重条件的查询(将上面五种查询结合一下)

用逻辑运算符AND和OR来联结多个查询条件
➢ AND的优先级高于OR
➢ 可以用括号改变优先级
在这里插入图片描述
在这里插入图片描述

💜SQL代码优化:
/如果建立了WHERE子句中的属性列的索引/,[NOT]BETWEEN … AND … 和 [NOT] IN将不会利用索引提高查询效率,应改为多重条件查询,效率会提高,如上例。(比较的效率更高)

4.3单表查询–对查询结果排序输出

使用ORDER BY子句
● 可以按一个或多个属性列排序
➢ 升序:ASC;
➢ 降序:DESC;
➢ 缺省值为升序
● 当排序列含空值
➢ ASC:排序列为空值的元组最后显示
➢ DESC:排序列为空值的元组最先显示
(将空值作为最大值来理解)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.4单表查询–集函数

5类主要集函数:(默认为ALL)
(1) 计数
COUNT ([DISTINCT|ALL] *)
COUNT ([DISTINCT|ALL] <列名>)
(2) 计算总和
SUM ([DISTINCT|ALL] <列名>)
(3) 计算平均值
AVG ([DISTINCT|ALL] <列名>)
(4) 求最大值
MAX ([DISTINCT|ALL] <列名>)
(5) 求最小值
MIN ([DISTINCT|ALL] <列名>)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.5单表查询–对查询结果分组输出

使用GROUP BY子句分组
分组方法:按指定的一列或多列值分组 ,值相等的为一组
执行顺序:WHERE->GROUP BY->HAVING->SELECT
💥注意:使用GROUP BY子句后,SELECT子句的列名列表中只能出现分组属性和集函数。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.6连接查询

 连接查询--将两个(以上)表连接进行查询
 同时涉及多个表的查询
 连接查询的意义等价于关系代数中的θ连接、等值连接和自然连接。

在这里插入图片描述

由于连接采用的是笛卡尔积,当数据非常大时,效率很低。
💥提高查询效率的方法:
(1) 对表2按连接字段建立索引
(2) 对表1中的每个元组,依次根据其连接字段值查询表2的索引,从中找到满足条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。

4.6.1连接查询–自身连接

在这里插入图片描述
在这里插入图片描述
注:
(1) 一个表与其自己进行连接,称为表的自身连接
(2) 需要给表起别名以示区别
(3) 由于所有属性名都是同名属性,因此必须使用别名前缀
❓如何求一个课程的先修课的先修课的先修课❓
在这里插入图片描述

4.6.2连续查询–外连接

在这里插入图片描述

在这里插入图片描述
注:
(1)USING表示在两个关系的某些同名列上进行连接
(2)右外连接:RIGHT OUTER JOIN
(3)全外连接:FULL OUTER JOIN
(4)内连接:INNER JOIN

4.6.3复合条件连接

WHERE子句中含多个连接条件
在这里插入图片描述
在这里插入图片描述

4.7嵌套查询
4.7.1不相关子查询

 一个SELECT-FROM-WHERE语句称为一个查询块;
 将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。
在这里插入图片描述
注:
 子查询的限制--不能使用ORDER BY子句,也没有意义;
 层层嵌套方式反映了SQL语言的结构化;
 有些嵌套查询可以用连接运算替代。
在这里插入图片描述
执行过程:
(1) 先执行子查询,得到结果集{IS}
(2) 再执行父查询WHERE Sdept IN {IS}
这种查询称为不相关子查询,即子查询的执行不依赖于父查询的条件。
在这里插入图片描述
注意:内查询是不相关子查询
该查询也可用连接来完成。
注:通常采用不相关子查询的效率要优于连接查询。
在这里插入图片描述
当能确切知道内层查询返回单值时,可用比较运算符(>,<,=,>=,<=,!=或< >)。
注意:是不相关子查询

注意:有些数据库管理系统要求子查询一定要跟在比较符之后!

4.7.2相关子查询

在这里插入图片描述
此查询的执行过程:
➢ (1)首先取外层查询中表的第一个元组,将Sno值传递给内层查询;
➢ (2)执行内层查询,根据结果再执行外层查询;
➢ (3)取外层表的下一个元组,重复这一过程,直至外层表全部检查完为止。
这种查询称为相关子查询,即子查询的条件与父查询当前值相关。

4.7.3带有ANY或ALL谓词的子查询

谓词语义:(1) ANY ( SOME ):某些值 (2) ALL:所有值

➢ > ANY
大于子查询结果中的某个值
➢ > ALL
大于子查询结果中的所有值
➢ < ANY
小于子查询结果中的某个值
➢ < ALL
小于子查询结果中的所有值
➢ >= ANY
大于等于子查询结果中的某个值
➢ >= ALL
大于等于子查询结果中的所有值
➢ <= ANY
小于等于子查询结果中的某个值
➢ <= ALL
小于等于子查询结果中的所有值
➢ = ANY
等于子查询结果中的某个值
➢ =ALL
等于子查询结果中的所有值(没有实际意义)
➢ !=(或<>)ANY
不等于子查询结果中的某个值
➢ !=(或<>)ALL
不等于子查询结果中的任何一个值

在这里插入图片描述
执行过程

  1. 执行此查询时,首先处理子查询,找出IS系中所有学生的年龄,构成一个集合(19,18)
  2. 处理父查询,找所有不是IS系且年龄小于19 或 18的学生
    注意:是不相关子查询
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    注:用集函数实现子查询通常比直接用ANY或ALL查询效率要高,因为前者通常能够减少比较次数。
4.7.4带有EXISTS谓词的子查询

▪ EXISTS谓词的意义:
▪ 是存在量词在SQL中的应用;
▪ 带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑假值“false”;
➢若内层查询结果非空,则返回真值
➢若内层查询结果为空,则返回假值
▪ 由EXISTS引出的子查询,其目标列表达式通常都用* ,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义。
在这里插入图片描述
在这里插入图片描述
注: (1) 所有带EXISTS或NOT EXISTS谓词的子查询能够被其他形式的子查询等价替换
(2)所有带IN谓词、比较运算符、ANY和ALL谓词的子查询都能用带EXISTS谓词的子查询等价替换。

4.7.5用EXISTS/NOT EXISTS实现全称量词(难点)

在这里插入图片描述
在这里插入图片描述

💦上述详细逻辑实现:
假设有张三和李四两个学生,一共有ABC三门课,张三选了ABC,李四选了AC。
首先,从第一重查询里选出张三,从第二重查询里选择A,在第三重查询里判断,第三重的WHERE返回true,进入第二重,经过NOT EXISTS,第二重的WHERE是false,接着,在第二重查询里面选择B,在第三重查询里判断,即判断张三是否选择了B,返回true,进入第二重,经过NOT EXISTS,第二重的WHERE是false,接着,在第二重查询里面选择C,在第三重查询里判断,返回true,进入第二重,经过NOT EXISTS,第二重的WHERE是false。现在,第二重的遍历结束且WHERE语句全是false,故第二重返回false,经过第一重的NOT EXISTS ,第一重的WHERE语句是true,是true就立马输出,输出张三的信息。
对于李四,从第一重查询里选出李四,从第二重查询里选择A,在第三重查询里判断,第三重的WHERE返回true,进入第二重,经过NOT EXISTS,第二重的WHERE是false,接着,在第二重查询里面选择B,在第三重查询里判断,即判断张三是否选择了B,返回false,进入第二重,经过NOT EXISTS,第二重的EXISTS变成true,此时返回到第一重,经过NOT EXISTS变为false,不输出李四,结束!!!
也就是说:当遇到true时会立即返回到上一重,到遇到false时,会接着在该重遍历直到遇到true立马返回或者遍历结束全是false,返回false进行下一重的遍历。
当遇到true,本重后面的遍历就会结束掉,直接返回到上一重。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
若95002选了ABC
张三:ABC
李四:AC
李五:D
上面的程序中,只要某个学生遍历到和95002一样的课就会结束(不输出),只有李五输出,即实现了输出和与95002同学的课程没有交集的的同学。
在这里插入图片描述
若95002选了ABC
张三:ABC
李四:AC
李五:D
上面的程序,实现了只要有一门与95002相同,就会输出该学生。
在这里插入图片描述
若95002选了ABC
张三:ABC
李四:AC
李五:D
上面的程序,输出李四和王五,实现了只要不选95002中的一门(只要不是ABC)就能输出。

4.8集合查询

💜 集合查询--将两个SELECT-FROM-WHERE查询块用集合操作语句联结起来。
💜集合操作命令:
并操作(UNION)
交操作(INTERSECT)
差操作(EXCEPT)
💜语句形式:
<查询块>
操作
<查询块> ;
注:参加操作的各结果表的列数必须相同;对应项的数据类型也必须相同
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.9查询注意事项

一、别名的使用
(1) 别名用于对输出属性列的重命名
在这里插入图片描述
(2) 别名用于自身连接查询和对同一表的相关子查询中,用于区别对同一表的不同引用
在这里插入图片描述
(3) 对不相关子查询可以不使用别名
在这里插入图片描述
二、DISTINCT的使用
DISTINCT用于区分相同的记录,将多条相同的记录作为一条处理。
在这里插入图片描述
三、集函数的使用
集函数只能用于 SELECT子句和 HAVING短语之中,而绝对不能出现在 WHERE子句中。
在这里插入图片描述
在这里插入图片描述
四、GROUP BY的使用
使用了分组的查询语句,其SELECT子句中只能出现分组属性和集函数,而不能有在GROUP BY没有出现的属性。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
五、ORDER BY子句在复合查询中的应用
ORDER BY子句用于对查询结果进行排序后再输出,故只用于最外层的查询,而子查询中不应该出现ORDER BY子句。
在这里插入图片描述
在这里插入图片描述
六、输出多个表的属性的查询
查询的输出只能取自最外层查询所使用的表,对于子查询中的属性是不能作为最终的输出的。如果输出的属性涉及多个表,则最外层查询只能使用这些表的连接查询。
在这里插入图片描述

5.数据更新

 插入数据
 修改数据
 删除数据
一、插入数据
(1) 插入单个元组--新元组插入指定表中。
语句格式:
INSERT
INTO <表名> [(<属性列1>[,<属性列2 >…)]
VALUES (<常量1> [,<常量2>] … ) ;
 INTO子句
➢ 指定要插入数据的表名及属性列
➢ 属性列的顺序可与表定义中的顺序不一致
➢ 没有指定属性列:表示要插入的是一条完整的元组,且属性列属
性与表定义中的顺序一致
➢ 指定部分属性列:插入的元组在其余属性列上取空值
 VALUES子句
➢ 提供的值的个数和值的类型必须与INTO子句匹配
在这里插入图片描述
在这里插入图片描述
(2) 插入子查询结果
语句格式:
INSERT
INTO <表名> [(<属性列1> [,<属性列2>… )]
子查询;
注:
 INTO子句(与插入单条元组类似)
➢ 指定要插入数据的表名及属性列
➢ 属性列的顺序可与表定义中的顺序不一致
➢ 没有指定属性列:表示要插入的是一条完整的元组
➢ 指定部分属性列:插入的元组在其余属性列上取空值
 子查询
➢ SELECT子句目标列属性的个数和类型必须与INTO子句匹配。
在这里插入图片描述
二、修改数据(用的比较少)
语句格式:
UPDATE <表名>
SET <列名>=<表达式>[, <列名>=<表达式>]…
[WHERE <条件>];
功能:
修改指定表中满足WHERE子句条件的元组。
注:
➢ SET子句--指定修改方式,要修改的列和修改后取值
➢ WHERE子句
➢ 指定要修改的元组
➢ 缺省表示要修改表中的所有元组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
三、删除数据(较常用)
语句格式:
DELETE
FROM <表名>
[WHERE <条件>] ;
功能:
删除指定表中满足WHERE子句条件的元组
注:
WHERE子句
 指定要删除的元组
 缺省表示要修改表中的所有元组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在执行插入、修改、删除语句时会检查是否会破坏表上已定义的完整性规则。如果破坏,系统会提示语句无效。
在建立表时,可以设置参照完整性:
⚫ 不允许修改/删除
⚫ 级联修改/删除
定义SC的外码Sno: //选课表记录,受制于学生表
FOREIGN KEY (Sno) REFERENCES Student(Sno)
ON DELETE CASCADE ON UPDATE CASCADE;

6.空值

空值的产生:插入时不提供值、设为空值
在这里插入图片描述
在这里插入图片描述

 判断一个属性的值是否为空值,用IS NULL或IS NOT NULL来表示。

在这里插入图片描述

7.总结

在这里插入图片描述

8.视图
8.1什么是视图(View)?

😍视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。
在这里插入图片描述
基表中的数据发生变化,从视图中查询出的数据也随之改变
 视图一经定义,就可以和基本表一样被查询和删除,并且可以在视图之上再定义新的视图。
 视图的更新(增加、删除、修改)操作会受到一定的限制。
 视图对应三级模式体系结构中的外模式
在这里插入图片描述

8.2视图定义

😴视图定义语法:
CREATE VIEW <视图名> [(<列名> [,<列名>]…)]
AS <子查询>
[WITH CHECK OPTION];
😴CREATE VIEW 子句中的列名可以省略,此时视图的属性由子查询中SELECT目标列中的诸字段组成。
😴子查询中的属性列不允许定义别名不允许含有ORDER BY子句和DISTINCT短语。
😴执行CREATE VIEW语句时只是把视图的定义存入数据字典,并不执行其中的SELECT语句。在对视图进行查询时,按视图的定义从基本表中将数据查出(执行视图定义中的SELECT语句)。
😴WITH CHECK OPTION表示对视图进行更新操作的数据必须满足视图定义的谓词条件(子查询的条件表达式)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
针对此视图,当进行以下操作时,
➢ 修改操作:DBMS自动加上Sdept= 'IS’的条件
➢ 删除操作:DBMS自动加上Sdept= ‘IS’的条件
➢ 插入操作:DBMS自动检查Sdept属性值是否为’IS’
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.3视图的删除

语法:
DROP VIEW <视图名> [CASCADE] ;
注:
➢ 该语句从数据字典中删除指定的视图定义;
➢ 如果该视图导出了其他视图,则使用CASCADE级联删除,或者先显式删除导出的视图,再删除该视图;
在这里插入图片描述

8.4视图的查询

此视图查询的方法:
(1) 视图实体化法:
通过视图定义建立视图结构下的临时表并对临时表进行查询,在查询结束后删除临时表。
(2) 视图消解法:
根据视图定义将对视图的查询转换为对基本表的查询
在这里插入图片描述
在这里插入图片描述

8.5更新视图

和基本表一样,视图定义之后也可以进行插入、删除和修改操作。
(1) 用户角度:更新视图与更新基本表相同;
(2) 实现视图更新的方法
➢ 视图实体化法(View Materialization)
➢ 视图消解法(View Resolution)
(3) 指定WITH CHECK OPTION子句后,在更新视图时会进行检查,防止用户通过视图对不属于视图范围内的基本表数据进行更新。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一些视图是不可更新的,因为对这些视图的更新不能唯一地有意义地转换成对相应基本表的更新(对两类方法均如此)。
💜从理论上讲,对其更新能够唯一转换为对应基本表更新的视图是可更新的。

在这里插入图片描述

8.6视图的作用–安全保护

在这里插入图片描述

相关文章:

【数据库】关系数据库标准语言-SQL(金仓)下

4、数据查询 语法&#xff1a; SELECT [ALL | DISTINCT] <目标列表达式> [,<目标列表达式>] … FROM <表名或视图名>[, <表名或视图名> ] … [ WHERE <条件表达式> ] [ GROUP BY <列名1> [ HAVING <条件表达式> ] ] [ ORDER BY <…...

Vue3+SpringBoot全栈开发:从零实现增删改查与分页功能

前言 在现代化Web应用开发中&#xff0c;前后端分离架构已成为主流。本文将详细介绍如何使用Vue3作为前端框架&#xff0c;SpringBoot作为后端框架&#xff0c;实现一套完整的增删改查(CRUD)功能&#xff0c;包含分页查询、条件筛选等企业级特性。 技术栈介绍 前端&#xff1…...

小黑大语言模型应用探索:langchain智能体构造源码demo搭建1(初步流程)

导入工具包 rom langchain_core.tools import BaseTool from typing import Sequence, Optional, List from langchain_core.prompts import BasePromptTemplate import re from langchain_core.tools import tool from langchain_core.prompts.chat import (ChatPromptTempla…...

极客时间:用 FAISS、LangChain 和 Google Colab 模拟 LLM 的短期与长期记忆

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

leetcode hot100刷题日记——35.子集

解答&#xff1a; 方法一&#xff1a;选or不选的dfs&#xff08;输入视角&#xff09; 思路&#xff1a;[1,2,3]的全部子集可以看成是对数组的每一位数字做选择。 eg.空集就是一个数字都不选&#xff0c;[1,2]就是1&#xff0c;2选&#xff0c;3不选。 class Solution { pub…...

MybatisPlus(含自定义SQL、@RequiredArgsConstructor、静态工具类Db)

大家在日常开发中应该能发现&#xff0c;单表的CRUD功能代码重复度很高&#xff0c;也没有什么难度。而这部分代码量往往比较大&#xff0c;开发起来比较费时。 因此&#xff0c;目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…...

React 组件异常捕获机制详解

1. 错误边界&#xff08;Error Boundaries&#xff09;基础 在React应用开发中&#xff0c;组件异常的有效捕获对于保证应用稳定性至关重要。React提供了一种称为"错误边界"的机制&#xff0c;专门用于捕获和处理组件树中的JavaScript错误。 错误边界是React的一种…...

手眼标定:九点标定、十二点标定、OpenCV 手眼标定

因为一直使用6轴协作机器人&#xff0c;且主要应用是三维视觉&#xff0c;平常的手眼标定基本都是基于OpenCV来计算的&#xff0c;听说有九点标定和十二点标定&#xff0c;顺便了解下。 目录 1.九点标定1.1 基本原理1.2 关于最小二乘法1.3 具体示例 2.十二点标定3.OpenCV 手眼标…...

[总结]前端性能指标分析、性能监控与分析、Lighthouse性能评分分析

前端性能分析大全 前端性能优化 LightHouse性能评分 性能指标监控分析 浏览器加载资源的全过程性能指标分析 性能指标 在实现性能监控前&#xff0c;先了解Web Vitals涉及的常见的性能指标 Web Vitals 是由 Google 推出的网页用户体验衡量指标体系&#xff0c;旨在帮助开发者量…...

React-native的新架构

本文总结: 文章主要介绍了 React Native 的新架构&#xff0c;包括以下几个方面的内容&#xff1a;&#x1f4f1;✨ 如何抹平 iOS 和 Android 样式差异&#xff0c;提升跨平台一致性&#xff1b; 分析了旧架构中存在的问题&#xff0c;如通信瓶颈、启动慢、维护复杂等&#x…...

【Android】MT6835 + MT6631 WiFi进入Meta模式出现WiFi_HQA_OpenAdapter failed

问题描述 WiFi进入Meta异常,出现WiFi_HQA_OpenAdapter failed [ 12.694501] mtk_wmtd_worker: [name:wlan_drv_gen4m_6835&][wlan][710]wlanProbeSuccessForLowLatency:(INIT INFO) LowLatency(ProbeOn) [ 12.699854] ccci_fsm: [name:ccci_md_all&][ccci1/fsm]M…...

Git 全平台安装指南:从 Linux 到 Windows 的详细教程

目录 一、Git 简介 二、Linux 系统安装指南 1、CentOS/RHEL 系统安装 2、Ubuntu/Debian 系统安装 3、Windows 系统安装 四、安装后配置&#xff08;后面会详细讲解&#xff0c;现在了解即可&#xff09; 五、视频教程参考 一、Git 简介 Git 是一个开源的分布式版本控制系…...

Tree 树形组件封装

整体思路 数据结构设计 使用递归的数据结构&#xff08;TreeNode&#xff09;表示树形数据每个节点包含id、name、可选的children数组和selected状态 状态管理 使用useState在组件内部维护树状态的副本通过deepCopyTreeData函数进行深拷贝&#xff0c;避免直接修改原始数据 核…...

AI书签管理工具开发全记录(五):后端服务搭建与API实现

文章目录 AI书签管理工具开发全记录&#xff08;四&#xff09;&#xff1a;后端服务搭建与API实现前言 &#x1f4dd;1. 后端框架选型 &#x1f6e0;️2. 项目结构优化 &#x1f4c1;3. API路由设计 &#x1f9ed;分类管理书签管理 4. 数据模型定义 &#x1f4be;分类模型&…...

netTAP 100:在机器人技术中将 POWERLINK 转换为 EtherNet/IP

工业机器人服务专家 年轻的 More Robots 公司成立仅一年多&#xff0c;但其在许多应用领域的专业技术已受到广泛欢迎。这是因为More Robots提供 360 度全方位服务&#xff0c;包括从高品质工业机器人和协作机器人到咨询和培训。这包括推荐适合特定任务或应用的机器人&#xff0…...

多模态大语言模型arxiv论文略读(九十八)

Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文标题&#xff1a;Accelerating Pre-training of Multimodal LLMs via Chain-of-Sight ➡️ 论文作者&#xff1a;Ziyuan Huang, Kaixiang Ji, Biao Gong, Zhiwu Qing, Qinglong Zhang, Kecheng Zhe…...

EXCEL--累加,获取大于某个值的第一个数

一、函数 LET(data,A1:A5,cumSum,SCAN(0,data,LAMBDA(a,b,ab)),idx,MATCH(TRUE,cumSum>C1,0),INDEX(data,idx)) 二、函数拆解 1、LET函数&#xff1a;LET(name1, value1, [name2, value2, ...], calculation) name1, name2...&#xff1a;自定义的变量名&#xff08;需以字…...

【vscode】切换英文字母大小写快捷键如何配置

按 ⌘(Command) Shift P 打开命令面板搜索 "Transform to Uppercase" 或 "Transform to Lowercase" 点击Transform to Uppercase 命令后的齿轮图标 进入设置页面 然后就可以进行配置了 比如我是mac电脑&#xff0c; 切换大写可以配置为 shift alt…...

vue笔记-路由

文章目录 createWebHistory的使用router-linkrouter-link颜色是黑色&#xff0c;正常应该是蓝色router-link 跳转了但是不展示 其他 vue这个题目还是太大&#xff0c;路由单独拆出来。 createWebHistory的使用 推荐在vue-router4中使用。 1、导入。 import { createRouter, c…...

本地部署 DeepSeek R1(最新)【从下载、安装、使用和调用一条龙服务】

文章目录 一、安装 Ollama1.1 下载1.2 安装 二、下载 DeepSeek 模型三、使用 DeepSeek3.1 在命令行环境中使用3.2 在第三方软件中使用 一、安装 Ollama 1.1 下载 官方网址&#xff1a;Ollama 官网下载很慢&#xff0c;甚至出现了下载完显示 无法下载&#xff0c;需要授权 目…...

域名解析怎么查询?有哪些域名解析查询方式?

在互联网的世界里&#xff0c;域名就像是我们日常生活中的门牌号&#xff0c;帮助我们快速定位到想要访问的网站。而域名解析则是将这个易记的域名转换为计算机能够识别的IP地址的关键过程。当我们想要了解一个网站的域名解析情况&#xff0c;或者排查网络问题时&#xff0c;掌…...

win主机如何结束正在执行的任务进程并重启

最近遇到一个问题&#xff0c;一个java入库程序经常在运行了几个小时之后消息无法入库&#xff0c;由于已经没有研发人员来维护这个程序了&#xff0c;故此只能每隔一段时间来重启这个程序以保证一直有消息入库。 但是谁也不能保证一直有人去看这个程序&#xff0c;并且晚上也不…...

maven中的maven-resources-plugin插件详解

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站 一、插件定位与核心功能 maven-resources-plugin是Maven构建工具的核心插件之一&#xff0c;主要用于处理项目中的资源文件&#xff08;如…...

ROS云课基础篇-01-Linux-250529

ROS云课基础篇收到了很多反馈&#xff0c;正面评价比例高&#xff0c;还有很多朋友反馈需要写更具体一点。 ROS云课基础篇极简复习-C、工具、导航、巡逻一次走完-CSDN博客 于是&#xff0c;有了这篇以及之后的案例&#xff0c;案例均已经测试过8年&#xff0c;但没有在博客公…...

通俗易懂解析:@ComponentScan 与 @MapperScan 的异同与用法

在 Spring 和 MyBatis 集成开发中&#xff0c;ComponentScan 和 MapperScan 是两个核心注解&#xff0c;但它们的用途和工作机制截然不同。本文将通过通俗的语言和示例代码&#xff0c;带您轻松掌握它们的区别和使用方法。 一、基础概念 ComponentScan&#xff1a;Spring 的“通…...

深入了解 C# 异步编程库 AsyncEx

在现代应用程序开发中&#xff0c;异步编程已经成为提升性能和响应能力的关键&#xff0c;尤其在处理网络请求、I/O 操作和其他耗时任务时&#xff0c;异步编程可以有效避免阻塞主线程&#xff0c;提升程序的响应速度和并发处理能力。C# 提供了内建的异步编程支持&#xff08;通…...

NodeJS全栈开发面试题讲解——P1Node.js 基础与核心机制

✅ 1.1 Node.js 的事件循环原理&#xff1f;如何处理异步操作&#xff1f; 面试官您好&#xff0c;我理解事件循环是 Node.js 的异步非阻塞编程核心。 Node.js 构建在 V8 引擎与 libuv 库之上。虽然 Node.js 是单线程模型&#xff0c;但它通过事件循环&#xff08;event loop&a…...

Vulhub靶场搭建(Ubuntu)

前言&#xff1a;Vulhub 是一个开源的漏洞靶场平台&#xff0c;全称是 Vulhub: Vulnerable Web Application Environments&#xff0c;主要用于学习和复现各类 Web 安全漏洞。它的核心特征是通过 Docker 环境快速搭建出带有特定漏洞的靶场系统&#xff0c;适合渗透测试学习者、…...

C++:参数传递方法(Parameter Passing Methods)

目录 1. 值传递&#xff08;Pass by Value&#xff09; 2. 地址传递&#xff08;Pass by Address&#xff09; 3. 引用传递&#xff08;Pass by Reference&#xff09; 数组作为函数参数&#xff08;Array as Parameter&#xff09; 数组作为函数返回值 什么是函数&#xff…...

大语言模型的推理能力

2025年&#xff0c;各种会推理的AI模型如雨后春笋般涌现&#xff0c;比如ChatGPT o1/o3/o4、DeepSeek r1、Gemini 2 Flash Thinking、Claude 3.7 Sonnet (Extended Thinking)。 对于工程上一些问题比如复杂的自然语言转sql&#xff0c;我们可能忍受模型的得到正确答案需要更多…...