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

MySQL的函数

函数其实就是方法,就是别人封装好的东西

熟能生巧,加油!!!完整代码在最后。

一、聚合函数 - group_concat()

就是对数据进行分组然后合并

二、数学函数

函数很多,大家至少看一遍,有一个大概印象!

函数很多,不一定要全部记住,只需要记住他的用法,当你使用的时候直接过来查看即可

select abs(表达式或者字段) from 表;

 

三、字符串函数

四、日期函数

日期函数比较多,但是好多重复的,大家有一个印象就好,用的时候在拿出来看看就好

五、控制流函数-if逻辑判断函数

if逻辑判断语句

结合表的数据,判断表中的列是否满足条件

对于null的处理

case when语句

六、窗口函数

聚合函数是把每一组的数据都返回一个值,窗口函数既可以实现聚合函数的功能,又可以把原有的数据保留

序号函数(row_number,rank,dense_rank)

三个序号函数意义都一样,只是细节上有所区别

可以实现分组排序,并添加序号

仔细观察row_number,rank,dense_rank序号的区别

row_number按照高低排序

rank会出现并列的情况,比如两个人并列第一,下一个直接就是第三

dense_rank会出现并列的情况,并列不影响排序号

partition by 省略掉就是全局排序,全局排序就是不分组

开窗聚合函数(sum avg max min)

avg,max,min和sum语法一样,都是反应的从第几行到第几行的数据,不是单单只指一行或一列

 

分布函数(cume_dist)

查询小于等于当前薪资的比例

就是计算小于等于我的数量除以总共的数量

分布函数(percent_rank)

不是很常用

前后函数(lag和lead)

返回当前行的前n行(lag(expr,n))或后n行(lead(expr,n))的expr的值

头尾函数(first_value和last_value)

返回第一个(first_value(exper))或最后一个(last_value(exper))   exper的值

 

其他函数(nth_value和ntile)

 nth_value返回窗口中第n个exper的值,exper可以是表达式,也可以是列名

ntile 将分区中的有序数据分为n个等级,记录等级数

 

七、完整代码

create database mydb4;
use mydb4;
create table emp(
  emp_id int primary key auto_increment comment '编号',
  emp_name char(20) not null default '' comment '姓名',
  salary decimal(10,2) not null default 0 comment '工资',
  department char(20) not null default '' comment '部门'
  );
insert into emp(emp_name,salary,department) values('酷酷酷',5000,'财务部'),('看了看',5800,'财务部'),('多对多',6200,'财务部'),('哈哈哈',5700,'人事部'),('已解决',6700,'人事部'),('研究院',5200,'人事部'),('卡密码',7500,'销售部'),('书不不',7200,'销售部'),('阿发啊',7800,'销售部');

-- 将所有员工的名字合并成一行
select group_concat(emp_name) from emp;

-- 指定分隔符合并
select group_concat(emp_name separator ';') from emp;

-- 指定排序方式和分隔符
select department,group_concat(emp_name separator ';') from emp group by department;

select department,group_concat(emp_name order by salary desc separator ';') from emp group by department;

select abs(-10);
select abs(10);

-- 向上取整
select ceil(1.1); -- 2
select ceil(1.0); -- 1
-- 向下取整
select floor(1.1); -- 1
select floor(1.0);  -- 1

select greatest(1,2,3);  -- 3

select least(1,2,3); -- 1

select mod(5,2); -- 1

select pow(2,3);  -- 8

select rand();

select rand() * 100;
select floor(rand() * 100);

select round(1.533);
select round(1.533,2);

use mydb2;
select category_id,round(avg(price),2) from product group by category_id;

select truncate(3.1415,3);

-- 1.获取字符串字符个数
select char_length('hello');
select char_length('你好吗');

-- length取长度,返回的单位是字节,一个汉字占三个字节
select length('hello');   -- 5
select length('你好吗');  -- 3


-- 2.字符串合并,合并的时候没有分隔符
select concat('hello','world');

-- 3. 字符串合并指定分隔符进行字符串合并
select concat_ws('-','hello','world');

-- 4.返回字符串在列表中的位置,有出现多个返回第一次出现的位置
select field('aaa','aaa','bbb','ccc'); -- 1
select field('bbb','aaa','bbb','ccc'); -- 2 

-- 5.去除字符串左边空格
select ltrim('   aaaaaaa');
-- y右边
select rtrim('aaaaaa             ');
-- 去除两边空格
select trim('    qqqqq     ');

-- 6.字符串截取
select mid('helloworld',2,3);  -- 从第二个字符开始截取长度为3

-- 7、 获取字符串a在字符串中出现的位置,出现好多次返回第一次出现的时候
select position('abc' in 'helabcloabcworld');

-- 8、字符串替换
select replace('helloaaaworld','aaa','bbb');

-- 9、字符串翻转
select reverse('hello');

-- 10、返回字符串后几个字符
select right('hello',3);  -- 返回后三个字符

-- 11、字符串比较
select strcmp('hello','world');

-- 12、字符串截取
select substr('hello',2,3);

-- 13、将小写转大写
select ucase('hello');
select upper('helllo');

-- 14、将大写转小写
select lcase('AAAA');
select lower('AAA');

use test1;
select ename,substr(hiredate,1,4) from emp;


-- 日期函数
-- 1、 获取时间戳(毫秒值)
select unix_timestamp();

-- 2、将一个日期字符串转为毫秒值,表示这一时刻到1970的毫秒值
select unix_timestamp('2021-12-21 08:08:08');

-- 3、将时间戳毫秒值转为指定格式的日期
select from_unixtime(1640045288,'%Y-%m-%d %H:%i:%s'); 
-- '%Y-%m-%d %H:%i:%s'  年月日时分秒

-- 4、获取当前的年月日
select curdate();
select current_date();

-- 5、获取当前的时分秒
select current_time();
select curtime();

-- 6、获取年月日和时分秒
select current_timestamp();

-- 7、从日期字符串中获取年月日,格式要符合标准
select date('2022-12-12 12:34:56');

-- 8、获取日期之间的差值(天级)
select datediff('2021-12-22','2021-2-22');
select datediff(current_date(),'2008-08-08');

-- 9、获取时间的差值(秒级)
select timediff('12:12:34','10:18:56');

-- 10、日期格式化
select date_format('2021-1-1 1:1:1','%Y-%m-%d %H:%i:%s');

-- 11、将字符串转为日期
select str_to_date('2021-1-1 1:1:1','%Y-%m-%d %H:%i:%s');

-- 12、将日期进行减法
select date_sub('2021-10-01',interval 2 day);

-- 13、将日期进行加法,可以加日,天,周各种各样的
select date_add('2021-10-01',interval 2 week);

-- 14、从日期中获取小时
select extract(hour from '2021-01-02 11:14:12');
select extract(year from '2021-01-02 11:14:12');
select extract(month from '2021-01-02 11:14:12');

-- 15、获取给定日期的最后一天
select last_day('2021-08-13');

-- 16、获取指定年份和天数的日期
select makedate('2021',53);

-- 17、根据日期获取年月日,时分秒
select year('2021-12-13 11:12:13');
select month('2021-12-13 11:12:13');
select quarter('2021-12-13 11:12:13');  -- 季度

-- 18 、根据日期获取信息
select monthname('2021-12-13 11:12:13'); -- 获取月份的英文
select dayname('2021-12-13 11:12:13');  -- 获取周几英文
select dayofmonth('2021-12-13 11:12:13'); -- 当月的第几天
select dayofweek('2021-12-13 11:12:13');  -- 周几,1是星期日,2是星期1
select dayofyear('2021-12-13 11:12:13');  -- 一年的第几天

select week('2021-12-13 11:12:13');
select week('2021-12-31 11:12:13');
select week('2021-1-1 11:12:13');
select yearweek('2021-3-01');
select now();

-- 控制流函数
-- if   !!!
select if(1>0,'正确','错误');
use mydb3;
select *,if(score >= 85,'优秀','及格') flag from score;

-- ifnull   !
select ifnull(11,0);
select ifnull(NULL,0);
use test1;
select *,ifnull(comm,0) from emp;

-- isnull
select isnull(5);
select isnull(NULL);
select isnull(null);

-- nullif
select nullif(12,12);  -- null
select nullif(12,22);  -- 12

-- case when语句
select 
  case 51
    when 1 then '你好'
    when 2 then 'hello'
    when 5 then 'yes'
    else
      'no'
  end as info;


select 
  case
    when 1<0 then '你好'
    when 2>1 then 'hello'
    when 5>1 then 'yes'
    else
      'no'
  end as info;

use mydb4;
-- 创建订单表
create table orders(
  oid int primary key, -- 订单id
  price double,  -- 订单价格
  payType INT  -- 支付类型(1:微信 2:支付宝 3:银行卡 4:其他)
  );
insert into orders values(1,1200,1);
insert into orders values(2,1000,2);
insert into orders values(3,200,3);
insert into orders values(4,3000,1);
insert into orders values(5,1500,2);

-- 方式1
select
  *,
  case payType
    when 1 then '微信'
    when 2 then '支付宝'
    when 3 then '银行卡'
    ELSE
      '其他支付方式'
  end as payTypeStr
from orders;

-- 方式2
select
  *,
  case
    when payType=1 then '微信'
    when payType=2 then '支付宝'
    when payType=3 then '银行卡'
    ELSE
      '其他支付方式'
  end as payTypeStr
from orders;

-- 窗口函数
use mydb4;
create table employee(
  dname varchar(20),  -- 部门名
  eid varchar(20),
  ename varchar(20),
  hiredate date,  -- 入职日期
  salary double -- 薪资
  );

insert into employee values('研发部','1001','刘备','2021-11-01',3000);
insert into employee values('研发部','1002','关羽','2021-11-02',5000);
insert into employee values('研发部','1003','张飞','2021-11-03',7000);
insert into employee values('研发部','1004','赵云','2021-11-04',7000);
insert into employee values('研发部','1005','马超','2021-11-05',4000);
insert into employee values('研发部','1006','黄忠','2021-11-06',4000);

insert into employee values('销售部','1007','曹操','2021-11-01',2000);
insert into employee values('销售部','1008','许褚','2021-11-02',3000);
insert into employee values('销售部','1009','典韦','2021-11-03',5000);
insert into employee values('销售部','1010','张辽','2021-11-04',6000);
insert into employee values('销售部','1011','徐晃','2021-11-05',9000);
insert into employee values('销售部','1012','曹洪','2021-11-06',6000);


-- 对每个部门的员工按照薪资排序,并给出排名
select 
  dname,
  ename,
  salary,
  row_number() over(partition by dname order by salary desc) as rn1,
  rank() over(partition by dname order by salary desc) as rn2,
  dense_rank() over(partition by dname order by salary desc) as rn3
  from employee;


-- 求出每个部门薪资排在前三名的员工   - 分组求TOPN
select * from (
select 
  dname,
  ename,
  salary,
  dense_rank() over(partition by dname order by salary desc) as rn
  from employee
)t
where t.rn <= 3;

-- 对所有员工进行全局排序(不分组)
select 
  dname,
  ename,
  salary,
  dense_rank() over(order by salary desc) as rn
  from employee;

-- 开窗聚合函数
select 
  dname,ename,salary,hiredate,
  sum(salary) over(partition by dname order by hiredate) as c1
  from employee;
-- 就是从第一行开始,加到当前行,而且是按照分组的

select 
  dname,ename,salary,hiredate,
  sum(salary) over(partition by dname) as c1
  from employee;
-- 如果没有order by 排序语句,默认把分组内的所有数据进行sum操作

select 
  dname,ename,salary,hiredate,
  sum(salary) over(partition by dname order by hiredate rows between unbounded preceding and current row) as c1
  from employee;
-- 就是从第一行开始,加到当前行,而且是按照分组的

select 
  dname,ename,salary,hiredate,
  sum(salary) over(partition by dname order by hiredate rows between 3 preceding and current row) as c1
  from employee;
-- 就是从向上三行,加到当前行,而且是按照分组的

select 
  dname,ename,salary,hiredate,
  sum(salary) over(partition by dname order by hiredate rows between 3 preceding and 1 following) as c1
  from employee;
-- 就是从向上三行,加到当前行的向后一行,而且是按照分组的

select 
  dname,ename,salary,hiredate,
  sum(salary) over(partition by dname order by hiredate rows between current row and unbounded following) as c1
  from employee;
-- 从当前行加到最后一行

select 
  dname,ename,salary,hiredate,
  avg(salary) over(partition by dname order by hiredate rows between current row and unbounded following) as c1
  from employee;

select 
  dname,ename,salary,hiredate,
  max(salary) over(partition by dname order by hiredate rows between current row and unbounded following) as c1
  from employee;
  
  select 
  dname,ename,salary,hiredate,
  min(salary) over(partition by dname order by hiredate rows between current row and unbounded following) as c1
  from employee;

-- 分布函数
use mydb4;
select 
  dname,ename,salary,
  cume_dist() over(order by salary) as rn1,
  cume_dist() over(partition by dname order by salary) as rn2
  from employee;
-- 查询小于等于当前薪资的比例


use mydb4;
select 
  dname,ename,salary,
  rank() over(partition by dname order by salary) as rn1,
  percent_rank() over(partition by dname order by salary) as rn2
  from employee;
-- (rank - 1)/(总行数 -1)

use mydb4;
select 
  dname,ename,salary,hiredate,
  lag(hiredate,1,'2000-01-01') over(partition by dname order by hiredate) as time1,
  lag(hiredate,2) over(partition by dname order by hiredate) as time2
  from employee;
-- 就是返回前n行,有就输出,没有就输出默认值,没有默认值就输出null


use mydb4;
select 
  dname,ename,salary,hiredate,
  lead(hiredate,1,'2000-01-01') over(partition by dname order by hiredate) as time1,
  lead(hiredate,2) over(partition by dname order by hiredate) as time2
  from employee;

select 
  dname,ename,hiredate,salary,
  first_value(salary) over(partition by dname order by hiredate) as first,
  last_value(salary) over(partition by dname order by hiredate) as last
  from employee;
  

select 
  dname,ename,hiredate,salary,
  nth_value(salary,2) over(partition by dname order by hiredate) as secend_salary,
  nth_value(salary,3) over(partition by dname order by hiredate) as third_salary
  from employee;


select 
  dname,ename,hiredate,salary,
  ntile(4) over(partition by dname order by hiredate) as nt
  from employee;

-- 取出每一个部门的第一组员工
select * from (
  select 
  dname,ename,hiredate,salary,
  ntile(4) over(partition by dname order by hiredate) as nt
  from employee
  )t
where t.nt = 1;

 

 

 

 

 

 

 

 

 

 

 

相关文章:

MySQL的函数

函数其实就是方法&#xff0c;就是别人封装好的东西 熟能生巧&#xff0c;加油&#xff01;&#xff01;&#xff01;完整代码在最后。 一、聚合函数 - group_concat() 就是对数据进行分组然后合并 二、数学函数 函数很多&#xff0c;大家至少看一遍&#xff0c;有一个大概印…...

苍穹外卖(订单状态定时处理、来单提醒和客户催单)

订单状态定时处理、来单提醒和客户催单 Spring Task cron表达式 入门案例 ①导入maven坐标 spring-context&#xff08;已存在&#xff09; ②启动类添加注解 EnableScheduling 开启任务调度 ③自定义定时任务类 订单状态定时处理 需求分析 代码开发 自定义定…...

SpringBoot应急物资供应管理系统开发设计

概述 基于SpringBoot的应急物资供应管理系统功能完善&#xff0c;采用了现代化的开发框架&#xff0c;非常适合学习或直接应用于实际项目。 主要内容 5.1 管理员功能模块 管理员可通过登录界面进入系统&#xff0c;使用用户名、密码和角色信息进行身份验证。登录后&#xf…...

spring cloud gateway 断言(Predicates)与过滤器(filters)

断言 在 Spring Cloud Gateway 中&#xff0c;内置的断言&#xff08;Predicates&#xff09;用于对请求进行条件匹配。Spring Cloud Gateway 提供了多种内置断言&#xff0c;可以根据请求的路径、头部、方法等条件来决定是否将请求路由到特定的处理器。 内置断言 基于路径 …...

MySQL-数据查询(多表连接JOIN)-04-(11-2)

学生表 学号 姓名 班级 课程编号 课程名称 是否结课 create table xs( xs_id int auto_increment primary key, xs_xm varchar(30), xs_bj varchar(30), xs_kcbh varchar(30), xs_kcmc varchar(30), xs_sfjk varchar(30) );insert xs values(1,张三,24大数据技术,1001,MYS…...

解决leetcode第3537题填充特殊网格

3537.填充特殊网格 难度&#xff1a;中等 问题描述&#xff1a; 给你一个非负整数N&#xff0c;表示一个x的网格。你需要用从0到-1的整数填充网格&#xff0c;使其成为一个特殊网格。一个网格当且仅当满足以下所有条件时&#xff0c;才能称之为特殊网格&#xff1a; 右上角…...

C++_MD5算法

文章目录 概要代码应用 概要 MD5算法在数据加密、一致性哈希、安全性验证等技术中有广泛的应用。 MD5算法的原理可简要的叙述为&#xff1a;MD5码以512位分组来处理输入的信息&#xff0c;且每一分组又被划分为16个32位子分组&#xff0c;经过了一系列的处理后&#xff0c;算法…...

深入理解C++ Lambda表达式:从基础到高级应用

在现代C编程中&#xff0c;Lambda表达式已经成为不可或缺的特性之一。自C11引入以来&#xff0c;Lambda极大地改变了我们编写函数对象和回调的方式&#xff0c;使代码更加简洁、表达力更强。本文将全面探讨C Lambda表达式的各个方面&#xff0c;从基础语法到高级应用场景&#…...

蓝桥杯 20. 倍数问题

倍数问题 原题目链接 题目描述 众所周知&#xff0c;小葱同学擅长计算&#xff0c;尤其擅长判断一个数是否是另一个数的倍数。但当面对多个数时&#xff0c;他就比较苦恼了。 现在小葱给了你 n 个数&#xff0c;希望你从中找出三个数&#xff0c;使得这三个数的 和是 K 的倍…...

2025最新出版 Microsoft Project由入门到精通(二)

目录 项目五部曲 第一步&#xff1a;先设置项目的信息和日历 项目的开始结束日期 项目的日历 默认日历改为全年无休&#xff08;除法定节假日&#xff09; 六天工作制/七天工作制设置方法 七天工作制的设置方法 全年无休工作制的设置方法 大小周交替日历设置方法&…...

从人体姿态到机械臂轨迹:基于深度学习的Kinova远程操控系统架构解析

在工业自动化、医疗辅助、灾难救援与太空探索等前沿领域&#xff0c;Kinova轻型机械臂凭借7自由度关节设计和出色负载能力脱颖而出。它能精准完成物体抓取、复杂装配和精细操作等任务。然而&#xff0c;实现人类操作者对Kinova机械臂的直观高效远程控制一直是技术难题。传统远程…...

【ABAP】定时任务DEBUG方法

事物码SM37 执行后&#xff0c;选中作业名&#xff0c;在输入框输入“JDBG”&#xff0c;进入调试模式&#xff08;提前在需要的调试的程序设置断点&#xff09;...

DDPM(Denoising Diffusion Probabilistic Models,去噪扩散概率模型)

简介 DDPM即去噪扩散概率模型&#xff08;Denoising Diffusion Probabilistic Models&#xff09;&#xff0c;是一种生成式模型&#xff0c;在图像生成、视频生成等领域有广泛应用。以下是其详细介绍&#xff1a; 原理 DDPM的核心思想是通过在数据上逐步添加噪声来破坏数据…...

C26-冒泡排序法

一 算法步骤 外层循环:控制遍历轮数(共n-1轮,n为数组长度)内层循环:每轮比较相邻的元素,若顺序错误则交换,将当前一轮最大(最小)的元素移至末尾 二 实例 代码 #include <stdio.h> int main() {//数组及相关数据定义int arr[4]{12,4,78,23};int i;int j;int temp;int …...

CentOS 7.9 安装详解:手动分区完全指南

CentOS 7.9 安装详解&#xff1a;手动分区完全指南 为什么需要手动分区&#xff1f;CentOS 7.9 基本分区说明1. /boot/efi 分区2. /boot 分区3. swap 交换分区4. / (根) 分区 可选分区&#xff08;进阶设置&#xff09;5. /home 分区6. /var 分区7. /tmp 分区 分区方案建议标准…...

大模型系列(五)--- GPT3: Language Models are Few-Shot Learners

论文链接&#xff1a; Language Models are Few-Shot Learners 点评&#xff1a; GPT3把参数规模扩大到1750亿&#xff0c;且在少样本场景下性能优异。对于所有任务&#xff0c;GPT-3均未进行任何梯度更新或微调&#xff0c;仅通过纯文本交互形式接收任务描述和少量示例。然而&…...

BK精密电源操作软件 9130BA系列和手侧user manual

BK精密电源操作软件 9130BA系列和手侧user manual...

MATLAB的cvpartition函数用法

1. 函数作用 cvpartition 将数据集划分为训练集和测试集&#xff0c;支持多种交叉验证方法&#xff0c;包括&#xff1a; Hold-Out验证&#xff1a;单次划分&#xff08;如70%训练&#xff0c;30%测试&#xff09;K折交叉验证&#xff1a;数据分为K个子集&#xff0c;依次用其…...

含铜废水回收的好处体现

一、环境保护&#xff1a;减少污染&#xff0c;守护生态安全 降低重金属污染 含铜废水若直接排放&#xff0c;铜离子会通过食物链富集&#xff0c;对水生生物和人体造成毒性影响&#xff08;如肝肾损伤&#xff09;。回收处理可去除废水中90%以上的铜离子&#xff0c;显著降低…...

C++20新特新——02特性的补充

虽然上节我们介绍了不少关于协程的特点&#xff0c;但是大家可能对协程还是不是很了解&#xff0c;没关系&#xff0c;这里我们再对其进行补充&#xff0c;详细讲解一下&#xff1b; 一、协程函数与普通函数的区别 这里我们再回归到问题&#xff1a;普通函数和协程在这方面的…...

【c++】 我的世界

太久没更新小游戏了 给个赞和收藏吧&#xff0c;求求了 要游戏的请私聊我 #include <iostream> #include <vector>// 定义世界大小 const int WORLD_WIDTH 20; const int WORLD_HEIGHT 10;// 定义方块类型 enum BlockType {AIR,GRASS,DIRT,STONE };// 定义世界…...

Redis从入门到实战 - 高级篇(上)

一、分布式缓存 1. 单点Redis的问题 数据丢失问题&#xff1a;Redis是内存存储&#xff0c;服务重启可能会丢失数据 -> 实现Redis数据持久化 并发能力问题&#xff1a;单节点Redis并发能力虽然不错&#xff0c;但也无法满足如618这样的高并发场景 -> 搭建主从集群&…...

常见的卷积神经网络列举

经典的卷积神经网络&#xff08;CNN&#xff09;在深度学习发展史上具有重要地位&#xff0c;以下是一些里程碑式的模型及其核心贡献&#xff1a; 1. LeNet-5&#xff08;1998&#xff09; 提出者&#xff1a;Yann LeCun特点&#xff1a; 首个成功应用于手写数字识别&#xff…...

Linux如何安装AppImage程序

Linux如何安装AppImage程序 文章目录 Linux如何安装AppImage程序 在 Linux 中&#xff0c;.AppImage 是一种便携式的应用程序格式&#xff0c;无需安装即可运行。 1.赋予该文件可执行权限 可以使用下列命令&#xff0c;赋予可执行权限 # 举个例子 chmod x /path/to/MyApp.App…...

人工智能如何进行课堂管理?

人工智能如何协助老师课堂管理&#xff1f; 第一步&#xff1a;在腾讯元宝对话框中输入&#xff1a;如何协助老师进行课堂管理&#xff0c;通过提问&#xff0c;我们了解了老师高效备课可以从哪些方面入手&#xff0c;提高效率。 第二步&#xff1a;编辑问题进行提问&#xf…...

如何理解参照权

在管理学和组织行为学中&#xff0c;“参照权力”&#xff08;Referent Power&#xff09;是一种非常重要的权力来源&#xff0c;它属于非强制性权力的一种&#xff0c;主要基于个人特质和人际关系。以下是对参照权力的详细解释&#xff1a; 一、定义 参照权力是指一个人由于…...

从一次被抄袭经历谈起:iOS App 安全保护实战

如何保护 iOS App 的最后一道防线&#xff1a;那些你可能忽略的混淆技巧 如果你曾认真反编译过别人的 .ipa 文件&#xff0c;很可能会有这种感受&#xff1a;“哇&#xff0c;这代码也太干净了吧。” 类名像 UserManager&#xff0c;方法名是 getUserToken&#xff0c;甚至资源…...

从交互说明文档,到页面流程图设计全过程

依据交互说明文档绘制页面流程图&#xff0c;能够将抽象的交互逻辑转化为可视化、结构化的表达&#xff0c;为开发、测试及团队协作提供清晰指引。接下来&#xff0c;我们以外卖 App 订单确认页为例&#xff0c;详细拆解从交互说明文档到完整页面流程图的设计全过程。 一、交互…...

fedora系统详解详细版本

Fedora 系统详解&#xff1a;从起源到实践的深度解析 一、Fedora 概述&#xff1a;开源社区的技术先锋 Fedora 是由 Fedora 项目社区 开发、Red Hat 公司赞助 的 Linux 发行版&#xff0c;以 自由开源、技术前沿 和 稳定性平衡 著称。它是 Red Hat Enterprise Linux&#xff…...

2025-05-07-FFmpeg视频裁剪(尺寸调整,画面比例不变)

原比例如图 原比例如图裁剪后的比例 代码&#xff1a; 方法一&#xff1a;极速 ffmpeg -i input.mp4 -vf "crop1080:750:0:345" -c:v libx264 -preset ultrafast -c:a copy output.mp4关键参数说明&#xff1a; vf “crop宽:高❌y”&#xff1a;定义裁剪区域。 …...

RISC-V JTAG:开启MCU 芯片调试之旅

在当今电子科技飞速发展的时代&#xff0c; MCU 芯片成为众多企业追求技术突破与创新的关键领域。而芯片的调试过程则是确保其性能与可靠性的重要环节。本文以国科安芯自研 AS32A601为例&#xff0c;旨在详细记录基于 RISC-V 架构的 MCU 芯片JTAG 调试过程及操作&#xff0c;为…...

51单片机快速成长路径

作为在嵌入式领域深耕18年的工程师&#xff0c;分享一条经过工业验证的51单片机快速成长路径&#xff0c;全程干货无注水&#xff1a; 一、突破认知误区&#xff08;新手必看&#xff09; 不要纠结于「汇编还是C」&#xff1a;现代开发90%场景用C&#xff0c;掌握指针和内存管…...

idea左侧项目资源管理器不见了处理

使用idea误触导致&#xff0c;侧边栏和功能栏没了&#xff0c;如何打开&#xff1f; 1.打开文件&#xff08;File&#xff09; 2. 打开设置&#xff08;Settings&#xff09; 3.选择Appearance&Behavior--->Appearance划到最下面&#xff0c;开启显示工具栏和左侧并排布…...

给小白的AI Agent 基本技术点分析与讲解

引言&#xff1a;重塑交互与自动化边界的 AI Agent 在人工智能技术飞速发展的浪潮中&#xff0c;AI Agent&#xff08;智能体&#xff09;概念的兴起标志着自动化和人机交互正迈向一个全新的阶段。传统的软件系统通常被设计来执行精确预设的指令序列&#xff0c;它们强大且高效…...

[特殊字符] 深入解析:Go 与 Rust 中的数组与动态集合结构

在 Go 和 Rust 这两种现代语言中&#xff0c;数组和动态集合&#xff08;如切片或 Vec&#xff09;是处理数据的基础工具。虽然它们都提供了高效的内存访问能力&#xff0c;但设计理念却截然不同&#xff1a; Go 更注重灵活性和性能&#xff0c;允许开发者直接操作底层指针和容…...

C25-数组应用及练习

第一题 题目: 代码 #include <stdio.h> int main() {//数组及相关数据定义int arr[10];int i;//基于循环的数组数据输入for(i0;i<10;i){arr[i]i;}//基于循环的数组数据输出for(i9;i>0;i--){printf("%d ",arr[i]);}return 0; }结果 第二题 题目 代码 …...

Soft Mask(软遮罩)技术

一、概述 Soft Mask是一种技术或工具&#xff0c;主要用于实现平滑的边缘遮罩效果。它在不同的应用领域有不同的实现和定义 1.在Unity UI设计中 SoftMask是一款专为Unity设计的高级遮罩工具&#xff0c;它突破了传统Mask的限制&#xff0c;提供了更为灵活和细腻的UI遮罩解决方案…...

683SJBH基于J2EE的广州旅游管理系统

第1章  绪论 课题背景 自互联网internet成为一种革命性的大众媒体以来&#xff0c;其发展速度之快令人惊叹。而作为世界最大朝阳产业的旅游&#xff0c;当它与电子商务这一新兴模式相结合时&#xff0c;其潜藏的商业价值表露无遗。根据CNN&#xff08;美国有线电视新闻网&…...

关于STM32 SPI收发数据异常

问题描述&#xff1a; STM32主板做SPI从机&#xff0c;另一块linux主板做主机&#xff0c;通信的时候发现从机可以正确接收到主机数据&#xff0c;但是主机接收从机数据时一直不对&#xff0c;是随机值。 问题原因&#xff1a; 刚发现问题的时候&#xff0c;用逻辑分析仪抓包…...

雅努斯问题(Janus Problem)及解决方案

一、雅努斯简介 雅努斯&#xff08;Janus&#xff09;是罗马神话中的门神&#xff0c;也是罗马人的保护神。他具有前后两个面孔或四方四个面孔&#xff0c;象征开始。雅努斯被认为是起源神&#xff0c;执掌着开始和入门&#xff0c;也执掌着出口和结束&#xff0c;因此他又被成…...

ACE-Step:扩散自编码文生音乐基座模型快速了解

ACE-Step 模型速读 一、模型概述 ACE-Step 是一款由 ACE Studio 和 StepFun 开发的新型开源音乐生成基础模型。它通过整合基于扩散的生成方式、Sana 的深度压缩自编码器&#xff08;DCAE&#xff09;以及轻量级线性变换器&#xff0c;在音乐生成速度、音乐连贯性和可控性等方…...

【论文阅读】在调制分类中针对对抗性攻击的混合训练时和运行时防御

A Hybrid Training-Time and Run-Time Defense Against Adversarial Attacks in Modulation Classification 摘要 在深度学习在包括计算机视觉和自然语言处理在内的许多应用中的卓越性能的推动下,最近的几项研究侧重于应用深度神经网络来设计未来几代无线网络。然而,最近的…...

HDMI布局布线

1 HDMI简介 高清多媒体接口(High Definition Multimedia Interface),简称:HDMI,是一种全数字化视频和声音发送接口,可以发送未压缩的音频及视频信号。随着技术的不断提升,HDMI的传输速率也不断的提升,HDMI2.0最大传输速率可达14.4Gbit/s,HDMI2.1最大传输数据速率可达42.6Gbit/s…...

国家信息中心:基于区块链和区块链服务网络(BSN)的可信数据空间建设指引

推荐语&#xff1a; 可信数据空间包含场景应用、生态主体、数据资源、规则机制、技术系统五大部分。《基于区块链和区块链服务网络&#xff08;BSN&#xff09;的可信数据空间建设指引》聚焦可信数据空间的单个数据空间中的场景应用、数据资源、规则机制及技术系统四大核心要点…...

分区器(1)

1. 需求分析 在分布式计算中&#xff0c;Map任务通常会产生大量的中间结果&#xff0c;这些结果需要被分配到不同的Reducer任务中进行进一步处理。分区器的作用是根据一定的规则将中间结果分配到不同的分区&#xff08;Partition&#xff09;&#xff0c;从而确保数据能够被正…...

设计一个分布式系统:要求全局消息顺序,如何使用Kafka实现?

一、高吞吐低延迟 Kafka 集群设计要点 1. 分区策略优化 // 计算合理分区数公式&#xff08;动态调整&#xff09; int numPartitions max(Tp, Tc) / min(Tp, Tc) // Tp生产者吞吐量 Tc消费者吞吐量建议初始按业务键&#xff08;如订单ID&#xff09;哈希分区单分区吞吐建议…...

大模型工具与案例:云服务器部署dify(1)

如果您可以装wsl&#xff0c;可以在本机部署参考windows安装dify-江鸟阁长 因为笔者的windows电脑不可以安装wsl&#xff0c;所以本文会带大家在linux云服务器上部署。目前很多厂家都推出了一键部署&#xff0c;但是价格也有差 阿里云 通用型服务器 70rmb/月 华为云比较便宜&a…...

屏蔽力 | 在复杂世界中从内耗到成长的转变之道

注&#xff1a;本文为“屏蔽力”相关文章合辑。 略作重排&#xff0c;未全整理。 世上的事再复杂&#xff0c;不外乎这三种 原创 小鹿 读者 2022 年 12 月 02 日 18 : 27 甘肃 文 / 小鹿 在这世上&#xff0c;每天都有大事小事、琐事烦事。我们总为世事奔波忙碌&#xff0c;…...

信息系统项目管理师-软考高级(软考高项)​​​​​​​​​​​2025最新(十一)

个人笔记整理---仅供参考 第十一章项目成本管理 11.1管理基础 11.2项目成本管理过程 11.3规划成本管理 11.4估算成本 11.5制定预算 11.6控制成本...

大数据技术全景解析:Spark、Hadoop、Hive与SQL的协作与实战

引言&#xff1a;当数据成为新时代的“石油” 在数字经济时代&#xff0c;数据量以每年50%的速度爆发式增长。如何高效存储、处理和分析PB级数据&#xff0c;成为企业竞争力的核心命题。本文将通过通俗类比场景化拆解&#xff0c;带你深入理解四大关键技术&#xff1a;Hadoop、…...