MySQL基础知识-刷题笔记

news/2024/4/26 22:41:35/文章来源:https://blog.csdn.net/m0_47114547/article/details/129210359

数据库刷题笔记

查漏补缺,面试八股文,以下内容未说明的均以MySQL数据库为准

where 不能和聚合函数一起使用
having可以和聚合函数一起使用
having必须与group by一起使用

1、SUBSTRING_INDEX(str ,substr ,n):返回字符substr在str中第n次出现位置之前的字符串;

2、

sp_helpindex:查看表中的索引信息,
sp_help:查看有关数据库对象的摘要信息,
sp_helpdb:查看指定数据库或全部数据库信息,
sp_helptext:查看存储过程、视图、触发器等文本信息

3、去重有2种方式用group by和distinct

4、Mysql(版本8.0.25)不支持full join

5、为数据库用户授权

https://www.cnblogs.com/elijah-li/p/16286788.html

  • 创建用户格式:create user 用户名@ip地址 identified by '密码';

  • 授权:grant all on *.* To 用户名@'ip地址';

    grant select,create on 数据库名.表名 To 用户名@ip地址;

  • 管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟 .

  • 有人会问truncate权限呢,其实truncate权限就是create+drop,这点需要注意

# 创建用户
create user root@'192.168.11.%' identified  by '123456';
# 这样root@192.168.11.% 这个网段的用户可以登录create user elijah@'192.168.11.161' identified by '123456';
# 这样只允许elijah用户登录create user li@'%' identified by '123456';
# 所有li用户都可登录# 删除用户
drop user root@'192.168.11.%';
# 授权
grant all on *.* To elijah@'192.168.11.161';
grant select,create on oldboy_test.* To elijah@'192.168.11.161';# 查看授权
show grants for elijah@'192.168.11.161';
# 刷新权限表
flush privileges;

6、

< 和 > 分别对应 &lt;  和  &gt;

7、

Charindex() 返回字符或字符串在另一个字符的起始位置CHARINDEX(查找字符,被查字符,开始位置)
SubString() 截取字符串中的一部分字符。SUBSTRING(字符串,开始位置,截取长度)
Stuff() 删除指定长度的字符,并在指定的起点处插入另一组字符。STUFF(列名,开始位置,长度,替代字符串)
Soundex() 返回表示字符串声音的一串字符

8、as可以做重命名,不过也可以省略as,空格隔开新名称即可

9、eno+1-2POWER(0,eno%2)就是奇数+1,偶数-1
eno-1+2
MOD(0,eno%2)也就是奇数会+1,偶数会-1

10、

@@ERROR:返回执行的上一个 Transact-SQLTransact-SQL 语句的错误号。
@@IDENTITY:返回自增id。
@@ROWCOUNT:返回受上一个SQL语句影响的行数。
@@MAX_CONNECTIONS:返回最大用户连接数。

11、SQL的执行顺序是:FROM–WHERE–GROUP BY–HAVING–SELECT–ORDER BY

12、NULL在sql中不是用来比较的,在sql中若要取得NULL,则必须通过IS NULL或者IS NOT NULL进行获取,无法直接使用等号

13、

All():对所有数据都满足条件,整个条件才成立,>=all()等价于max,<=all()等价于min;
Any:只要有一条数据满足条件,整个条件成立,>any()等价于>min,<any()等价于<max;
some的作用和Any一样

14、 触发器是与表有关的数据库对象,在 insert/update/delete 之前或之后触发并执行触发器中定义的 SQL语句,有三种触发器类型。

image-20230224122714426

15、先分组,再过滤,用group by … having …

16、INSERT INTO 语句用于向一张表中插入新的行。SELECT INTO 语句从一张表中选取数据插入到另一张表中。常用于创建表的备份复件或者用于对记录进行存档。

17、

  • having子句即可包含聚合函数作用的字段也可包括普通的标量字段;

  • having子句必须与group by 子句同时使用,不能单独使用,having是用来过滤的,group by是限定分组。having和group by必须一起使用,或者只使用group by不适用having。但是有having的时候必须出现group by

  • having是在分组后过滤,where在分组前过滤,不冲突,可以同时使用,所以having子句和where子句是等同的。where不能和聚合函数一起使用。

  • select语句中没有聚合函数的使用时也可以用having

18、在MySQL中**不能使用 = NULL 或 != NULL 等比较运算符在列中查找 NULL 值 。**要用IS NULL 或 IS NOT NULL才会进行NULL值或非NULL值得查找。

19、以下情况游标将会自动设定INSENSITIVE选项:

当SELECT语句中使用DISTINCT、GROUP BY、HAVING UNION语句时;
使用OUTER JOIN时;
所选取的任意表没有索引时;
将实数值当作选取的列时。

20、全外连接

MySQL中没有外连接,要达到外连接的效果,应操作:全外连接=左外连接 union 右外连接

21、-- 查看建表语句

show create table student_tableCREATE TABLE `student_table` (`id` int(11) NOT NULL,`name` varchar(20) CHARACTER SET utf8 DEFAULT NULL,`birth` varchar(20) CHARACTER SET utf8 DEFAULT NULL,`sex` varchar(20) CHARACTER SET utf8 DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

22、存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。 它可以提高SQL的速度,存储过程是编译过的,如果某一个操作包含大量的SQL代码或分别被执行多次,那么使用存储过程比直接使用单条SQL语句执行速度快的多。

23、选取σ、投影π是专门的关系运算符、与∧、或∨是逻辑关系运算符、非¬是逻辑关系运算符、 ∪并Union 、− 差Difference 、∩ 交Intersection 、× 笛卡尔积 Cartesian Product

24、游标是一种从包括多条数据记录的结果集中每次提取一条记录以便处理的机制,可以看做是查询结果的记录指针;
游标允许定位在结果集的特定行;
为由其他用户对显示在结果集中的数据所做的更改提供不同级别的可见性支持;
支持对结果集中当前位置的行进行数据修改。

25、

RENAME用于表的重命名:RENAME 或 RENAME TO
MODIFY用于字段类型的修改:MODIFY COLUMN <列名> <类型>
ALTER用于对字段类型、默认值的修改:ALTER COLUMN <列名> <类型> SET DE***T <默认值>
CHANGE用于对列名及类型的修改:CHANGE COLUMN <旧列名> <新列名> <类型>

ALTER TABLE employee RENAME employee_info;		-- 更改表名为 employee_info

26、索引

数据库索引采用B+树是因为B+树在提高了磁盘IO性能的同时解决了元素遍历效率低下的问题;
如果WHERE子句中使用了索引,那么ORDER BY子句中不会使用索引;
索引滥用会降低更新表的速度。

27、左连接

left join意思是包含inner join的结果,left join 返回左表的全部记录, on的作用是左表关联右表的条件

28、SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。

(1)数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT <字段名表>FROM <表或视图名>WHERE <查询条件>

(2)数据操纵语言DML
数据操纵语言DML主要有三种形式:
①插入:INSERT
②更新:UPDATE
③删除:DELETE

(3)数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、索引、同义词、聚簇等如:CREATE TABLE / VIEW / INDEX / SYN / CLUSTER| 表 视图 索引 同义词 簇。DDL操作是隐性提交的!不能rollback

(4)数据控制语言DCL
数据控制语言DCL用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。如:
GRANT:授权。
ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。回滚—ROLLBACK回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL>ROLLBACK;
COMMIT [WORK]:提交。在数据库的插入、删除和修改操作时,只有当事务在提交到数据库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看到所做的事情,别人只有在最后提交完成后才可以看到。

(5)总结

①数据定义(SQL DDL)用于定义SQL模式、基本表、视图和索引的创建和撤消操作。
②数据操纵(SQL DML)数据操纵分成数据查询和数据更新两类。数据更新又分成插入、删除、和修改三种操作。
③数据控制(DCL)包括对基本表和视图的授权,完整性规则的描述,事务控制等内容。
④嵌入式SQL的使用规定(TCL)涉及到SQL语句嵌入在宿主语言程序中使用的规则。

29、删除触发器: DROP TRIGGER
输入 : DROP TRIGGER 触发器名称;

30、where name <> ‘张三’ 会把NULL的值对应的记录排除掉,所以不包含null和NULL的记录;

31、右连接

1)右连接以右表为主 左连接以左表为主;
2)不论左右连接,两表排序都是先写的放在左边,后写的放在右边;
3)左右连接中,以谁为主表,则其信息全部保存。从表中有多于一项符合条件的,则额外重复一次主表从而列出全部从表情况

('1004' , '张三' ,'2000-08-06' , '男');
('1009' , '李四', '2000-01-01', '男');
('1010' , '李四', '2001-01-01', '男');
('1006' , '王五', '2000-08-06' , '女');
('1008' , '张三', '2002-12-01', '女');
('1012' , '张三', '2001-12-01', '女');
('1011' , '李四', '2002-08-06' , '女');
-- 执行
select t1.*,t2.*
from (
select * from student_table where sex = '男' ) t1 
right join 
(select * from student_table where sex = '女')t2 
on  t1.name = t2.name ;
image-20230224154027792

32、null代表不确定,两个不确定显然不是相等的。要判断null要用is null

33、case when的正确语法是: case when … then … when … then … else … end,case和end不能缺少

34、insert插入时,可以给部分或所有字段名加``,不能加’‘,加’'时会执行报错。

35、length无法对null做筛选,<>无法对null做筛选

36、在视图中也可以定义新的视图,却无法创建表,因为视图是个虚表

37、授予用户SQLTest对数据库Sales的CUSTOMERS表的列cid、cname的查询权限

grant select on CUSTOMERS(cid,cname) to SQLTest

38、视图

视图是虚拟表,视图所引用的表称为视图的基表;
视图可以解决检索数据时一个表中得不到一个实体所有信息的问题;
若基表的数据发生变化,则变化也会自动反映到视图中;
数据库存储的是视图的定义,不存放视图对应的数据。

视图不能对临时表或表变量进行引用;
当SELECT语句的选择列表有TOP子句时,视图可以包含ORDER BY子句;
视图可以被嵌套,一个视图中可以嵌套另一个视图;
sp_helptext用于获取自定义视图创建的T_SQL文本,更新视图数据可用sp_refreshview

39、SQL语言的组成部分有:数据定义语言、数据处理语言、数据控制语言、数据库事务。数据字典是关于数据库中数据的描述,是元数据,而不是数据本身。

40、下面哪些字符最可能会导致sql注入?

'(单引号)
/
"(双引号)
$

41、MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。在SQL中,UNION操作符可以合并多个SELECT语句的结果集,但是只使用UNION操作符的时候,他只会列出不重复的值;如果想要获取重复值,就要用UNION ALL操作符才行。

42、group by用于分组,和聚合函数一起使用。

43、distinct需要写在case前面

44、视图是虚表,它在存储时只存储视图的定义,而没有存储对应的数据;

创建视图用CREATE VIEW
修改视图用ALTER VIEW
删除视图用DROP VIEW

45、count()函数有两种使用方式:①使用count(*)对表中的行数进行计数,此种用法不忽略null值;②使用count(column)对特定列中具有值的行进行计数,空字符“”也算,但忽略null值,null和NULL是一样的。

46、在大多数的关系型数据库里面,如果在使用left join的同时,又把附表的条件放在where子句中,而不是 on子句中时,实际的执行效果相当于inner join .

原题的D选项https://www.nowcoder.com/questionTerminal/45fa358b24364928bcb6f99c7d19ea0f?

47、MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。

[^charlist] 通配符表示 不在字符列中的任一单一字符。

MySQL中选取不以charlist中任一字符开头的语法为:

SELECT * FROM tab_name WHERE col_name REGEXP '^[charlist]';

同理,不以某、或另一某字符开头的语法为:

SELECT * FROM tab_name WHERE col_name REGEXP '^[^charlist]';
SELECT * FROM tab_name WHERE col_name NOT REGEXP '^[charlist]';

48、创建视图 语句如下 create view 视图名 as select * from 表名 where 条件

49、
①drop是完全删除表,包括表结构
②delete是删除表数据,保留表的结构,而且可以加where,只删除一行或者多行
③truncate 只能删除表数据,会保留表结构,而且不能加where

50、用户定义函数不用于执行修改数据库状态的操作;用户定义函数属于数据库,只能在该数据库下调用;标量函数和存储过程一样,可以使用EXECUTE语句执行。与系统函数一样,用户定义函数可以从查询中调用。

60、inner join时只会对非NULL的记录做join,并且2边都有的才会匹配上

61、sum是可以用于行转列的函数

62、is 只能在null的时候用 正常情况要用 =‘ ’

63、where 子句不能直接跟聚合函数Max、Min,但where子句能跟含聚合函数的子查询,所以

SELECT shirt_id,shirt_name,shirt_price FROM SHIRTABLE WHERE shirt_price > AVG(shirt_price) 是错误的
SELECT shirt_id,shirt_name,shirt_price FROM SHIRTABLE WHERE shirt_price > (SELECT AVG(shirt_price) FROM SHIRTABLE) 是对的

64、对表的结构修改属于。DDL语句。常用公式。
添加列: ALTER TABLE 表名 add 字段名
修改列: ALTER TABLE 表名 modify 字段名
删除列: ALTER TABLE 表名 drop 字段名

65、修改时加排他锁,直到事务提交后释放;数据时加排他锁,事务提交后释放锁。
读取数据时加共享锁,执行完语句后释放锁;

66、窗口函数:窗口函数对其所作用的窗口中的每一行记录输出一条结果;OVER 子句定义查询结果集内的窗口,然后,开窗函数(sum、max、min、avg、count、rank等)将计算窗口中每一行的值,以便取得各种聚合值。

开窗函数 OVER (   [ <PARTITION BY clause> ]  [ <ORDER BY clause> ]   [ <ROW or RANGE clause> ]  
)  

67、索引

为提高效率可建立组合索引,遵循“最左前缀”原则;唯一索引不允许两行具有相同的索引值,包括NULL值,允许有空值;每个表只允许有一个全文索引;非聚集索引具有完全独立于数据行的结构,所以不需要将物理数据页中的数据按列重新排序。

68、对聚合后的结果做筛选用having,where是在聚合前做筛选。

69、索引的组织方式是B+树索引,还是Hash索引与数据库的内模式有关;外模式是面向数据库用户或应用程序的局部数据视图;模式并不涉及数据的物理存储细节;模式/内模式映像保证了数据库具有较高的物理独立性。

70、coalesce函数,返回第一个非空值,如果都是空,返回空值

71、SQL合法标识符第一个字必须是 字母 、下划线 、@和#开头

72、MySQL 中使用 REGEXP 来操作正则表达式的匹配。

其中

  • ^ 该符号表示匹配输入字符串的开始位置;
  • $表示匹配输入字符串的末尾位置;
  • […] 表示匹配所包含的任意一个字符;
  • [^…]表示不能匹配括号内的任意单个字符;
  • x|y 这条竖线表示匹配x 或匹配y。

73、关于日期函数,datediff(日期1,日期2),得到的结果是日期一与日期二相差的天数,若日期1大于日期2,结果为正,否则结果为负。

74、count(*)包括了所有列,相当于行数,在统计结果的时候,不会忽略某些列值为NULL的行。
**count(1)**用1代表代码行,忽略所有列的值,在统计结果的时候,统计所有行,效果同count( *)。
count(列名)只包括列名对应一列,在统计结果的时候,会忽略列值为空的行。

75、数据库备份类型

完整数据库备份:备份整个数据库,包括事务日志部分;
差异数据库备份:仅记录自最近一次完整数据库备份以后发生改变的数据:
事务日志备份:不备份数据库本身,只记录事务日志内容;
文件和文件组备份:如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式,对数据库中的部分文件或文件组备份。

76、DENSE_RANK()是一个窗口函数,它为分区或结果集中的每一行分配排名,而排名值没有间隙。

77、

修改表:ALTER TABLE 表名 修改选项修改选项集合:
ADD COLUMN <列名> <类型> -- 增加列
CHANGE [COLUMN] <旧列名> <新列名> <新列类型> -- 修改列名或类型
ALTER [COLUMN] <列名> { SET DEFAULT <默认值> | DROP DEFAULT } -- 修改/删除 列的默认值
MODIFY [COLUMN] <列名> <类型> -- 修改列类型
DROP [COLUMN] <列名> -- 删除列
RENAME TO <新表名> -- 修改表名
CHARACTER SET <字符集名> -- 修改字符集
COLLATE <校对规则名> } -- 修改校对规则(比较和排序时用到)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_73998.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【强化学习】强化学习数学基础:贝尔曼公式

强化学习数学基础&#xff1a;贝尔曼公式强化学习的数学原理课程总览贝尔曼公式&#xff08;Bellman Equation&#xff09;一个示例状态值贝尔曼公式&#xff1a;推导过程贝尔曼公式&#xff1a;矩阵-向量形式&#xff08;Matrix-vector form&#xff09;贝尔曼公式&#xff1a…

基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网运行策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

从网易到支付宝,3年外包生涯做完,我这人生算是彻底废了......

我为什么一直做外包呢&#xff0c;原因是薪资和技术方面。 在华三做了一年外包&#xff0c;薪资5k&#xff0c;功能测试&#xff0c;接触Linux和网络&#xff0c;但是说实在的技术很难沉淀&#xff0c;就像雾里看花一样&#xff0c;过年之后&#xff0c;想走的人都走了&#x…

【vue2小知识】实现axios的二次封装

&#x1f973;博 主&#xff1a;初映CY的前说(前端领域) &#x1f31e;个人信条&#xff1a;想要变成得到&#xff0c;中间还有做到&#xff01; &#x1f918;本文核心&#xff1a;在vue2中实现axios的二次封装 目录 一、平常axios的请求发送方式 二、axios的一次封装…

造成android UI卡顿的原因及解决方法

Android 系统每隔 16ms 会发出 VSYNC 信号重绘界面(Activity)。之所以是 16ms&#xff0c;是因为 Android 设定的刷新率是 60FPS(Frame Per Second)&#xff0c;也就是每秒 60 帧的刷新率&#xff0c;约合 16ms 刷新一次。如果UI线程的执行时间超过16ms&#xff0c;则会产生丢帧…

【log】操作类日志处理 与 报错类日志处理logback

文章目录一、操作类日志处理【环绕增强】aop环绕增强导包第一步&#xff1a;自定义注解interface第二步&#xff1a;在Controller写一个测试的方法&#xff1a;第三步&#xff1a;编写LogAspect增强类与增强方法日志写入数据库&#xff08;使用mybatis&#xff09;第一步&#…

MyBatis快速开发

查询user表中的所有数据 步骤&#xff1a; 创建user表 打开Navicat&#xff0c;新建查询&#xff0c;将下面SQL代码复制粘贴并执行&#xff1a; create database mybatis; use mybatis;drop table if exists tb_user;create table tb_user(id int primary key auto_incremen…

Vue3电商项目实战-商品详情模块6【17-商品详情-标签页组件、18-商品详情-热榜组件、19-商品详情-详情组件、20-商品详情-注意事项组件】

文章目录17-商品详情-标签页组件18-商品详情-热榜组件19-商品详情-详情组件20-商品详情-注意事项组件17-商品详情-标签页组件 目的&#xff1a;实现商品详情组件和商品评价组件的切换 大致步骤&#xff1a; 完成基础的tab的导航布局完成tab标签页的切换样式效果使用动态组件完…

【Rust 日报】2023-2-24 Dioxus 0.3 发布,巨大的更新

ascii-d - 画ASCII示意图的工具Rust写的画ASCII示意图的工具。支持各大平台。程序员的最爱啊。https://github.com/huytd/ascii-d/raw/master/_meta/toolbar-final.gifDioxus 0.3 发布&#xff0c;巨大的更新Dioxus 是新出的与 Yew 类似的 Rust Web 前端框架&#xff08;为什么…

【华为OD机试模拟题】用 C++ 实现 - 最大相连男生数(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 货币单位换算(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 选座位(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 停车场最大距离(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 重组字符串(2023.Q1) 【华为OD机试模…

Java-多线程-增强篇-锁强化第3篇

Java集合框架中的锁 今天我们继续来学习锁 字符串操作中的锁 String是线程安全的&#xff0c;因为使用final修饰Stringbuilder 是线程不安全的&#xff0c;其方法没有使用synchronized修饰StringBuffer 是线程安全的&#xff0c;其方法使用synchronized修饰 List集合中的锁 …

内核并发消杀器(KCSAN)技术分析

一、KCSAN介绍KCSAN(Kernel Concurrency Sanitizer)是一种动态竞态检测器&#xff0c;它依赖于编译时插装&#xff0c;并使用基于观察点的采样方法来检测竞态&#xff0c;其主要目的是检测数据竞争。KCSAN是一种检测LKMM(Linux内核内存一致性模型)定义的数据竞争(data race)的工…

【网络原理8】HTTP请求篇

在上一篇文章当中&#xff0c;我们也提到了什么是HTTP。 每一个HTTP请求&#xff0c;都会对应一个HTTP响应。 下面这一篇文章&#xff0c;将聊一下HTTP请求的一些内容 目录 一、URL 第一部分&#xff1a;协议名称 第二部分:认证信息(新的版本已经没有了) 第三部分&#xf…

【数通网络交换基础梳理1】二层交换机、以太网帧、MAC地址详解及数据帧转发原理(爆炸细)

一、网络模型 万年不变&#xff0c;先从模型结构分析&#xff0c;现在大家熟知的网络模型有两种。第一种是&#xff0c;OSI七层模型&#xff0c;第二种是TCP/IP模型。在实际运用中&#xff0c;参考更多的是TCP/IP模型。 OSI七层模型 TCP/IP模型 不需要全部理解&#xff0c;…

Spring MVC 源码- HandlerExceptionResolver 组件

HandlerExceptionResolver 组件HandlerExceptionResolver 组件&#xff0c;处理器异常解析器&#xff0c;将处理器&#xff08; handler &#xff09;执行时发生的异常&#xff08;也就是处理请求&#xff0c;执行方法的过程中&#xff09;解析&#xff08;转换&#xff09;成对…

Python变量的定义和使用

定义&#xff1a;变量就是计算机内存中存储某些数据的位置的名称 形象理解变量就是一个存放东西的容器&#xff0c;该容器的名字就叫做变量&#xff0c;容器存放的东西就是变量的值 变量的组成&#xff1a; 标识&#xff1a;标识对象所储存的内存地址&#xff0c;使用内置函数i…

六千字让你明白什么是数字孪生?

文章目录1. 背景2. 数字孪生基础2.1 概念2.2 价值3. 技术生态3.1 技术体系3.2 核心技术3.2.1 多领域、多尺度融合建模3.2.2 数据驱动与物理模型融合的状态评估3.2.3 数据采集和传输3.2.4 全生命周期数据管理3.2.5 虚拟现实呈现3.2.6 高性能计算3.3 建设3.3.1 重点3.3.1.1 数字孪…

SEATA是什么?它的四种分布式事务模式

一、SEATA是什么&#xff1f; Seata 是一款开源的分布式事务解决方案&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式解决方案。 在继续学习使用SEATA之前&#xff0c;对s…

数据结构栈的经典OJ题【leetcode最小栈问题大剖析】【leetcode有效的括号问题大剖析】

目录 0.前言 1.最小栈 1.1 原题展示 1.2 思路分析 1.2.1 场景引入 1.2.2 思路 1.3 代码实现 1.3.1 最小栈的删除 1.3.2 最小栈的插入 1.3.3 获取栈顶元素 1.3.4 获取当前栈的最小值 2. 有效的括号 0.前言 本篇博客已经把两个关于栈的OJ题分块&#xff0c;可以根据目…

【华为OD机试模拟题】用 C++ 实现 - 分糖果(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…