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

MySQL增删改查操作 -- CRUD

个人主页:顾漂亮

目录

1.CRUD简介

2.Create新增

使用示例:

注意点:

3.Retrieve检索

使用示例:

注意点:

4.where条件查询

前置知识:-- 运算符

比较运算符

使用示例: 

注意点:

5.Order by 排序

使用示例:

注意点:

6.分页查询

使用示例:

注意点:

7.Update修改

使用示例:

注意点:

8.Delete删除

使用示例:

注意点:

9.截断表

使用示例:

注意点:

10.插入查询结果

使用示例:

注意点:

11.聚合函数

常见聚合函数:

12.group by分组查询

使用示例:

注意点:


 

1.CRUD简介

  • Create(创建)

  • Retrieve(读取)

  • Update(更新)

  • Delete(删除)

2.Create新增

使用示例:

use ghr;
-- create新增
drop table if exists users; -- 在创建之前添加一层校验
create table users(id bigint primary key auto_increment, -- 为id列设置自增主键name varchar(20) not null  -- 为name列设置不为空条件
);-- 显示表   -- 使用该语句前必须先使用use 语句,进入一个数据库中!!!!
show tables;-- 单行数据全插入  values 中的数据顺序必须要与列的顺序一致
insert into users values (1, '张三');  -- 注意:MySQL中的字符串需要用单引号包裹-- 单行数据指定列插入  -- values中的数据 必须要与users后面括号中的顺序一致
insert into users(id, name) values (3, '王五'); -- 多行数据指定列插入  多个数据中间用 , 分开即可 
insert into users(id, name) values (4, '赵六'), (5, '钱七');select * from users; 

注意点:

  1. 一次插入一条数据的效率高还是一次插入多条数据的效率更高?

  • 执行所有的SQL语句都会有网络开销

  • MySQL数据库在保存数据的时候也会有磁盘开销

  • 每执行一条SQL语句都需要开启一个事务,事务的开启到关闭也需要消耗资源

  • 因此:一次提交多条数据在一个可控范围内的时候,比一次提交一次数据的效率可以高一点!!

3.Retrieve检索

使用示例:

-- 检索查询
use ghr; -- 使用ghr数据库-- 首先创建表
drop table if exists exam; -- 添加校验
create table exam(id bigint primary key auto_increment,name varchar(20) not null, chinese float,math float,english float 
);-- 插入测试数据insert into exam(id, name, chinese, math, english) values 
(1, '唐三藏', 67, 98, 56),(2, '孙悟空', 87, 78, 77),(3, '猪悟能', 88, 98, 90),(4, '曹孟德', 82, 84, 67),(5, '刘玄德', 55, 85, 45),(6, '孙权', 70, 73, 78),(7, '宋公明', 75, 65, 30);-- 全列查询select * from exam;-- 指定列查询select name, chinese from exam;
select chinese, name from exam; -- 要查询的列只要在表中存在,与顺序无关-- 查询字段为表达式
# 把所有语文成绩+10
select id, name, chinese+10 as sum from exam;  -- 可以为表达式起一个别名 可以加 as 不加也可以
# 计算总成绩
select id, name, chinese + math + english as 总分 from exam;-- 为结果去重查询
select distinct math from exam;

注意点:

  • select返回的查询结果是根据查询列表中字段和表达式生成的一个临时表,并不会真正修改数据表中的值

  • select后面的查询列表中指定希望查询的列,可以是一个也可以是多个,中间用逗号隔开。指定列的顺序与表的结构无关

  • 使用disctinct去重时候,只有查询列表中所有列的值相同的时候才会判定为重复

  • 查询不加限制条件会返回表中的所有结果,如果表中的数据量过大,会把服务器的资源消耗殆尽

  • 在生产环境下,一定注意谨慎使用不加限制条件的查询

4.where条件查询

前置知识:-- 运算符

比较运算符

运算符

说明

>,>=,<, <=

与Java/c等用法相同

=

等于,对于NULL的比较不安全,比如NULL = NULL的结果还是NULL

<=>

等于,对于NULL的比较是安全的, 比如NULL <=> NULL 结果为1

!=, <>

不等于

Between A and B

匹配范围[A,B]

Value in(A, B, ....)

如果value在in中返回1,不再返回0

Is null

判断是NULL

Is not null

判断不是NULL

like

模糊匹配

运算符

说明

or

任意一个条件

and

多个条件必须同时成立

not

类似于!取反操作

使用示例: 

-- where条件查询use ghr;-- 基本查询
# 英语成绩小于60
select name, english from exam where english <= 60;
# 总成绩200分以下 -- 注意where语句中不可以使用别名
select name, chinese+math+english as 总分 from exam where chinese + math+english < 200;-- and和or    优先级 -- not > and > as 如果三者混合使用,建议加()
select * from exam where chinese > 80 and english > 80;select * from exam where chinese > 80 or english > 80;-- 范围查询select name, chinese from exam where chinese between 80 and 90;select name, math from exam where math in(78, 79, 98, 99);-- 模糊查询select * from exam where name like '孙%';
# 注意二者区别
select * from exam where name like '孙_';-- NULL的查询
# 构造数据
insert into exam values (8, '张飞', 27, 0, NULL);select * from exam where english is null;select * from exam where english is not null;# NULL 值与其他值运算结果为NULL
select name, chinese + math + english as sum from exam;

注意点:

  • where条件中可以使用表达式,但是不能使用别名

  • and优先级高于or,在同时使用的时候,建议使用小括号包裹优先执行的部分

  • NULL与任何值运算结果都为NULL

  • 过滤NULL时不要使用 =,!=,<>

5.Order by 排序

使用示例:

-- 前置知识:asc 为升序   desc为降序-- 按照英语成绩降序
select name, english from exam order by english desc;-- 查询总分,从高到低
select name, chinese + math + english as 总分 from exam order by 总分 desc; # 可以使用别名进行查询-- 去除有NULL值的排序
-- 所有英语成绩不为NULL的同学,按照语文成绩从高到低
select name, chinese, math, english from exam where english is not null order by chinese desc;

注意点:

  • 查询中若没有oder by 子句,返回的顺序是未定义的,永远不要依赖这个顺序

  • Order by子句中可以使用列的别名进行排序,注意与where进行区分

  • NULL进行排序的时候,视为比任何值都小,升序出现在最上面,降序出现在最下面

6.分页查询

使用示例:

-- 分页查询   -- 三种方案,以下三种方案查询结果都是相同的select * from exam order by id asc limit 3; -- 默认从偏移量0位置开始,查询3行数据select * from exam order by id asc limit 0,3; -- 从偏移量0位置开始查询,查询3条数据select * from exam order by id asc limit 3 offset 0;-- 从偏移量0位置开始查询,查询3条数据

注意点:

  • 分页查询可以有效控制一次返回的记录条数

  • 可以有效减少数据库服务器的压力,同时对于用户也比较友好

  • 在工作中,一定注意多使用分页查询

7.Update修改

使用示例:

-- 将孙悟空同学数学成绩变为80update exam set math=80 where name='孙悟空';-- 将总成绩倒数前3的数学成绩加上5分# 先查看原始数据
select name, chinese+math+english as sum from exam where chinese+math+english is not null order by sum asc limit 3;# 注意 where语句中不可以随意起别名
-- 错误示范select name, chinese+math+english from exam where chinese+math+english as sum is not null order by sum asc limit 3;
update exam set math=math+5 where chinese + math + english is not null order by chinese + math + english  asc limit 3;# 查看查询结果
select name, chinese+math+english as sum from exam where name in ('宋公明', '刘玄德', '唐三藏') order by sum asc;

注意点:

  • 在原值的基础上做变更时,不能使用math+=30这样的语法

  • 不加where条件时,会导致全表数据被更新,谨慎操作

  • 一般情况下类似于这样的更新update exam set math=80 where name='孙悟空';最为合适,先用where语句过滤,再进行更新

8.Delete删除

使用示例:

-- 删除表中一项数据
# 删除表中孙悟空的成绩
delete from exam where name = '孙悟空';-- 删除整张表的数据
# 准备一个测试表作为备份
create table if not exists t_delete(id int,name varchar(20)
);
# 插入被测数据
insert into t_delete(id,name) values (1, 'A'), (2, 'B'), (3, 'C');#删除表格中的数据
delete from t_delete;

注意点:

  • 如果执行delete操作不加限制条件,会将整个表中的数据全部删除,谨慎使用

  • MySQL服务如果开启了二进制日志,每一次的insert、update、delete操作都会记录在二进制日志里,如果需要恢复数据,可以读取日志中的记录,再进行反操作即可、

  • 注意delete只是删除表中的数据,并不会删除表,删除表需要用到表的操作中的drop,注意不要搞混淆

9.截断表

使用示例:

-- 创建测试表
# 检查判断
drop table if exists t_truncate;
create table t_truncate(id bigint primary key auto_increment,name varchar(20)
);# 插入测试数据
insert into t_truncate(name) values ('A'), ('B'), ('C');-- 显示建表结构 -- 以下是在命令行窗口中进行 AUTO_INCREMENT=4
mysql> show create table t_truncate;
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table                                                                                                                                                                                                   |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t_truncate | CREATE TABLE `t_truncate` (`id` bigint NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)-- 截断表 
mysql> truncate table t_truncate;
Query OK, 0 rows affected (0.03 sec)
-- 显示截断后表的结构 发现AUTO_INCREMENT 被重置为0
mysql> show create table t_truncate;
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table      | Create Table|
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t_truncate | CREATE TABLE `t_truncate` (`id` bigint NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-- 继续写入数据 AUTO_INCREMENT为1
insert into t_truncate(name) values('d');

注意点:

  • 只能对整表操作,不能像delete一样对部分数据删除

  • 执行truncate操作时会把表的状态重置为初始状态,表中的数据也会被清除

  • 执行truncate不对数据操作所以比delete更快,truncate在删除数据的时候,不经过真正的事务,所以无法回滚

  • 会重置auto_increment

10.插入查询结果

使用示例:


-- 删除表中的重复数据
#首先创建测试表
drop table if exists t_record;
create table t_record(id int,name varchar(20)
);#插入测试数据
insert into t_record(id,name) values
(100, 'aaa'),
(100, 'aaa'),
(200, 'bbb'),
(200, 'bbb'),
(200, 'bbb'),
(300, 'ccc');# 创建一张新表,表结构与t_record相同
drop table if exists t_record_new;
create table t_record_new like t_record;# 原来表中的数据去重之后copy进入新表
insert into t_record_new select distinct * from t_record;   -- 核心步骤#新表与原来表重命名
rename table t_record to t_record_old, t_record_new to t_record; 

注意点:

  • 对于重命名表和数据表的迁移一般是由数据库管理员DBA来操作

  • 原始表中的数据一般都不会主动删除,但是真正查询时不需要重复的数据,如果每次查询都使用distinct进行去重操作,会严重影响效率。可以创建一张与t_record表结构相同的表,把去重的记录写入新表中,以后查询都从新表中查,这样真实数据不会丢失,同时也能保证查询效率

11.聚合函数

常见聚合函数:

-- count统计exam表中某一列数据的量
select count(*) from exam;
select count(math) from exam;-- 语文成绩小于50 的学生人数
select count(chinese) from exam where chinese < 50;-- sum统计某一列数据的总和
select sum(math) from exam;# 无法统计非数值列的和
select sum(name) from exam;-- avg统计某一列的平均数
select avg(math) from exam;# 统计总分平均分
select round(avg(chinese + math + english),2) as 总分 from exam ;-- 类比max、min用法与上述例子类似,此处不再一一赘述

12.group by分组查询

使用示例:

-- 准备测试表
drop table if exists emp;
create table emp(id bigint primary key auto_increment,name varchar(20) not null,role varchar(20) not null,salary decimal(10,2) not null
);# 插入测试用例
insert into emp values (1, '马云', '老板', 1500000.00);
insert into emp values (2, '马化腾', '老板', 1800000.00);
insert into emp values (3, '鑫哥', '讲师', 10000.00);
insert into emp values (4, '博哥', '讲师', 12000.00);
insert into emp values (5, '平姐', '学管', 9000.00);
insert into emp values (6, '莹姐', '学管', 8000.00);
insert into emp values (7, '孙悟空', '游戏角色', 956.8);
insert into emp values (8, '猪悟能', '游戏角色', 700.5);
insert into emp values (9, '沙和尚', '游戏角色', 333.3);-- 统计每个角色的人数
select role, count(*) as sum from emp group by role;-- 统计每一个角色的最高、最低工资、平均工资
select role, avg(salary), min(salary), max(salary) from emp group by role;-- 显示平均工资低于1500的角色和它的平均工资  -- having 语句支持别名
select role, avg(salary) as avg from emp group by role having avg < 1500; 
--  having 与 group by的顺序不可以颠倒

注意点:

  • 使用group by进行分组处理之后,对分组的结果进行过滤的时候,不能使用where子句,而要使用having子句

  • Having 用于对分组结果的条件过滤

  • where用于对表中真实数据的条件过滤

  • 在group by执行之前,where已经执行过了

相关文章:

MySQL增删改查操作 -- CRUD

个人主页&#xff1a;顾漂亮 目录 1.CRUD简介 2.Create新增 使用示例&#xff1a; 注意点&#xff1a; 3.Retrieve检索 使用示例&#xff1a; 注意点&#xff1a; 4.where条件查询 前置知识&#xff1a;-- 运算符 比较运算符 使用示例&#xff1a; 注意点&#xf…...

uniapp+Vue3 组件之间的传值方法

一、父子传值&#xff08;props / $emit 、ref / $refs&#xff09; 1、props / $emit 父组件通过 props 向子组件传递数据&#xff0c;子组件通过 $emit 触发事件向父组件传递数据。 父组件&#xff1a; // 父组件中<template><view class"container">…...

TDengine SQL 函数

单行函数 数学函数 ABSACOSASINATANCEILCOSDEGREESEXPFLOORGREATESTLEASTLNLOGMODPIPOWRADIANSRANDROUNDSIGNSINSQRTTANTRUNCATE 字符串函数 ASCIICHARCHAR_LENGTHCONCATCONCAT_WSLENGTHLOWERLTRIMPOSITIONREPEATREPLACERTRIMSUBSTRING/SUBSTRSUBSTRING_INDEXTRIMUPPER 转换函数…...

智能三防手持终端破解传统仓储效率困局

在数字化浪潮的推动下&#xff0c;传统仓储管理模式正面临效率低、成本高、错误频发等瓶颈。如何实现精准、高效、智能化的仓储管理&#xff0c;上海岳冉三防智能手持终端机以RFID技术为核心&#xff0c;结合工业级三防&#xff08;防水、防摔、防尘&#xff09;设计&#xff0…...

力扣——K个一组翻转链表

题目链接&#xff1a; 链接 题目描述&#xff1a; 思路&#xff1a; 可以理解为把原链表的每一段进行反转 把链表的每一段看成新链表&#xff0c;单独进行反转&#xff0c;然后再放回原链表 关键是截取k个节点、进行反转后&#xff0c;怎么再和原链表链接起来 我们把截取的…...

5-27 临摹大师-IP-Adapter

前言&#xff1a; 前一节我们主要介绍ControlNet中如何对黑白照片进行上色 主要介绍ControlNet中的IP-Adapter。这个也是一种类似的风格借鉴&#xff0c;类似Reference的能力。 当然IP-Adapter有两点或许可以吸引我们&#xff0c;一个是国人腾讯公司制作的。另一个在速度和效…...

MinIO的预签名直传机制

我们传统使用MinIo做OSS对象存储的应用方式往往都是在后端配置与MinIO的连接和文件上传下载的相关接口&#xff0c;然后我们在前端调用这些接口完成文件的上传下载机制&#xff0c;但是&#xff0c;当并发量过大&#xff0c;频繁访问会对后端的并发往往会对服务器造成极大的压力…...

树莓科技集团董事长:第五代产业园运营模式的深度剖析与展望​

第五代产业园运营模式&#xff0c;以创新为核心驱动&#xff0c;强调数字化、网络化和资源整合。树莓科技集团在这一领域具有代表性&#xff0c;其运营模式值得深入剖析。 核心特征 数字化转型&#xff1a;第五代产业园高度重视数字化技术的应用&#xff0c;通过构建数字化平…...

项目组织管理类型-职能式组织和矩阵式组织的区别

在职能式组织和矩阵式组织中&#xff0c;任务分配和人员安排确实有显著的不同&#xff0c;让我们通过以下例子来进一步解释&#xff1a; 职能式组织在职能式组织中&#xff0c;任务通常是根据部门的职能进行下达的。 例如&#xff0c;一家制造公司的组织结构如下&#xff1a; …...

树莓科技(成都)集团:如何铸就第五代产业园标杆

树莓科技&#xff08;成都&#xff09;集团铸就第五代产业园标杆&#xff0c;主要体现在以下几个方面&#xff1a; 精准定位与前瞻布局 树莓科技并非盲目扩张&#xff0c;而是精准锚定数字经济发展方向。以成都为起点&#xff0c;迅速构建起全国性的园区版图&#xff0c;体现…...

【Quest开发】手柄交互震动

软件&#xff1a;Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72&#xff08;要提前导入哦&#xff09; 硬件&#xff1a;Meta Quest3 参考Meta开发文档&#xff1a;https://developers.meta.com/horizon/documentation/unity/unity-haptics-sdk-integrate 这篇官…...

《Transformer如何进行图像分类:从新手到入门》

引言 如果你对人工智能&#xff08;AI&#xff09;或深度学习&#xff08;Deep Learning&#xff09;感兴趣&#xff0c;可能听说过“Transformer”这个词。它最初在自然语言处理&#xff08;NLP&#xff09;领域大放异彩&#xff0c;比如在翻译、聊天机器人和文本生成中表现出…...

数字图像处理与Python语言实现-Box模糊CUDA实现

Box模糊CUDA实现 文章目录 Box模糊CUDA实现1、Box模糊的基本原理2、算法优化:滑动窗口技术3、参数对模糊效果的影响4、Box模糊的优缺点5、与高斯模糊的对比6、实际应用场景7、算法实现7.1 PyCUDA实现7.2 CuPy实现7.3 C++与CUDA实现8、总结在图像处理领域,**Box模糊(方框模糊…...

MAVEN解决版本依赖冲突

文章目录 一、依赖冲突概念1、什么是依赖冲突2、依赖冲突的原因3、如何解决依赖冲突 二、查看依赖冲突-maven-helper1、安装2、helper使用1、conflicts的阅读顺序&#xff08;从下向上看&#xff09;2、dependencies as List的阅读顺序&#xff08;从下向上看&#xff09;3、de…...

Compose 实践与探索五 —— AnimationSpec

不论是 animateXxxAsState() 还是 Animatable 的 animateTo() 都可以传入 AnimationSpec 以配置动画的规格&#xff1a; Composable fun animateDpAsState(targetValue: Dp,animationSpec: AnimationSpec<Dp> dpDefaultSpring,label: String "DpAnimation",…...

Embedding模型到底是什么?

嵌入模型&#xff08;Embedding Model&#xff09;是一种将高维数据映射到低维空间的工具&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;、推荐系统和图像识别等领域。它的核心目标是将复杂的数据&#xff08;如文本、图像或用户行为&#xff09;转换为稠密的…...

数据结构(一)——绪论

一、数据结构的研究内容 1.数据的各种逻辑结构和物理结构&#xff0c;以及他们之间的相应关系 2.存储结构的方法&#xff0c;对每种结构定义相适应的各种运算 3.设计出相应的算法 4.分析算法的效率 二、数据结构的基本概念 1.数据&#xff08;data&#xff09;&#xff1a…...

VMware虚拟机网络连接模式介绍以及nat模式访问公网实践

在 VMware 虚拟机中&#xff0c;网络配置是非常重要的一部分。VMware 提供了三种主要的网络连接模式&#xff0c;分别是桥接模式&#xff08;Bridged&#xff09;、NAT模式&#xff08;NAT&#xff09; 和仅主机模式&#xff08;Host-Only&#xff09;。每种模式都有其特定的用…...

Selenium Manager和webdriver manager的区别与联系

一、引言 1.1 自动化测试的重要性 在现代软件开发流程中&#xff0c;自动化测试已经成为保证软件质量和提高交付效率的关键实践。随着软件开发周期的缩短和软件复杂性的增加&#xff0c;手工测试已无法满足快速迭代的需求。自动化测试能够快速、准确地执行重复性测试任务&…...

八叉树地图的原理与实现

八叉树与体素图 八叉树地图 八叉树地图是可变分辨率的三维栅格地图&#xff0c;可以自由调整分辨率&#xff0c;如下所示&#xff1a; 根据点云的数量或密度决定每个叶子方块是否被占据 体素图 体素就是固定分辨率的三维栅格地图&#xff0c;如下所示&#xff1a; 根据点云…...

DeepSeek模型本地化部署方案及Python实现

DeepSeek实在是太火了&#xff0c;虽然经过扩容和调整&#xff0c;但反应依旧不稳定&#xff0c;甚至小圆圈转半天最后却提示“服务器繁忙&#xff0c;请稍后再试。” 故此&#xff0c;本文通过讲解在本地部署 DeepSeek并配合python代码实现&#xff0c;让你零成本搭建自己的AI…...

【Linux】浅谈冯诺依曼和进程

一、冯诺依曼体系结构 冯诺依曼由 输入设备、输出设备、运算器、控制器、存储器 五部分组成。 冯诺依曼的设计特点 二进制表示 所有数据&#xff08;包括程序指令&#xff09;均以二进制形式存储和运算&#xff0c;简化了硬件逻辑设计&#xff0c;提高了可靠性。 存储程序原理…...

基于深度学习的多模态人脸情绪识别研究与实现(视频+图像+语音)

这是一个结合图像和音频的情绪识别系统&#xff0c;从架构、数据准备、模型实现、训练等。包括数据收集、预处理、模型训练、融合方法、部署优化等全流程。确定完整系统的组成部分&#xff1a;数据收集与处理、模型设计与训练、多模态融合、系统集成、部署优化、用户界面等。详…...

【蓝桥杯】第15届c++B组--R格式

问题描述 小蓝最近在研究一种浮点数的表示方法&#xff1a;RR 格式。对于一个大于 0 的浮点数 dd&#xff0c;可以用 RR 格式的整数来表示。给定一个转换参数 nn&#xff0c;将浮点数转换为 RR 格式整数的做法是: 将浮点数乘以 2n2n&#xff1b; 四舍五入到最接近的整数。 …...

【初阶三】认识C语言—下

【初阶三】认识C语言—下 1.函数2.数组3.操作符3.1算数操作符3.2移位操作符和位操作符3.3赋值操作符3.4单目操作符 4.常见关键字4.1关键字typedef4.2 关键字static 5. define定义常宏6.指针6.1内存6.2取地址操作符& 7.结构体 1.函数 函数就像一个工厂&#xff0c;通过输入原…...

【C#】使用DeepSeek帮助评估数据库性能问题,C# 使用定时任务,每隔一分钟移除一次表,再重新创建表,和往新创建的表追加5万多条记录

&#x1f339;欢迎来到《小5讲堂》&#x1f339; &#x1f339;这是《C#》系列文章&#xff0c;每篇文章将以博主理解的角度展开讲解。&#x1f339; &#x1f339;温馨提示&#xff1a;博主能力有限&#xff0c;理解水平有限&#xff0c;若有不对之处望指正&#xff01;&#…...

前端学习笔记(三)——ant-design vue表单传递数据到父页面

前言 善用AI&#xff0c;快速解决定位 原理 a-form所在的SFC&#xff08;单文件&#xff09;vue中需要将表单数据传递给父页面SFC文件中&#xff0c;使用emit方法 代码 子组件&#xff08;Form.vue&#xff09; <template><a-form submit"handleSubmit&qu…...

计算机视觉算法实战——驾驶员玩手机检测(主页有源码)

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​ 1. 领域简介&#xff1a;玩手机检测的重要性与技术挑战 驾驶员玩手机检测是智能交通安全领域的核心课题。根据NHTSA数据&#xff0…...

C语言(23)

字符串函数 11.strstr函数 1.1函数介绍&#xff1a; 头文件&#xff1a;string.h char *strstr ( const char * str1,const char *str2); 作用&#xff1a;在一个字符串&#xff08;str1&#xff09;中寻找另外一个字符串&#xff08;str2&#xff09;是否出现过 如果找到…...

Python入门教程:从零开始学习Python编程

引言 Python是一种高级编程语言&#xff0c;因其简洁的语法和强大的功能而广受欢迎。无论你是编程新手&#xff0c;还是有经验的开发者&#xff0c;Python都是一个非常好的选择。本文将带你从零开始学习Python编程&#xff0c;涵盖基础语法、常用库以及一些实用的编程技巧。 目…...

SAIL-RK3576核心板应用方案——无人机视觉定位与地面无人设备通信控制方案

本方案以 EFISH-RK3576-SBC工控板 或 SAIL-RK3576核心板 为核心&#xff0c;结合高精度视觉定位、实时通信与智能控制技术&#xff0c;实现无人机与地面无人设备的协同作业。方案适用于物流巡检、农业植保、应急救援等场景&#xff0c;具备高精度定位、低延迟通信与强环境适应性…...

14.C语言const的使用规范,详细说明

目录 修饰变量 修饰指针 指向常量的指针 常量指针 指向常量的常量指针 修饰函数参数 修饰函数返回值 总结 在 C 语言里&#xff0c;const 是一个类型限定符&#xff0c;它的作用是将变量定义为只读&#xff0c;也就是不允许对其值进行修改&#xff0c;用来修饰函数中的…...

安装操作系统ubuntu-20.04.6-live-server-amd64

一、下载虚拟机软件、远程控制软件及操作系统镜像 下载VMware Workstation&#xff1a; 下载 VMware Workstation Pro 个人免费版(可能会访问不了&#xff0c;那就随便找个能下载的版本安装)下载XShell&#xff1a; XShell 家庭/学校免费版下载ubuntu操作系统 ubuntu-20.04.6-…...

使用 PaddleNLP 在 CPU(支持 AVX 指令)下跑通 llama2-7b或DeepSeek-r1:1.5b 模型(完成度80%)

原文&#xff1a;&#x1f6a3;‍♂️ 使用 PaddleNLP 在 CPU(支持 AVX 指令)下跑通 llama2-7b 模型 &#x1f6a3; — PaddleNLP 文档 使用 PaddleNLP 在 CPU(支持 AVX 指令)下跑通 llama2-7b 模型 &#x1f6a3; PaddleNLP 在支持 AVX 指令的 CPU 上对 llama 系列模型进行了…...

【Golang】第五弹----函数

笔上得来终觉浅,绝知此事要躬行 &#x1f525; 个人主页&#xff1a;星云爱编程 &#x1f525; 所属专栏&#xff1a;Golang &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 一、函数 1.1基本介绍…...

适合二次开发的Web组态软件推荐

在选择适合二次开发的Web组态软件时&#xff0c;需要考虑多个因素&#xff0c;包括开源与否、功能、社区支持、文档完整性等。以下是一些适合二次开发的Web组态软件&#xff1a; 1. Node-RED 简介: Node-RED 是一个基于流的编程工具&#xff0c;最初由IBM开发&#xff0c;现为…...

三、Docker 集群管理与应用

&#xff08;一&#xff09;项目案例 1、准备主机 &#xff08;1&#xff09;关闭防火墙&#xff0c;或者开放TCP端口2377&#xff08;用于集群管理通信&#xff09;、TCP/UPD端口7946&#xff08;用于节点之间的通信&#xff09;、UDP端口4789&#xff08;用于overlay网络流…...

Spring 注解解析

一、Import 1、核心作用 Import 是 Spring 模块化配置的核心注解&#xff0c;用于将外部配置类、组件或动态逻辑导入当前 Spring 上下文。其核心功能包括&#xff1a; 配置类聚合&#xff1a;整合多个分散的 Configuration 类&#xff0c;解决大型项目中配置分散的问题。动态…...

DeepSeek-R1思路训练多模态大模型-Vision-R1开源及实现方法思路

刚开始琢磨使用DeepSeek-R1风格训练多模态R1模型&#xff0c;就看到这个工作&#xff0c;本文一起看看&#xff0c;供参考。 先提出问题&#xff0c;仅靠 RL 是否足以激励 MLLM 的推理能力&#xff1f; 结论&#xff1a;不能&#xff0c;因为如果 RL 能有效激励推理能力&#…...

mysql select distinct 和 group by 哪个效率高

在有索引的情况下&#xff0c;SELECT DISTINCT和GROUP BY的效率相同&#xff1b;在没有索引的情况下&#xff0c;SELECT DISTINCT的效率高于GROUP BY‌。这是因为SELECT DISTINCT和GROUP BY都会进行分组操作&#xff0c;但GROUP BY可能会进行排序&#xff0c;触发filesort&…...

阿里云操作系统控制台评测:国产AI+运维 一站式运维管理平台

阿里云操作系统控制台评测&#xff1a;国产AI运维 一站式运维管理平台 引言 随着云计算技术的飞速发展&#xff0c;企业在云端的运维管理面临更高的要求。阿里云操作系统控制台作为一款集运维管理、智能助手和系统诊断等多功能于一体的工具&#xff0c;正逐步成为企业高效管理…...

Linux基础开发工具—vim

目录 1、vim的概念 2、vim的常见模式 2.1 演示切换vim模式 3、vim命令模式常用操作 3.1 移动光标 3.2 删除文字 3.3 复制 3.4 替换 4、vim底行模式常用命令 4.1 查找字符 5、vim的配置文件 1、vim的概念 Vim全称是Vi IMproved&#xff0c;即说明它是Vi编辑器的增强…...

11 应用层的域名知识点

一、DNS 1、理解 定义&#xff1a;DNS&#xff08;Domain Name System&#xff0c;域名系统&#xff09;是互联网的一项核心服务&#xff0c;它将人类可读的域名&#xff08;也叫网址&#xff0c;如 www.example.com&#xff09;转换为机器可读的IP地址&#xff08;如 192.0.…...

5-24 色彩与风格——T2IA自适应

前言&#xff1a; 上一节我们介绍了ControlNet中的inpaint局部重绘 主要介绍ControlNet中的T2IA自适应。 色彩风格的参考和借鉴能力&#xff0c;有点类似于5-17 reference参考图 或者 5-16 画面风格迁移-shuffle洗牌 。当然在硬件的要求&#xff0c;软件的算法实现和使用方式…...

JAVA-Thread类实现多线程

引言&#xff1a; 本章博客涉及进程线程内容&#xff0c;如果不了解的可以看&#xff1a;什么是进程线程-CSDN博客 线程是操作系统的概念&#xff0c;操作系统提供的API供程序员使用操作。但是不同的操作系统(Winodws、Linux、Unix……差别很大),但是做为JAVA程序员就不需要担心…...

顺序表,单链表,双链表,循环链表(01星球)

文章目录 数据结构前导------C语言复习程序为什么要被编译器编译之后才能运行编译器把C语言程序转换成可以执行的机器码的过程做了什么宏定义typedef 关键字全局变量和局部变量常量字符的输入输出运算符冯诺依曼架构存储器容量数据类型指针指针本质为什么需要指针 数组数组指针…...

代码社区开源协议

开源协议是一种法律文件&#xff0c;用于规定开源软件的使用、修改和分发条件。它平衡了开发者和使用者的权益&#xff0c;同时推动开放协作与技术创新。以下是常见的开源协议及其特点和适用场景&#xff1a; 常见开源协议列表及介绍 1. MIT License 特点&#xff1a;非常宽…...

[免费]微信小程序(图书馆)自习室座位预约管理系统(SpringBoot后端+Vue管理端)(高级版)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序(图书馆)自习室座位预约管理系统(SpringBoot后端Vue管理端)(高级版)&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序(图书馆)自习室座位预约管理系统(SpringBoot后端Vue管理端)(高级版…...

树莓派:更新源

发行版本 Debian 一直维护着至少三个发行版本&#xff1a;“稳定版&#xff08;stable&#xff09;”&#xff0c;“测试版&#xff08;testing&#xff09;”和“不稳定版&#xff08;unstable&#xff09;”。 发行版目录 下一代 Debian 正式发行版的代号为 bullseye — 发布…...

树与二叉树的遍历

我们平时用的树都是二叉树 一、一些基础概念 1. 树就是一种&#xff1a;一对多的数据结构。树离不开递归&#xff0c;因为“树”就是“树”中有“树”。 二叉树就是 &#xff1a;空树 或者 每个结点的子结点个数小于等于2。 满二叉树&#xff1a; 除叶子结点外所有结点的…...