【MySQL 保姆级教学】表的增删改查(上)

表的增删改查

  • 1. 创建一个表 CREATE
  • 2 插入数据 INSERT INTO
    • 2.1 语法
    • 2.2 插入单行数据+全列插入
    • 2.3 插入多行数据+指定列插入
    • 2.4 同步更新 ON DUPLICATE KEY UPDATE
      • 2.4.1 引入
      • 2.4.2 同步更新
      • 2.4.3 查看被影响的行
    • 2.5. 替换 REPLACE INTO
  • 3. Retrieve(查询SELECT)
    • 3.1 语法
    • 3.2 全列查询 SELECT
    • 3.3 指定列查询
    • 3.4 查询字段为表达式
    • 3.5 为查询结果指定别名 AS
    • 3.6 查询结果去重 DISTINCT
  • 4. WHERE 条件
    • 4.1 运算符
    • 4.2 示例
      • 4.2.1 所有查询示例
      • 4.2.2 易错点
  • 5. 排序 ORDER BY
    • 5.1 语法:
    • 5.2 示例
  • 6. 筛选分页 LIMIT OFFSET
    • 6.1 语法
    • 6.2 示例

CRUD : Create(创建), Retrieve(读取),Update(更新),Delete(删除)

1. 创建一个表 CREATE

语法:

CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype
) character set 字符集 collate 校验规则 engine 存储引擎;

示例:

create table students(
id int unsigned primary key auto_increment,
sn int not null unique comment ‘学号’,
name varchar(8) not null,
qq varchar(12) );

2 插入数据 INSERT INTO

2.1 语法

语法:

INSERT [INTO] table_name
[(column [, column] …)]
VALUES (value_list)
[, (value_list)] … value_list: value, [, value] …

注:INTO 可以省略不写,insert into 是只对表进行执行,insert into 后不跟关键字table,而是==直接跟表名 ==。

2.2 插入单行数据+全列插入

示例:

  1. 全列插入, 写出插入的列。
    命令:insert into students (id, sn, name, qq) values(1, 300, '李明', 888);
    在这里插入图片描述
  2. 全列插入,不写出插入的列。
    命令:insert into students values(2, 400, '张三', 666);
    在这里插入图片描述
  3. 插入单行数据,不插入自增型的列。
    命令:insert into students (sn, name, qq) values(500, '李逵', 999);
    在这里插入图片描述
  4. 查看插入的数据。
    命令:select * from students;
    在这里插入图片描述
    注:AUTO_INCREMENT 列会自动为每一行生成一个唯一的标识符,通常从1开始,并且每次插入新行时递增1

2.3 插入多行数据+指定列插入

指定列插入时,插入的数据必须和指定列对应

示例:

  1. 插入单行,指定 snname
    命令:insert into students (sn, name) values(600, '郭靖');
    在这里插入图片描述

  2. 插入多行,指定 sn nameqq列。
    命令:

    insert into students
    (sn, name, qq)
    values(700, ‘李华’, 111),
    (800, ‘龙葵’, 222);

    在这里插入图片描述

  3. 查看插入的数据
    命令:select * from students;
    在这里插入图片描述
    注:AUTO_INCREMENT 列会自动为每一行生成一个唯一的标识符,通常从1开始,并且每次插入新行时递增1

2.4 同步更新 ON DUPLICATE KEY UPDATE

2.4.1 引入

由于 主键 或者 唯一键 对应的值已经存在而导致插入失败

  1. 主键存在导致失败:
    命令:insert into students (id, sn, name) values(1, 900, '杨过' );
    在这里插入图片描述
  2. 唯一键存在导致错误:
    命令:insert into students (id, sn, name) values(100, 300, '杨过' );
    在这里插入图片描述

2.4.2 同步更新

可以选择性进行同步更新操作:
语法:

INSERT INTO table_name ON DUPLICATE KEY UPDATE
column = value [, column = value] …

示例:

主键存在,进行更新:

  1. 使用 on duplicate key upfate
    命令:insert into students values(1, 400, '李白', 111) on duplicate key update sn=400, name='李白', qq=1;

    在这里插入图片描述
    使用了 on duplicate key update 怎么还是错误呢?
    仔细观察sn = 400,我们创建表时,sn int not null unique comment '学号',
    所以,sn 的列是唯一的,跟新后的sn 与表中已存在的 sn 冲突了。

  2. 正确使用 on duplicate key update
    命令:insert into students values(1, 100, '李白', 111) on duplicate key update sn=100, name= '李白', qq=111;
    在这里插入图片描述

唯一键存在,进行更新:

  1. sn=800 的行进行更换。
    命令:insert into students values(2, 800, '程咬金', 333) on duplicate key update id=2, name='程咬金, qq=333;
    在这里插入图片描述
    同学们可对比没换之前的下图,是不是出现了问题?
    在这里插入图片描述
    是不是没有把 sn=800 的列进行更换,而是把 id=2的进行了更换。
    结论,on duplicate key update 是按照vulues的先后顺序进行识别,再进行更换。

  2. 更改 sn=800的行
    命令:insert into students (sn, name, qq) values(800, '雪见', 888) on duplicate key update name='雪见', qq=888;
    在这里插入图片描述

2.4.3 查看被影响的行

当使用on duplicate key update 时,执行后会显示 ** rows affected:
– 0 row affected: 表中有冲突数据,但冲突数据的值和 update 的值相等
– 1 row affected: 表中没有冲突数据,数据被插入
– 2 row affected: 表中有冲突数据,并且数据已经被更新

也可以使用命令查询被影响的行数
语法:SELECT ROW_COUNT();

2.5. 替换 REPLACE INTO

语法:
REPLACE INTO table_name ... (和insert into 用法一样)

替换规则:

  • 主键 或者 唯一键 没有冲突,则直接插入;
  • 主键 或者 唯一键 如果冲突,则删除后再插入

示例:

  1. 命令:replace into students values(6, 700, '小龙女', 444)
    在这里插入图片描述
  2. 命令:replace into students values(5, 700, '白居易', 555);
    在这里插入图片描述

同学们可以看看前后对比;这里是把values中重复的键全部删除后替换了

当使用replace into 时,执行后会显示 ** rows affected:

  • 1 row affected: 表中没有冲突数据,数据被插入
  • 2 row affected: 表中有一个冲突数据,删除后重新插入
  • 3 row affected: 表中有二个冲突数据,全部删除后重新插入

3. Retrieve(查询SELECT)

3.1 语法

语法:

SELECT
[DISTINCT] {* | {column [, column] …}
[FROM table_name]
[WHERE …]
[ORDER BY column [ASC | DESC], …]
LIMIT …

样例:

创建表:

create table score(
id int not null unique comment ‘学号’,
name varchar(8) not null comment ‘姓名’,
chinese tinyint default 0.0,
math tinyint default 0.0,
english tinyint default 0.0
);

插入数据:

insert into score
values(1,‘雷军’,100,100,100),
(2, ‘马化腾’,91,93,90),
(3, ‘马云’, 90,45,91),
(4, ‘李白’,90, 60, 30),
(5, ‘李华’, 72, 80, 88),
(6, ‘白居易’, 90, 75, 70
);

3.2 全列查询 SELECT

通常情况下不建议使用 * 进行全列查询,查询的列越多,意味着需要传输的数据量越大,可能会影响到索引的使用。

示例:

  1. 指定全列进行查询。
    命令:selecte id, name, chinese, math, english from score;
    在这里插入图片描述

  2. 使用 * 进行查询。
    命令:select * from score;
    在这里插入图片描述

3.3 指定列查询

指定列查询不需要按定义表的顺序来,显示的数据序列是指定的顺序。

示例:
命令:select name, id, chinese from score;
在这里插入图片描述

3.4 查询字段为表达式

在SQL中,查询字段可以是一个表达式,这允许你在查询结果中直接进行计算。这种功能非常有用,因为它可以在不改变表结构的情况下,动态地生成所需的计算结果。

示例:

  1. 表达式为 1+1
    命令:select '1+1;'
    在这里插入图片描述
  2. 更改表达式的列名为 ‘ 计算 ’。
    命令:selecte '1+1' as '计算' ;
    在这里插入图片描述
  3. 表达式为计算总成绩 ‘ chinese+math+english’
    命令:select id, name, 'chinese +math + english from sacore;'
    在这里插入图片描述
  4. 更改计算总成绩的列名
    命令:select id, name, chinese+ math+ english as total from score;
    在这里插入图片描述
  5. 给 ‘chinese’ 列 增加100, 命名为 new_chinese
    命令:selecte id, name, chinese+100 as new_chinese, math, english from score;
    在这里插入图片描述
    这里的chinese+10只是在打印的时候显示,并没有改变表中实际的chinese值。

3.5 为查询结果指定别名 AS

在SQL查询中,使用别名(Alias)是一种常见的做法,它提供了多种好处,使查询结果更易读、更灵活。别名可以应用于列名、表名甚至子查询。
语法:
SELECT column [AS] alias_name [...] FROM table_name;

示例:

  1. 设置id 别名为 “学号”,设置 name 别名为 “姓名”
    命令:select id, name from score;
    在这里插入图片描述

  2. 设置总分为 chinese*0.4 + math*0.4 + english*0.2,设置别名为 “成绩”
    命令:select id, name, chinese*0.4 + math*0.4 + english*0.2 as '成绩' from score;
    在这里插入图片描述

3.6 查询结果去重 DISTINCT

示例:

  1. 打印未去重的chinese 列
    命令:select name, chinese from score;
    在这里插入图片描述
  2. distinct 关键字去重。
    命令:select distinct chinese from score ;
    在这里插入图片描述
    显然,重复的90只剩下一个了。

4. WHERE 条件

4.1 运算符

  1. 比较运算符
运算符说明
>,>=,<,<=大于,大于等于,小于,小于等于
=等于,NULL 不安全,例如 NULL=NULL的结果是NULL
<=>等于,NULL 安全,例如,NULL<=>NULL 的结果是TRUE(1)
IS NULL是 NULL
IS NOT NULL不是 NULL
  1. 逻辑运算符
运算符说明
AND多个条件必须都为TRUE(1),结果才为TRUE(1)
OR任意一个条件为TRUE(1),结果才为TRUE(1)
NOT条件为TRUE(1),结果为(0);相当于 ‘非’
  1. 条件运算符
运算符说明
BETWEEN n1 AND n2范围匹配,[ n1, n2 ],如果 n1<= value <= ,返回TRUE(1)
IN检查某个值是否存在于一个指定的值列表或子查询结果中
LIKE模糊匹配。%表示任意多个(包括0)个任意字符;;_表示任意一个字符

4.2 示例

4.2.1 所有查询示例

  1. 查询英语不及格的同学
    命令:select id, name from score where english<60;
    在这里插入图片描述

  2. 语文成绩在[ 80, 90] 分的同学,使用 and 连接
    命令:select id, name, chinese from score where chinese>=80 and chinese<=90;
    在这里插入图片描述

  3. 数学成绩在[ 90,100 ] 分的同学,使用 between...and.. 连接
    命令:select id, name, select score where chinese between 90 and 100;
    在这里插入图片描述

  4. 数学成绩等于100,或则 数学成绩小于等于100的同学
    命令:select id, name, math from score where math<=60 or math=100;
    在这里插入图片描述

  5. 使用 in 查询 英语成绩为 (70,80,90,100)的同学
    命令:select id, name, english from score where english in (70,80, 90, 100);
    在这里插入图片描述

  6. 查询姓 “李” 的同学,多个字符匹配
    命令:select * from score where name like "李% ;"
    在这里插入图片描述

  7. 查询名字为两个字,且名为 ‘军’ 的人
    命令:select * from score where name like '_军';
    在这里插入图片描述

  8. 查询语文成绩好于英语成绩的同学
    命令:select id, name, chinese, english from score wehere chinese>english;
    在这里插入图片描述

  9. chinese*0.4 + nmath*0.4 + english*0.2 按比例的总成绩大于80的同学
    命令:select id, name, chinese*0.4+math*0.4+english).2 from score where chinese*0.4 + math *0.4+english*0.2 > 80;

  10. 数学成绩大于80,但是不姓雷的同学
    命令:select id, name, mah from score where math>80 and name not like '雷%';
    在这里插入图片描述

  11. 查询数学成绩已知的同学
    命令:select id, name from score where math id not null;
    在这里插入图片描述

  12. 查询数学成绩未知的同学
    命令:select id, name from score where chinese is null;
    在这里插入图片描述
    表示数学成绩为空的同学 不存在。

  13. NULL 和 NULL 的 比较,“=”
    命令:select NULL=NULL;
    在这里插入图片描述
    在SQL中,NULL 表示一个未知或不存在的值。与其他编程语言不同,SQL中的 NULL 不能直接使用等号 = 进行比较。具体来说,NULL = NULL 的结果不是 TRUE,而是 UNKNOWN

    为什么 NULL = NULL 结果是 UNKNOWN?
    在SQL中,NULL 表示一个未知的值。当你尝试比较两个 NULL 值时,实际上是问“未知值是否等于另一个未知值”。由于这两个值都是未知的,因此无法确定它们是否相等,所以结果是 UNKNOWN。

    如何正确比较 NULL 值?
    为了检查一个值是否为 NULL,应该使用 IS NULL 或 IS NOT NULL 运算符。

  14. NULL 和 NULL 的 比较,“<=>”
    命令:select NULL<=>NULL;
    在这里插入图片描述
    在SQL中,<=> 是一个特殊的运算符,称为==“空安全等值运算符”(null-safe equality operator)。它用于比较两个值,包括 NULL 值,并且在两个值都为 NULL 时返回 TRUE==

4.2.2 易错点

  1. 命令:select id, name, chinese*0.4+math*0.4+english*0.2 from score where chinese*0.4 + math *0.4+english*0.2 > 80;

    上述命令能否改成:select id, name, chinese*0.4+math*0.4+english*.2 as total from score where total > 80; 这样写不是方便多了吗?
    我们执行一下试试
    在这里插入图片描述

    为什么会报错呢?服务端执行命令的时候是后先后顺序的,先执行from score 检索表,再执行 where total > 80执行条件,最后 执行 select id, name, chinese*0.4+math*0.4+english*.2 as total 需要打印出的数据。

    在这个命令中,当执行where total > 80 的时候没有total的关键字的定义,显然会报错。

    那同学们是不是想到这样写了呢?
    命令:select id, name, total from score where chinese*0.4+math*0.4+english*0.2 as total >80
    在这里插入图片描述
    这又为什么会发生错误呢?
    因为 这里的total 只是作为 chinese*0.4+math*0.4+english*0.2 结果的重命名,而不是重新生成了一个列。

    总之,还是要按正确的格式来写,
    命令:select id, name, chinese*0.4+math*0.4+english*.2 as total from score where chinese*0.4+math*0.4+english*0.2 > 80;

查询命令的执行顺序:from table_name 从哪个表查询 --> where筛选数据内容 --> 显示表的内容

5. 排序 ORDER BY

5.1 语法:

– ASC 为升序(从小到大)
– DESC 为降序(从大到小)
– 默认为 ASC
SELECT … FROM table_name [WHERE …]
ORDER BY column [ASC|DESC], […];

注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

5.2 示例

  1. 按数学成绩排序(默认是升序)。
    命令:select * from score order by math;
    在这里插入图片描述

  2. 按数学成绩降序排列 desc
    命令:select * from score order by math desc;
    在这里插入图片描述
    如果数学中有 NULL 值,NULL值被视为最小的值,会放到最下面。

  3. 按语文降序排列,如果语文值相等则数学降序排列。
    命令:select * from score order by math desc ,chinese desc;
    在这里插入图片描述

  4. 查询学生总分,按总分的降序排列
    命令:select id, name, chinese+math+english from score order by chinese+math+english desc;
    在这里插入图片描述

  5. 按总分的降序排列,order by 别名
    命令:select id, name, chinese+math+english as total from score order by total desc;
    在这里插入图片描述
    这里为什么可以用total 别名了呢?

    查询命令的执行顺序:from table_name 从哪个表查询 --> where筛选数据内容 --> 显示表的内容 --> order by 排序

    这时候显示的内容是一个新表,可以用新表的列名进行操作。

  6. 查询姓马和姓雷的同学名字,把他们的总成绩按降序排列
    命令:select id,name, chinese+math+english as total from score where name like '马%' or name like '雷%' order by total;
    在这里插入图片描述

6. 筛选分页 LIMIT OFFSET

6.1 语法

– 起始下标为 0
1.- 从 0 开始,筛选 n 条结果
SELECT … FROM table_name [WHERE …] [ORDER BY …] LIMIT n;
2.- 从 s 开始,筛选 n 条结果
SELECT … FROM table_name [WHERE …] [ORDER BY …] LIMIT s, n
3.- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT … FROM table_name [WHERE …] [ORDER BY …] LIMIT n OFFSET s;

建议:对未知表进行查询时,最好加一条 LIMIT 1,避免因为表中数据过大,查询全表数据导致数据库卡死

6.2 示例

  1. 查询三行。在这里插入图片描述

  2. 查询总成绩的前三名
    命令:select * from score order by chinese+math+english desc limit 3;
    在这里插入图片描述

  3. 查询总成绩,从第二名开始的依次后三人。
    命令:select * from score order by chinese+math+english limit 1,3;
    说明:1是行的索引, 3是页数。
    在这里插入图片描述

  4. 查询总成绩,从第二名开始的一次后三人,使用offset
    命令:select * from score order by chinese+math+english desc limit 3 offset 1;
    说明:limit 3 是查询三页, offset 1 是从索引1开始查。
    在这里插入图片描述

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

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

相关文章

有道在线翻译+4款新星,翻译从此无障碍,你get了吗?

现在全世界都连在一起了&#xff0c;说话不一样的问题再也不是啥大事。不管是搞研究、谈生意还是平时过日子&#xff0c;翻译软件都成了我们离不开的帮手。今儿&#xff0c;我们特激动地告诉大家&#xff0c;有道在线翻译和三个新伙伴一起&#xff0c;给Windows系统做了个超牛的…

9.校园二手网站系统( Springboot 和 thymeleaf(html)开源框架)

目录 1.系统的受众说明 2.系统需求分析 2.2.1用户功能模块 2.2.2二手交易功能需求 2.2.3需求发布功能需求 2.3.1操作流程 2.3.2添加信息流程 2.3.3删除信息流程 2.4 系统E-R图 3.系统概要设计 3.1系统的整体架构 3.2 数据库表 4.系统实现 4.1用户功能模块 4.2 二…

程序员们辛苦啦!1024程序员节,今天,我们不一样!

一、程序员节来历 程序员节&#xff08;Programmers Day&#xff09;是一年中专门为程序员和计算机科学工作者所设立的节日&#xff0c;通常是在每年的第256天庆祝。256这个数字在编程中具有特别的意义&#xff0c;因为它是2的8次方&#xff0c;代表着一个字节可以表示的所有可…

如何借助前端表格控件助力企业实现财务数字化转型

最新技术资源&#xff08;建议收藏&#xff09; https://www.grapecity.com.cn/resources/ 前言 在当今快速变化的经济环境中&#xff0c;记账软件对个人和企业的重要性愈发突出。对于个人而言&#xff0c;它可以帮助用户实时掌握财务状况&#xff0c;促进合理消费和有效储蓄&…

Java项目-基于Springboot的高校党务系统项目(源码+说明).zip

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

【SoC_Design】USB基本知识

目录 USB物理接口 USB3.0物理层支持dp-alt的usb type-c接口 拓扑结构层次结构 USB物理接口 USB2.0 两线&#xff1a;D、D- USB3 六线&#xff1a;D、D-、SSTX、SSTX-、SSRX、SSRX- USB3 2lane 十线&#xff1a; D、D-、&#xff08;SSTX、SSTX-、SSRX、SSRX-&#xff09;x2USB2…

CSS文本基础知识

1、文本缩进 属性名&#xff1a;text-indent 属性值&#xff1a;数值px&#xff1b; 数字em&#xff08;推荐&#xff1a;1em当前标签的字号大小&#xff09; 例&#xff1a;代码&#xff1a; 结果: 2、文本对齐方式 作用&#xff1a;控制内容水平方式 属性名&#xff1a…

公众号变现及生财内参项目建议

一、核心内容 &#xff08;一&#xff09;公众号变现分享 从业者王薄荷介绍公众号常规盈利思路为推文广告和品牌广告&#xff0c;公众号能外链的地方有菜单栏和阅读原文&#xff0c;虽菜单栏点击率低但有商业价值。以小说为例&#xff0c;主要盈利方式是小黄文截止在高潮部分…

HTB:Knife[WriteUP]

目录 连接至HTB服务器并启动靶机 1.How many TCP ports are open on Knife? 2.What version of PHP is running on the webserver? 并没有我们需要的信息&#xff0c;接着使用浏览器访问靶机80端口 尝试使用ffuf对靶机Web进行一下目录FUZZ 使用curl访问该文件获取HTTP头…

聚焦IOC容器刷新环节postProcessBeanFactory(BeanFactory后置处理)专项

目录 一、IOC容器的刷新环节快速回顾 二、postProcessBeanFactory源码展示分析 &#xff08;一&#xff09;模版方法postProcessBeanFactory &#xff08;二&#xff09;AnnotationConfigServletWebServerApplicationContext 调用父类的 postProcessBeanFactory 包扫描 …

React综合指南(二)

https://activity.csdn.net/creatActivity?id10787 #1024程序员节&#xff5c;征文# 21、 React中的状态是什么&#xff1f;它是如何使用的&#xff1f;&#xff1f; 状态是 React 组件的核心&#xff0c;是数据的来源&#xff0c;必须尽可能简单。基本上状态是确定组件呈现…

rk3568 android11 单独烧写内核。

问题: 我现在 遇到一个问题,如果我单独 烧写boot.img 的话,就会进入 recovery 的模式。 如下图: 问题说明: 如果我烧写的 Update.img 是可以启动的。那么我再烧写一个 编译 update.img 顺带编译出来的 boot.img 是可以正常启动的。 问题出在 , 如果我 重新编译一遍 ,使…

在Oxygen编辑器中支持数学公式

在编写文档时&#xff0c;经常需要插入公式。虽然将公式作为图片插入到文档中是可以的&#xff0c;但这会使后续的修改变得非常不便。目前&#xff0c;MathML (Mathematical Markup Language) 和 LaTeX 是两种常用的数学公式描述语言&#xff0c;它们各自具有不同的特点和适用场…

第二十九篇:图解TCP三次握手,一次说透,TCP系列四

⼀开始&#xff0c;客户端和服务端都处于 CLOSED 状态。先是服务端主动监听某个端⼝&#xff0c;处于 LISTEN 状态。 接下来这部分内容的介绍将影响你能不能彻底理解了TCP的三次握手。 一、划重点&#xff1a;只有服务端启动了端口监听&#xff0c;客户端TCP握手才能建立连接&…

关于jmeter设置为中文问题之后无法保存设置的若干问题

1、jemeter如何设置中文模式 Options--->Choose Language--->Chinese(Simplifies), 如此设置后就可显示中文模式(缺点&#xff1a;下次打开还是英文)&#xff1b;如下图所示&#xff1a; 操作完成之后&#xff1a; 但是下次重启之后依旧是英文&#xff1b; 2、在jmeter.…

TRIZ理论在医疗电子研发中的应用

TRIZ&#xff0c;全称“Theory of Inventive Problem Solving”&#xff08;发明问题解决理论&#xff09;&#xff0c;是一种系统化、逻辑严谨的创新方法论。它通过对大量发明案例的深入分析和总结&#xff0c;提炼出一套行之有效的创新原理和解决方案&#xff0c;旨在帮助人们…

【Word原件测试资料合集】软件系统功能测试方案,软件测试方案(整体方案),软件测试文档-测试计划模版(功能与性能),软件测试流程

一、 前言 &#xff08;一&#xff09; 背景 &#xff08;二&#xff09; 目的 &#xff08;三&#xff09; 测试目标 &#xff08;四&#xff09; 适用范围与读者对象 &#xff08;五&#xff09; 术语与缩写 二、 软件测试实施流程 &#xff08;一&#xff09; 测试工作总体流…

【java】thymeleaf模板怎么给JS赋值

【java】thymeleaf模板怎么给JS赋值 我们知道如果被标签绑定值是: <h3 th:text="${name}"></h3

MoH:融合混合专家机制的高效多头注意力模型及其在视觉语言任务中的应用

在深度学习领域,多头注意力机制一直是Transformer模型的核心组成部分,在自然语言处理和计算机视觉任务中取得了巨大成功。然而,研究表明并非所有的注意力头都具有同等重要性,许多注意力头可以在不影响模型精度的情况下被剪枝。基于这一洞察,这篇论文提出了一种名为混合头注意力…

DS快速排序和归并排序的非递归实现(16)

文章目录 前言一、快排的非递归实现二、归排的非递归实现总结 前言 打破递归桎梏&#xff0c;迎接迭代解放&#xff01; 一、快排的非递归实现 我们要替代递归&#xff0c;就要用到迭代或者循环&#xff0c;也就是说&#xff0c;其核心思想是不变的&#xff0c;只是换一种方式来…