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

【MySQL 保姆级教学】内置函数(9)

内置函数

  • 1. 日期函数
    • 1.1 日期函数的种类
    • 1.2 示例
    • 1.3 日期的转换
  • 2. 字符串函数
    • 2.1 种类
    • 2.2 示例
  • 3. 数学函数
    • 3.1 种类
    • 3.2 向上取整和向下取整
    • 3.3 示例
  • 4. 其他函数
    • 4.1 查询当前用户/数据库
    • 4.2 ifnull(val1,val2)
    • 4.3 md5()函数
    • 4.4 password()函数

1. 日期函数

1.1 日期函数的种类

函数名称说明
current_date()返回当前日期
current_time()返回当前时间
current_timestamp()返回时间戳(日期和时间)
now()返回当前时间
date(datetime)返回datetime参数的时间部分
date_add(date, interval d_value_type)在d_value_type值上添加时间或日期,interval后的单位可以是:year,day,minute,second
date_sub(date, interval d_value_type)在d_date_type值上添加时间或日期,interval后的单位可以是:year,day,minute,second
datediff(date1, date2)两个日期的差(date1-date2)

now()current_timestamp()的区别:

  • now()返回当前日期和时间,数据类型为 DATETIMEcurrent_timestamp()返回当前日期和时间,数据类型为 TIMESTAMP
  • now()返回的是服务器的本地时间;current_timestamp()返回的是服务器的本地时间,但在某些上下文中可能会自动转换为客户端的时区。

为什么需要 interval?

  1. 明确性:
    interval 参数明确了你要增减的时间单位和数量,使得函数的行为非常明确。例如,INTERVAL 1 DAY 表示增加一天,而 INTERVAL 2 HOUR 表示增加两个小时。
  2. 灵活性:
    通过使用 interval,你可以灵活地增减不同单位的时间。这包括天、小时、分钟、秒、月、年等。
  3. 可读性和维护性:
    使用 interval 使代码更具可读性和维护性。其他开发人员可以很容易地理解你在做什么,而不需要猜测。

1.2 示例

  1. 获取当前日期(年月日)
    命令:select current_date();
    在这里插入图片描述

  2. 获取当前时间
    命令:select current_time();
    在这里插入图片描述

  3. 获取当前日期和时间
    命令:select now();
    在这里插入图片描述

  4. 获取当前时间戳(日期和时间)
    命令:select current_timestamp();
    在这里插入图片描述

  5. 在日期的基础上加上时间
    命令:select date_add('2020-10-1', interval 10 day);
    在这里插入图片描述

  6. 在日期的基础上减去时间
    命令:select date_sub('2020-10-1', interval 10 day);
    在这里插入图片描述

  7. 两个时间相减,左-右,返回的单位是天
    命令:select datediff('2024-10-10', '2020-8-8');
    在这里插入图片描述

1.3 日期的转换

  1. 创建一个留言板
    命令:

    create table comment(
    id int primary key auto_increment,
    comment text,
    sendtime datetime
    );

    在这里插入图片描述

  2. 插入数据
    命令:

    insert into comment(comment, sendtime)
    values(‘放假啦’,now()),
    (‘一起出去玩吧’,now());

    在这里插入图片描述

    命令:insert into comment (comment, sendtime) values('好的,约个地点吧', current_date());
    在这里插入图片描述

    命令:insert into comment(comment, sendtime) values('去哪玩呢?', current_time());
    在这里插入图片描述

    命令:insert into comment(comment, sendtime) values('去游乐场吧', current_timestamp);
    在这里插入图片描述

  3. 查询在两分钟内发布的帖子
    命令:select comment from comment where date_add(sendtime, interval 2 minute) > now();

    或命令:select comment from comment where date_sub(now(), interval() 2 minute) < sendtime;
    在这里插入图片描述

同学们有没有发现,我们的comment表中comment字段设置的是datetime类型,而在插入的过程中有current_date()current_time()current_timestamp()
这样类型的数据差进去后还是datetime类型吗?

命令:select * from comment;
在这里插入图片描述

DATETIME 类型的列可以接受 CURRENT_DATE()、CURRENT_TIME() 和 CURRENT_TIMESTAMP() 函数返回的值,因为这些函数返回的值可以被隐式转换为 DATETIME 类型。以下是对每个函数的详细解释以及它们如何与 DATETIME 类型交互:

  1. current_date返回值是date日期,当将 CURRENT_DATE() 的值插入到 DATETIME 列时,数据库会自动将 DATE 值转换为 DATETIME 值,通常会将时间部分设置为 00:00:00
  2. current_time返回值是time时间,当将 CURRENT_TIME() 的值插入到 DATETIME 列时,数据库会自动将 TIME 值转换为 DATETIME 值,通常会将日期部分设置为current_date()的值
  3. current_timestamp()的返回值是时间戳(格式是datetime类型),当将 CURRENT_TIMESTAMP() 的值插入到 DATETIME 列时,数据库会直接使用返回的 TIMESTAMP 或 DATETIME 值

默认行为

  • 数据库系统通常会尽量避免数据丢失,因此它会尝试将不同类型的日期/时间数据转换为 DATE 类型,而不是直接拒绝插入。

具体的转换还是根据MySQL的版本。

为了表示数据的准确,可以使用date(time/datetime/timestamp)函数进行日期提取

2. 字符串函数

2.1 种类

函数名称说明
charset(str)返回字符串的字符集
collation(str)返回字符串的校验集
concat(string [,…])连接字符
instr(string, substring)返回substring在string中的位置
ucase(string)转换成大写
lcase(string)转换成小写
left(string, length)从string左边开始取length多个字符
right(string, length)从string右边开始取length多个字符
length(string)string的长度
replace(str, searth_str, replace_str)把str中的search_str替换成replace_str
strcmp(string1,string2)逐字比较字符串string1和string2的大小
substring(string, position [, length])从position开始取leng个字符,没有length则从position到末
ltrim(string)去掉string左边的空格
rtrim(string)去掉string右边的空格
trim(string)去掉string左右两边的空格

2.2 示例

  1. 获取t1表的id字段的字符集和校验集
    命令:select charset(id), collation(id) from t1;
    在这里插入图片描述

  2. concat()拼接字符串
    命令:select concat(name, '的分数是:',score) from t1;
    在这里插入图片描述
    如果拼接的字段有一行为空,则该行直接显示为空

  3. t1表中,姓名占用的字节数
    命令:select length(name) from t1;
    在这里插入图片描述
    length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;
    如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数
    (与字符集编码有关);使用utf8时,一个汉字占3个字节;使用gbk时,一个汉字占2个字节

  4. 把t1b表姓名中的‘李’替换成‘li’
    命令:select replace(name, '李', 'li') from t1;
    在这里插入图片描述

  5. 截取姓名的第2到第三个字符(相当于下标从1开始)。
    substring(string, position, length):从position开始的length个字符(包含position)
    命令:select substring(name, 2,2) from t1;
    在这里插入图片描述
    如果字段从第二个字符开始不足两个字符,则取一个字符。

  6. 把t2表的name字段的x姓和名分开打印,姓转换为大写,名为小写
    命令:select ucase(substring(name, 1, 1)), lcase(substring(name, 2)) from t2;
    在这里插入图片描述

  7. instr(string, substring),返回substring在string中出现的位置
    命令:select instr('abcdefg', 'bc');
    命令:select instr(''abcdefg, 'abcd');
    在这里插入图片描述
    同学们可以发现,返回的是查询到substring首位置string下标从1开始

  8. 清空字符串的空格
    清空左边空格命令:select ltrim(' 你好 ! ');
    清空右边空格命令:select rtrim(‘ 你好 ! ’);
    清空两边空格命令:select trim(' 你好 ! ');
    字符串包含的空格清楚不了。
    在这里插入图片描述

3. 数学函数

3.1 种类

函数名称说明
abs(number)绝对值函数
bin(decimal_number)十进制转换成二进制
hex(decimal_number)十进制转换成十六进制
conv(number, from_number, to_number)进制转化
ceiling(number)向上取整
floor(number)向下取整
format(number,decimal_replace)格式化,保留小数位数
rand()返回随机浮点数,范围[0.0, 1.0)
mod(number,denominator)取模,求余
md5(str)生成32位的唯一标识符

3.2 向上取整和向下取整

向上取整 (Ceiling)

  • 定义:向上取整是指将一个浮点数转换为大于或等于该浮点数的最小整数
  • 符号:通常用 ceil 表示。
  • 数学表示:ceil(x) 返回不小于 x 的最小整数。

向下取整 (Floor)

  • 定义:向下取整是指将一个浮点数转换为小于或等于该浮点数的最大整数
  • 符号:通常用 floor 表示。
  • 数学表示:floor(x) 返回不大于 x 的最大整数。

在这里插入图片描述

使用t3表:
在这里插入图片描述

向上取整命令:select ceiling(score) from t3;
在这里插入图片描述

向下取整命令:select flooor(score) from t3;
在这里插入图片描述

3.3 示例

  1. 绝对值函数abs()
    命令:select abs(-111.11);
    在这里插入图片描述

  2. 保留两位小数,foemat(number, n), n是保留小数位的个数
    命令:select format(score, 2) from t3;
    在这里插入图片描述

  3. rand()产生随机数。
    产生0-99的随机数:select rand()*100;
    在这里插入图片描述

    产生0-999的随机数:select rand()*1000;
    在这里插入图片描述

  4. 十进制转换为二进制
    命令:select bin(64);
    在这里插入图片描述

  5. 十进制转化为十六进制
    命令:select hex(64);
    在这里插入图片描述

  6. 取模,求余
    命令:select mod(100,3);
    在这里插入图片描述

4. 其他函数

4.1 查询当前用户/数据库

  1. 查询当前用户
    命令:seelct user()
    在这里插入图片描述
  2. 查询当前数据库
    命令:select database();
    在这里插入图片描述

4.2 ifnull(val1,val2)

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值
示例:

  1. 命令:select ifnull(null,'为空');

在这里插入图片描述

  1. 查询t2表的姓名,如果姓名为空,则替换为’未输入名字’
    命令:select ifnull(name, '未输入名字') from t1;
    在这里插入图片描述

4.3 md5()函数

MySQL 中,MD5 哈希函数主要用于生成数据的哈希值。虽然 MD5 在密码存储和高安全性要求的应用中已经不被推荐使用,但在某些情况下,它仍然可以用于数据完整性验证、简单的数据加密或生成唯一标识符等场景。

MD5 在 MySQL 中的作用

  • 数据完整性验证:
    通过计算数据的 MD5 哈希值,可以验证数据在传输过程中是否被篡改。
    例如,在文件上传或下载时,可以通过比较文件的 MD5 值来确保文件的完整性。
  • 简单的密码存储:
    尽管不推荐,但在一些旧系统中,MD5 仍然用于存储用户密码的哈希值。
    现代系统应使用更强的哈希算法(如 SHA-256 或 bcrypt)并结合盐(salt)来存储密码。
  • 生成唯一标识符:
    可以使用 MD5 生成数据的唯一标识符,例如在生成 URL 缩短服务中的短链接时。
  • 数据去重:
    通过计算数据的 MD5 哈希值,可以快速检测和删除重复的数据记录。

示例:

  1. 把字符串生成哈希值
    命令:select md5('abcdefg');
    在这里插入图片描述

  2. 这是一个把密码加密的场景。password()函数的加密程度更高。
    md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串

    创建表t4,命令:

    create table t4(
    id char(11) primary key ,
    password char(32) - - MD5摘要后是32位的字符串
    );

    在这里插入图片描述

    插入MD5数据,命令:

    insert into t4
    values(‘111’, md5(‘111’)),
    (‘222’,md5(‘222’)),
    (‘333’, md5(‘333’));

    在这里插入图片描述
    查看全部数据
    在这里插入图片描述

    where查询
    命令:select id, password from t4 where id='111'and password=md5('111');
    在这里插入图片描述

4.4 password()函数

在 MySQL 中,PASSWORD() 函数用于计算和返回一个字符串的哈希值,这个哈希值是 MySQL 用于存储用户密码的格式。PASSWORD() 函数生成的哈希值是一个 41 字符的字符串,通常用于 MySQL 用户认证。

PASSWORD() 函数的作用

  1. 生成密码哈希:
    • PASSWORD() 函数接受一个字符串作为输入,并返回该字符串的哈希值。这个哈希值是使用 MySQL 内部的算法生成的。
    • 生成的哈希值是一个 41 字符的字符串,格式为 *<hash_value>,其中 <hash_value> 是实际的哈希值。
  2. 用户认证:
    • 在 MySQL 中,用户的密码通常是通过 PASSWORD() 函数进行哈希处理后存储在 mysql.user 表中的 password 列中。
    • 当用户尝试登录时,MySQL 会将用户提供的密码通过 PASSWORD() 函数进行哈希处理,并与存储在 mysql.user 表中的哈希值进行比较,以验证用户的身份。

示例:

  1. 命令:select password('111');
    在这里插入图片描述

相关文章:

【MySQL 保姆级教学】内置函数(9)

内置函数 1. 日期函数1.1 日期函数的种类1.2 示例1.3 日期的转换 2. 字符串函数2.1 种类2.2 示例 3. 数学函数3.1 种类3.2 向上取整和向下取整3.3 示例 4. 其他函数4.1 查询当前用户/数据库4.2 ifnull(val1,val2)4.3 md5()函数4.4 password()函数 1. 日期函数 1.1 日期函数的种…...

华为大咖说丨如何通过反馈机制来不断优化大模型应用?

本文分享自时习知 作者&#xff1a;袁泉&#xff08;华为AI数据工程专家&#xff09;全文约3015字&#xff0c;阅读约需8分钟 大模型应用正式投入使用后&#xff0c;存在一个较为普遍的情况&#xff1a;在利用“大模型提升业务运营效率”的过程中&#xff0c;业务部门和IT团队…...

上海亚商投顾:沪指缩量震荡 风电、传媒股集体走强

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天缩量震荡&#xff0c;三大指数集体收涨&#xff0c;北证50则跌超7%&#xff0c;超80只北交所个股跌逾…...

三磺酸-Cy3.5-羧酸在水相环境中表现良好,能够提高成像的清晰度和准确性

一、基本信息 中文名称&#xff1a;三磺酸-Cy3.5-羧酸&#xff0c;水溶性Cy3.5 羧基 英文名称&#xff1a;trisulfo-Cy3.5-carboxylic acid&#xff0c;trisulfo-Cy3.5-COOH&#xff0c;trisulfo-Cyanine3.5-COOH 分子式&#xff1a;C41H44N2NaO11S3- 分子量&#xff1a;85…...

国标GB28181视频平台EasyGBS国标GB28181软件实现无需插件的视频监控对讲和网页直播

在当今社会&#xff0c;视频监控已经成为公共安全、企业管理、智能城市建设等领域不可或缺的一部分。然而&#xff0c;由于不同厂家和平台之间的兼容性问题&#xff0c;视频监控系统的联网和整合面临巨大挑战。为了解决这个问题&#xff0c;国家制定了《公共安全视频监控联网系…...

mac nwjs程序签名公证(其他mac程序也一样适用)

为什么需要公证 mac os14.5之后的系统&#xff0c;如果不对应用进行公证&#xff0c;安装&#xff0c;打开&#xff0c;权限使用上都会存在问题&#xff0c;而且有些问题你强制开启&#xff08;sudo spctl --master-disable&#xff09;使用后可能会有另外的问题&#xff0c; …...

网络应用技术 实验一:路由器实现不同网络间通信(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验任务及要求 1、任务 1&#xff1a;完成网络部署 2、任务 2&#xff1a;设计全网IP 地址 3、任务 3&#xff1a;实现全网主机互通 六、实验步骤 1、在ensp中部署网络 2、配置各主机 IP地址、子网掩…...

使用 Qt GRPC 构建高效的 Trojan-Go 客户端:详细指南

使用 Qt GRPC 构建高效的 Trojan-Go 客户端&#xff1a;详细指南 初识 Qt 和 gRPC 什么是 Qt&#xff1f;什么是 gRPC&#xff1f; 项目结构概述创建 proto 文件定义 API 下载 api.proto 文件解析 proto 文件 1. package 与 option 语句2. 消息类型定义 TrafficSpeedUserUserSt…...

【mysql进阶】5-事务和锁

mysql 事务基础 1 什么是事务 事务是把⼀组SQL语句打包成为⼀个整体&#xff0c;在这组SQL的执⾏过程中&#xff0c;要么全部成功&#xff0c;要么全部失败&#xff0c;这组SQL语句可以是⼀条也可以是多条。再来看⼀下转账的例⼦&#xff0c;如图&#xff1a; 在这个例⼦中&a…...

指增和中性产品的申赎加减仓及资金调拨自动化伪代码思路

定义一些关键字代表的意义 STRUCT: 代表需要输入的格式化的信息IMPORT: 代表需要输入的外部信息&#xff0c; 这些信息通常是客观的SEARCH: 需要从某地比如数据库检索搜集信息SUM: 一种宏观的加和操作&#xff0c; 比如两个股票户ABAB&#xff0c;微观上实际还是有差异GROUP: …...

【论文分享】居住开放空间如何影响老年人的情感:使用可穿戴传感器的现场实验

本研究首次通过跟踪实时、高分辨率的环境暴露和情绪反应来研究和比较不同质量住宅社区中的居住开放空间&#xff08;ROS&#xff09;与老年人情绪之间关联&#xff1b;并采用混合方法&#xff0c;包括可穿戴传感器和问卷调查&#xff0c;收集了中国广州老年居民的客观和主观住宅…...

入门 | Prometheus+Grafana 普罗米修斯

#1024程序员节&#xff5c;征文# 一、prometheus介绍 1、监控系统组成 一个完整的监控系统需要包括如下功能&#xff1a;数据产生、数据采集、数据存储、数据处理、数据展示、分析、告警等。 &#xff08;1&#xff09;、数据来源 数据来源&#xff0c;也就是需要监控的数据…...

制作Ubuntu根文件系统

制作Ubuntu根文件系统&#xff1a; gunzip ubuntu-base-22.04.5-base-arm64.tar.gz mkdir ubuntu tar xvpf ubuntu-base-22.04.5-base-arm64.tar -C ubuntu 挂载目录、复制dns、执行chroot cd /userdisk/ubuntu cp /etc/resolv.conf ./etc/resolv.conf mount --bind /dev ./d…...

16个最佳测试管理工具(2024)

1、前言 测试管理解决方案能够帮助你捕捉测试需求、设计测试用例、生成测试执行报告、管理资源等。软件质量的疏忽可能导致公司遭受巨大的经济损失、声誉损害或面临诉讼风险。一个优秀的测试管理工具是防止缺陷和故障进入生产环节的关键。 2、PractiTest ​ 功能特点&#x…...

基于知识图谱的猕猴桃种植技术问答系统

猕猴桃怎么种植更高效、病虫害怎么防治、最适宜的气候条件有哪些&#xff1f;作为一名科技研发迷&#xff0c;这些问题是不是听起来很有挑战性&#xff1f;咱们今天就来聊聊一个特别的研发项目——基于知识图谱的猕猴桃种植技术问答系统。这不仅仅是一个农业项目&#xff0c;它…...

Swift雨燕蜂窝无线通信系统介绍

本文博客链接:jdh99-CSDN博客,作者:jdh,转载请注明. 1. 概述 物联网小无线通信技术众多&#xff0c;其中大多是小范围小规模的无线通信技术&#xff0c;而行业难点是如何做到广覆盖、大容量、低功耗。 针对以上难点&#xff0c;宏讯物联研发了Swift雨燕蜂窝无线通信技术&…...

【ZZULI】数据库第二次实验

【ZZULI】数据库第二次实验 创建学生信息管理系统的数据库通过T-SQL语句创建学生表、课程表、选课表创建学生表创建课程表创建选课表 修改表结构。为SC表添加写的列&#xff0c;列名为备注修改备注列的数据长度。删除SC表的备注列。 通过T-SQL语句对表的列添加约束&#xff0c;…...

Javaee---多线程(一)

文章目录 1.线程的概念2.休眠里面的异常处理3.实现runnable接口4.匿名内部类子类创建线程5.匿名内部类接口创建线程6.基于lambda表达式进行线程创建7.关于Thread的其他的使用方法7.1线程的名字7.2设置为前台线程7.3判断线程是否存活 8.创建线程方法总结9.start方法10.终止&…...

Java后端面试内容总结

先讲项目背景&#xff0c;再讲技术栈模块划分&#xff0c; 讲业务的时候可以先讲一般再特殊 为什么用这个&#xff0c;好处是什么&#xff0c;应用场景 Debug发现问题/日志发现问题. QPS TPS 项目单元测试&#xff0c;代码的变更覆盖率达到80%&#xff0c;项目的复用性高…...

DC-1渗透测试

DC1 五个flag的拿取&#xff08;截图是五个flag里面的内容&#xff09; 注意事项&#xff1a;kali的用户名&#xff1a;root 密码&#xff1a;kali 注意&#xff1a;DC1 只要开机服务就起来了 思路&#xff1a;信息收集—> 寻找漏洞—> 利用漏洞(sql注入,文件上传漏洞…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)

引言 在人工智能飞速发展的今天&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为技术领域的焦点。从智能写作到代码生成&#xff0c;LLM 的应用场景不断扩展&#xff0c;深刻改变了我们的工作和生活方式。然而&#xff0c;理解这些模型的内部…...

day36-多路IO复用

一、基本概念 &#xff08;服务器多客户端模型&#xff09; 定义&#xff1a;单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用&#xff1a;应用程序通常需要处理来自多条事件流中的事件&#xff0c;比如我现在用的电脑&#xff0c;需要同时处理键盘鼠标…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

Windows电脑能装鸿蒙吗_Windows电脑体验鸿蒙电脑操作系统教程

鸿蒙电脑版操作系统来了&#xff0c;很多小伙伴想体验鸿蒙电脑版操作系统&#xff0c;可惜&#xff0c;鸿蒙系统并不支持你正在使用的传统的电脑来安装。不过可以通过可以使用华为官方提供的虚拟机&#xff0c;来体验大家心心念念的鸿蒙系统啦&#xff01;注意&#xff1a;虚拟…...