MySQL篇(数值函数/)(持续更新迭代)

news2024/9/21 23:11:38

目录

常见函数一:数值函数

一、常见数值函数

1. 基本函数

2. 角度与弧度互换函数

3. 三角函数

4. 指数与对数

5. 进制间的转换

常见函数二:日期函数

一、常见日期函数

二、SQL演示

1. curdate:当前日期

2. curtime:当前时间

3. now:当前日期和时间

4. YEAR , MONTH , DAY:当前年、月、日

5. date_add:增加指定的时间间隔

6. datediff:获取两个日期相差的天数

三、案例

常见函数三:聚合函数

一、五大常用聚合函数

二、GROUP BY

三、HAVING

四、SQL底层执行原理

1. SELECT语句的完整结构

2. SQL语句的执行过程

常见函数四:流程函数

一、作用

二、常见

三、SQL演示

1. if

2. ifnull

3. case when then else end

四、案例


常见函数一:数值函数

一、常见数值函数

1. 基本函数

函数

功能

ABS(x)

返回x的绝对值

SIGN(X)

返回X的符号。正数返回1,负数返回-1,0返回0

PI()

返回圆周率的值

CEIL(x),CEILING(x)

返回大于或等于某个值的最小整数

FLOOR(x)

返回小于或等于某个值的最大整数

LEAST(e1,e2,e3…)

返回列表中的最小值

GREATEST(e1,e2,e3…)

返回列表中的最大值

MOD(x,y)

返回X除以Y后的余数

RAND()

返回0~1的随机值

RAND(x)

返回0~1的随机值,其中x的值用作种子值,相同的X值会产生相同的随机数

ROUND(x)

返回一个对x的值进行四舍五入后,最接近于X的整数

ROUND(x,y)

返回一个对x的值进行四舍五入后最接近X的值,并保留到小数点后面Y位

TRUNCATE(x,y)

返回数字x截断为y位小数的结果

SQRT(x)

返回x的平方根。当X的值为负数时,返回NULL

举例:


SELECT ABS(-123),ABS(32),SIGN(-23),SIGN(43),PI(),CEIL(32.32),CEILING(-43.23),FLOOR(32.32),
FLOOR(-43.23),MOD(12,5)
FROM DUAL;

取随机数

SELECT RAND(),RAND(),RAND(10),RAND(10),RAND(-1),RAND(-1)
FROM DUAL;

四舍五入,截断操作

SELECT ROUND(12.33),ROUND(12.343,2),ROUND(12.324,-1),TRUNCATE(12.66,1),TRUNCATE(12.66,-1)
FROM DUAL;

单行函数可以嵌套

SELECT TRUNCATE(ROUND(123.456,2),0)
FROM DUAL;

2. 角度与弧度互换函数

函数

用法

RADIANS(x)

将角度转化为弧度,其中,参数x为角度值

DEGREES(x)

将弧度转化为角度,其中,参数x为弧度值

SELECT RADIANS(30),RADIANS(60),RADIANS(90),DEGREES(2*PI()),DEGREES(RADIANS(90))
FROM DUAL;

3. 三角函数

函数

用法

SIN(x)

返回x的正弦值,其中,参数x为弧度值

ASIN(x)

返回x的反正弦值,即获取正弦为x的值。如果x的值不在-1到1之间,则返回NULL

COS(x)

返回x的余弦值,其中,参数x为弧度值

ACOS(x)

返回x的反余弦值,即获取余弦为x的值。如果x的值不在-1到1之间,则返回NULL

TAN(x)

返回x的正切值,其中,参数x为弧度值

ATAN(x)

返回x的反正切值,即返回正切值为x的值

ATAN2(m,n)

返回两个参数的反正切值

COT(x)

返回x的余切值,其中,X为弧度值

举例:

  • ATAN2(M,N)函数返回两个参数的反正切值。
  • 与ATAN(X)函数相比,ATAN2(M,N)需要两个参数,例如有两个点point(x1,y1)和point(x2,y2),使用ATAN(X)函数计算反正切值为ATAN((y2-y1)/(x2-x1)),使用ATAN2(M,N)计算反正切值则为ATAN2(y2-y1,x2-x1)。由使用方式可以看出,当x2-x1等于0时,ATAN(X)函数会报错,而ATAN2(M,N)函数则仍然可以计算。
  • ATAN2(M,N)函数的使用示例如下:
SELECT SIN(RADIANS(30)),DEGREES(ASIN(1)),TAN(RADIANS(45)),DEGREES(ATAN(1)),DEGREES(ATAN2(1,1))
FROM DUAL;

4. 指数与对数

函数

用法

POW(x,y),POWER(X,Y)

返回x的y次方

EXP(X)

返回e的X次方,其中e是一个常数,2.718281828459045

LN(X),LOG(X)

返回以e为底的X的对数,当X <= 0 时,返回的结果为NULL

LOG10(X)

返回以10为底的X的对数,当X <= 0 时,返回的结果为NULL

LOG2(X)

返回以2为底的X的对数,当X <= 0 时,返回NULL

mysql> SELECT POW(2,5),POWER(2,4),EXP(2),LN(10),LOG10(10),LOG2(4)
    -> FROM DUAL;
+----------+------------+------------------+-------------------+-----------+---------+
| POW(2,5) | POWER(2,4) | EXP(2)           | LN(10)            | LOG10(10) | LOG2(4) |
+----------+------------+------------------+-------------------+-----------+---------+
|       32 |         16 | 7.38905609893065 | 2.302585092994046 |         1 |       2 |
+----------+------------+------------------+-------------------+-----------+---------+
1 row in set (0.00 sec)

5. 进制间的转换

函数

用法

BIN(x)

返回x的二进制编码

HEX(x)

返回x的十六进制编码

OCT(x)

返回x的八进制编码

CONV(x,f1,f2)

返回f1进制数变成f2进制数

mysql> SELECT BIN(10),HEX(10),OCT(10),CONV(10,2,8)
    -> FROM DUAL;
+---------+---------+---------+--------------+
| BIN(10) | HEX(10) | OCT(10) | CONV(10,2,8) |
+---------+---------+---------+--------------+
| 1010    | A       | 12      | 2            |
+---------+---------+---------+--------------+
1 row in set (0.00 sec)

常见函数二:日期函数

一、常见日期函数

函数

功能

CURDATE()

返回当前日期

CURTIME()

返回当前时间

NOW()

返回当前日期和时间

YEAR(date)

获取指定date的年份

MONTH(date)

获取指定date的月份

DAY(date)

获取指定date的日期

DATE_ADD(date, INTERVAL expr type)

返回一个日期/时间值加上一个时间间隔expr后的 时间值

DATEDIFF(date1,date2)

返回起始时间date1 和 结束时间date2之间的天 数

二、SQL演示

1. curdate:当前日期

select curdate();

2. curtime:当前时间

select curtime();

3. now:当前日期和时间

select now();

4. YEAR , MONTH , DAY:当前年、月、日

select YEAR(now());
select MONTH(now());
select DAY(now());

5. date_add:增加指定的时间间隔

select date_add(now(), INTERVAL 70 YEAR );

6. datediff:获取两个日期相差的天数

select datediff('2021-10-01', '2021-12-01');

三、案例

查询所有员工的入职天数,并根据入职天数倒序排序。

思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。

select name, datediff(curdate(), entrydate) as 'entrydays' from emp order by entrydays desc;

常见函数三:聚合函数

一、五大常用聚合函数

  • SUM():求总和,只适用于数值类型字段,如果是字符串类型不会报错会返回0,会自动过滤空值
  • AVG():求平均值,只适用于数值类型字段,字符串类型不会报错会返回0,会自动过滤空值
  • MAX():求最大值,适用于数值类型、字符串类型和日期时间类型字段
  • MIN():求最小值,适用于数值类型、字符串类型和日期时间类型字段
  • COUNT():用于计算查询结果集中的数据共有多少条
    • COUNT(*)
    • COUNT(常数):例如COUNT(0),COUNT(1)
    • COUNT(指定字段):此方式只能用于那种不存在NULL的字段,如果存在空值,统计总数时不计入
    • 如果是MyISAM引擎,这三种方式的效率相同,因为此引擎内部有一个计数器在维护着行数。如果是InnoDB引擎,那么第一和第二种效率高于第三种,后面会细说

注意:MySQL中聚合函数是不能嵌套使用的

我们创建一个表t_decade_book来进行验证

DROP TABLE IF EXISTS t_decade_book;
CREATE TABLE t_decade_book  (
  book_id int(10) NOT NULL AUTO_INCREMENT COMMENT '书id',
  book_name varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '书名',
  book_count int(10) DEFAULT NULL COMMENT '数量',
  detail varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '描述',
  PRIMARY KEY (book_id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

INSERT INTO t_decade_book VALUES (1, 'Java从入门到秃头', 20, 'Java学习');
INSERT INTO t_decade_book VALUES (2, '数据库从删库到跑路', 20, '数据库学习');
INSERT INTO t_decade_book VALUES (3, '测试从入职到干架', 20, '测试脚本学习');
INSERT INTO t_decade_book VALUES (4, '划水越划越爽', NULL, '划水技巧学习');

得到的表数据如下

SELECT AVG(book_count),SUM(book_count),AVG(book_count)*4 FROM t_decade_book;

SELECT MAX(book_count),MIN(book_count),MAX(book_name),MIN(book_name) FROM t_decade_book;

SELECT COUNT(book_id),COUNT(1),COUNT(*),COUNT(book_count) FROM t_decade_book;

SELECT AVG(book_count),SUM(book_count),SUM(book_count)/4,SUM(book_count)/COUNT(book_count) FROM t_decade_book;

执行结果如下

二、GROUP BY

首先我们向之前创建的t_decade_blog表中插入一条数据

INSERT INTO t_decade_blog(id,name,author,create_time,views)VALUES('d3258b79-d543-49bb-9850-16cac7566666','JVM系列','十年',NOW(),8000);

表格中结果如下

然后我们测试一下GROUP BY操作

# 根据单列进行分组
SELECT author,AVG(views) FROM t_decade_blog GROUP BY author;

# 根据多列进行分组,如果分组的条件相同,顺序不同不会影响最终结果
# 我们可以理解为根据这些条件进行组合,只有符合这些条件的才会分到一个组里
SELECT id,author,AVG(views) FROM t_decade_blog GROUP BY id,author;
SELECT author,id,AVG(views) FROM t_decade_blog GROUP BY author,id;

# 当使用GROUP BY关键字时,SELECT中涉及到的非聚合函数包含的字段,必须出现在GROUP BY后面
# 但是GROUP BY关键字后面的字段不一定要出现在SELECT之后
# 另外,在不使用GROUP BY时,聚合函数不能和普通字段放在一起进行查询
SELECT author,id,AVG(views) FROM t_decade_blog GROUP BY author;

# with rollup作用在聚合函数。如果聚合函数是COUNT(*)则会在统计的记录中再次求COUNT(*)
# 如果是AVG(),则会去除分组条件,求该字段的AVG()
# 使用WITH ROLLUP后不能再使用ORDER BY
SELECT author,AVG(views) FROM t_decade_blog GROUP BY author WITH ROLLUP;

SELECT book_id,AVG(book_count) FROM t_decade_book GROUP BY book_id WITH ROLLUP;

SELECT author,COUNT(views) FROM t_decade_blog GROUP BY author WITH ROLLUP;

执行结果如下

注意GROUP BY的使用顺序

  • 放在FROM、WHERE后面
  • 放在ORDER BY、LIMIT前面

三、HAVING

1、HAVING 子句可以让我们筛选分组后的各组数据

  • 当我们想使用聚合函数作为数据的过滤条件时,就不能搭配WHERE使用了,必须使用HAVING来进行替换。比如我们想筛选出哪些部门的最高工资大于10000,那么就要先根据部门id进行分组,然后再使用HAVING对MAX(salary)进行过滤
  • 如果过滤条件中没有聚合函数,那就强烈建议使用WHERE
  • HAVING必须声明在GROUP BY后面
  • 在日常开发中,使用HAVING的前提是我们使用了GROUP BY

2、HAVING和WHERE的对比

  • 从适用范围来说,HAVING更广
  • 如果过滤条件中没有聚合函数,那么WHERE的执行效率要高于HAVING。因为WHERE的执行顺序是排在HAVING前面的,它会筛选掉不满足条件的数据,这样后面GROUP BY分组以及HAVING要处理的数据量就更小了
# 错误演示
SELECT id,MAX(views)
FROM t_decade_blog
WHERE MAX(views) > 4000
GROUP BY id;

SELECT id,MAX(views)
FROM t_decade_blog
GROUP BY id
HAVING MAX(views) > 4000;

# 如果我们想查出特定博客id中最大浏览量大于4000的书籍
# 方式一:WHERE搭配HAVING,推荐此方式,执行效率更高
SELECT id,MAX(views)
FROM t_decade_blog
WHERE id IN ('76782763-48d0-4cef-b8e1-1054e181e41d',
'd3258b79-d543-49bb-9850-16cac7565f57',
'd3258b79-d543-49bb-9850-16cac7566666')
GROUP BY id
HAVING MAX(views) > 4000;

# 方式二
SELECT id,MAX(views)
FROM t_decade_blog
GROUP BY id
HAVING MAX(views) > 4000 
AND id IN ('76782763-48d0-4cef-b8e1-1054e181e41d',
'd3258b79-d543-49bb-9850-16cac7565f57',
'd3258b79-d543-49bb-9850-16cac7566666');

四、SQL底层执行原理

1. SELECT语句的完整结构

SQL92语法结构

SELECT 字段1,字段2,...(可能存在聚合函数)
FROM 表1,表2,...
WHERE 多表的连接条件 AND 不包含聚合函数的过滤条件
GROUP BY 分组字段1,分组字段2...
HAVING 包含聚合函数的过滤条件
ORDER BY 排序字段1,排序字段2...(ASC / DESC)
LIMIT 偏移量,条目数

SQL99语法结构

SELECT 字段1,字段2,...(可能存在聚合函数)
FROM 表1 (LEFT / RIGHT) JOIN 表2 ON 多表的连接条件
(LEFT / RIGHT) JOIN 表2 ON 多表的连接条件2...
WHERE 不包含聚合函数的过滤条件
GROUP BY 分组字段1,分组字段2...
HAVING 包含聚合函数的过滤条件
ORDER BY 排序字段1,排序字段2...(ASC / DESC)
LIMIT 偏移量,条目数

2. SQL语句的执行过程

我们就以SQL99语法结构为例进行分析

  • 首先执行FROM至HAVING范围内的语句
    • 先根据 FROM 找出所需要的表,这里相当于之前说过的CROSS JOIN—> 然后根据ON后面的连接条件去除无法被关联的数据—> 判断是否是左/右外连接(LEFT / RIGHT JOIN) —> 根据WHERE过滤数据—> 根据 GROUP BY 分组(这一步之后,针对每组的聚合函数进行过滤才有了意义,这就能说得通为什么WHERE中不能使用聚合函数)—> 根据 HAVING 进行分组
  • 然后执行 SELECT:执行完第一步会查出所有字段,这一步筛选出我们需要哪些字段,如果有DISTINCT关键字,那么还会进行去重
  • 最后执行 ORDER BY 和 LIMIT:对上一步得到的结果集进行排序,然后再进行分页

常见函数四:流程函数

一、作用

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

二、常见

函数

功能

IF(value , t , f)

如果value为true,则返回t,否则返回f

IFNULL(value1 , value2)

如果value1不为空,返回value1,否则 返回value2

CASE WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END

如果val1为true,返回res1,... 否 则返回default默认值

CASE [ expr ] WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END

如果expr的值等于val1,返回res1,... 否则返回default默认值

三、SQL演示

1. if

select if(false, 'Ok', 'Error');

2. ifnull

select ifnull('Ok','Default');

select ifnull('','Default');

select ifnull(null,'Default');

3. case when then else end

需求:查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

select
    name,
    ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end ) as '工作地址'
from emp;

四、案例

create table score(
    id int comment 'ID',
    name varchar(20) comment '姓名',
    math int comment '数学',
    english int comment '英语',
    chinese int comment '语文'
) comment '学员成绩表';

insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95 ), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);

具体的SQL语句如下

select
    id,
    name,
    (case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end ) '数学',
    (case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格' end ) '英语',
    (case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格' end ) '语文'
from score;

MySQL的常见函数我们学习完了,那接下来,我们就来分析一下,在前面讲到的两个函数的案例

场景,思考一下需要用到什么样的函数来实现?

  1. 数据库中,存储的是入职日期,如 2000-01-01,如何快速计算出入职天数呢? 答案: datediff
  2. 数据库中,存储的是学生的分数值,如98、75,如何快速判定分数的等级呢?答案:case ... when ...

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

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

相关文章

ThreadX源码:Cortex-A7的tx_thread_context_save.S(线程上下文保存)汇编代码分析

0 参考资料 Cortex M3权威指南(中文).pdf&#xff08;可以参考ARM指令集用法&#xff09; 1 前言 tx_thread_context_save.S是用来实现Cortex-A7下线程上下文保存的函数所在汇编文件。 2 源码分析 2.1 概述 _tx_thread_context_save函数用于在线程被中断打断后保存上下文&a…

「Next.js中文文档」网站发布

大家好&#xff0c;我是程普&#xff08;weijunext&#xff09;&#xff0c;我联合“阿伟dev”搭建了一个「Next.js 中文文档」网站&#x1f447; 这个网站我们设计得很特别&#xff1a; 样式很特别 我们模仿 Next.js 官方网站样式&#xff0c;努力做到除了语言不同&#xff…

进程相关的系统调用

文章目录 进程进程相关的系统调用wait函数waitpid函数示例--使用wait fork函数创建子进程并使用宏验证子进程的退出状态信息示例--使用waitpid函数检测子进程是否进入暂停状态 exec族函数示例--exec族函数的使用 system函数示例--使用system函数执行外部指令 进程状态切换 进程…

Vue2电商平台项目 (三) Search模块、面包屑(页面自己跳自己)、排序、分页器!

文章目录 一、Search模块1、Search模块的api2、Vuex保存数据3、组件获取vuex数据并渲染(1)、分析请求数据的数据结构(2)、getters简化数据、渲染页面 4、Search模块根据不同的参数获取数据(1)、 派发actions的操作封装为函数(2)、设置带给服务器的参数(3)、Object.assign整理参…

第十一章 【后端】商品分类管理微服务(11.1)——创建父工程

第十一章 【后端】商品分类管理微服务 11.1 创建父工程 项目名称:EasyTradeManagerSystem:Easy 表示简单易用,Trade 表示交易,Manager 表示管理,System 表示系统,强调系统在商品交易管理方面的便捷性,简称 etms。 新建工程 yumi-etms yumi-etms 作为所有模块的父工程,…

基于java 的医院排号管理系统设计与实现

博主介绍&#xff1a;专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的可以…

1863. 找出所有子集的异或总和再求和

目录 一&#xff1a;题目&#xff1a; 二&#xff1a;代码&#xff1a; 三&#xff1a;结果&#xff1a; 一&#xff1a;题目&#xff1a; 一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果&#xff1b;如果数组为 空 &#xff0c;则异或总和为 0 。 例如&#x…

C++--类的实例化

一、实例化的概念 用类类型在屋里内存中创建对象的过程&#xff0c;称为类实例化出对象 类是对对象进行一种抽象描述&#xff0c;是一个模型一样的东西&#xff0c;限定了类有哪些成员变量&#xff0c;这些成员变量只是声明&#xff0c;没有分配空间&#xff0c;用类实例化出…

【C++前后缀分解 动态规划】2100. 适合野炊的日子|1702

本文涉及知道点 C前后缀分解 C动态规划 LeetCode2100. 适合野炊的日子 你和朋友们准备去野炊。给你一个下标从 0 开始的整数数组 security &#xff0c;其中 security[i] 是第 i 天的建议出行指数。日子从 0 开始编号。同时给你一个整数 time 。 如果第 i 天满足以下所有条件…

2024最新版MySQL详细学习教程

MySQL数据库提供了很多函数包括&#xff1a; 数学函数&#xff1b;字符串函数&#xff1b;日期和时间函数&#xff1b;条件判断函数&#xff1b;系统信息函数&#xff1b;加密函数&#xff1b;格式化函数&#xff1b; 一、数学函数 数学函数主要用于处理数字&#xff0c;包括…

基于paddleocr的批量图片缩放识别

说明 在进行ocr文字识别的时候&#xff0c;有时候我们需要使用批量测试的功能&#xff0c;但是有些图片会识别失败或者个别根本识别不出来&#xff0c;这时候我们可以通过对原图片进行缩放&#xff0c;提高图像的分辨率&#xff0c;然后再次识别&#xff0c;这样可以大大提高图…

Vue学习记录之一(介绍及脚手架的使用)

一、背景知识介绍 1、构建工具介绍 Vite, Webpack,Rollup, Parce 构建工具优点缺点Vite- 快速启动&#xff0c;秒级热更新&#xff0c;更快的构建速度&#xff0c;更好的开发体验&#xff1b;- 支持 Vue3 和 ES modules 的原生特性&#xff0c;轻松实现按需加载。- 对于单页…

项目实现:云备份②(文件操作、Json等工具类的实现)

云备份 前言文件操作实用工具类设计文件属性的获取文件的读写操作文件压缩与解压缩的实现文件目录操作 Json 实用工具类设计编译优化 前言 如果有老铁不知道当前项目实现的功能是什么的话&#xff0c;可以先移步这篇文章内容&#xff1a; 云备份项目的介绍 其中介绍了云备份项…

【吊打面试官系列-MySQL面试题】简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别?

大家好&#xff0c;我是锋哥。今天分享关于【简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; 简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别&#xff1f; MyISAM&#xff1a; 不支持事务&#xff0c;但是每次查…

跳出大厂圈子——普通程序员如何开启逆袭之路

时间&#xff1a;2024年09月16日 作者&#xff1a;小蒋聊技术 邮箱&#xff1a;wei_wei10163.com 微信&#xff1a;wei_wei10 音频&#xff1a;喜马拉雅 大家好&#xff0c;欢迎来到“小蒋聊技术”&#xff01;今天咱们聊点特别现实的事儿——普通程序员的出路。互联网时代…

化学实验室器具识别系统源码分享

化学实验室器具识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

android设置实现广告倒计时功能

文章目录 CountDownTimer基本使用增加基础BaseActivity增加固定活动 在Android中&#xff0c;CountDownTimer 是一个用于计时的类&#xff0c;它允许你在指定的时间段内执行某些操作。通常用于倒计时功能&#xff0c;例如显示一个倒计时进度条或者在倒计时结束后执行某个动作。…

采用qt做一个命令行终端

qt做一个类似系统命令行终端的工具&#xff0c;方便集成到自己的软件里使用&#xff0c;这样能保证软件的整体性&#xff0c;而且是真正的做到和系统命令行终端一样的交互方式&#xff0c;而不是单独搞个编辑框的方式输入命令&#xff08;大部分博客都是做成这个样子&#xff0…

不善言辞的程序员适合做项目经理吗?

项目经理的角色需要承担多重任务&#xff0c;包括团队协调、资源调配、风险管理、沟通与汇报等。因此&#xff0c;很多人认为项目经理需要较强的沟通能力和外向性格。然而&#xff0c;不善言辞的程序员是否适合这一职位&#xff0c;实际上取决于多个因素。以下从不同角度进行分…

程序设计题(25-32)

第二十五题 题目 请编写函数fun&#xff0c;其功能是:在一个含有11个四位数的数组中&#xff0c;统计出这些数的奇数、偶数个数&#xff0c;然后计算出个数多的那些数的算数平均值并由函数返回&#xff0c;个数通过yy传回。 例如&#xff0c;若11个数据为:1101, 1202, 1303,…