轻松上手MYSQL:掌握MYSQL聚合函数,数据分析不再难

news2024/9/24 21:20:54

​🌈 个人主页:danci_
🔥 系列专栏:《设计模式》《MYSQL》
💪🏻 制定明确可量化的目标,坚持默默的做事。


✨欢迎加入探索MYSQL聚合函数之旅✨
    👋 大家好!文本学习和探索MYSQL聚合函数。👋 效率与精准是制胜的关键。MySQL聚合函数,作为数据库操作中的强大工具,能帮你快速进行数据统计、分析和汇总。本篇文章将带你轻松上手MySQL聚合函数,让复杂的数据处理变得简单高效。准备好提升你的数据库技能了吗?让我们一同揭开MySQL聚合函数的神秘面纱,让你的数据飞起来!

目录

一、AVG 求平均值

二、COUNT 统计数量(非null值)

三、GROUP_CONCAT 分组列连接成字符串

四、MAX 取最大值

五、MIN 取最小值

六、SUM 求和(非null值)

七、BIT_AND 按位与运算(非null值)

八、BIT_OR 按位或运算(非null值)

九、BIT_XOR 按位异或运算(非null值)

十、JSON_ARRAYAGG 聚合为一个 JSON 数组

十一、JSON_OBJECTAGG 聚合为一个 JSON 对象

十二、STD 求总体标准差(非null)

十三、STDDEV 求总体标准差(非null)

十四、STDDEV_POP  求总体标准差(非null)

十五、STDDEV_SAMP 计算样本标准差(非null)

十六、VAR_POP 计算总体方差(非null)

十七、VARIANCE 计算总体方差(非null)

十八、VAR_SAMP 计算样本方差(非null)


一、AVG 求平均值

MySQL AVG() 函数计算并返回表达式的平均值。

忽略 NULL 值。

语法:

AVG(expr)
AVG(DISTINCT expr)

SELECT AVG(expr), ...
FROM table_name
[WHERE ...];

SELECT AVG(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:expr 一个用于聚合运算的表达式。它可以是一个列名,也可以是一个表达式

  • group_expr1, group_expr2, ...:用于分组的表达式或者列名。

返回值

  • 表达式的平均值。
  • 返回 NULL情况:没有匹配的行。

示例:

CREATE TABLE `student_score` (
    `score` INT NOT NULL
);
INSERT INTO `student_score` (`score`)
VALUES (80),
    (90),
    (84),
    (96),
    (80),
    ( 98),
    ( 75);

SELECT AVG(score) from student_score; // 86.1429

 

二、COUNT 统计数量(非null值)

MySQL COUNT() 函数用于统计表达式代表的所有值的中的非 NULL 值的数量。

语法:

COUNT(expr)

SELECT COUNT(expr), ...
FROM table_name
[WHERE ...];

SELECT COUNT(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:expr 一个需要统计数量的表达式。它可以是一个列名,也可以是一个表达式。

  • group_expr1, group_expr2, ...:用于分组的表达式或者列名。

返回值

  • 所有行中的表达式代表的所有值的中的非 NULL 值的数量。
  • 注意: 如果使用 COUNT(*) 或者类似于 COUNT(1) 之类的语句,则会统计 NULL 值。

示例:

CREATE TABLE `student_score` (
    `score` INT
);
INSERT INTO `student_score` (`score`)
VALUES (80),
    (90),
    (84),
    (96),
    (80),
    ( 98),
    ( 75),
    ( NULL);

SELECT 
	COUNT(score),        // 7
	COUNT(*),            // 8
	COUNT(1)             // 8
	from student_score;

 

三、GROUP_CONCAT 分组列连接成字符串

MySQL GROUP_CONCAT() 函数将一个分组中指定的列或表达式的值连接成一个字符串并返回。

语法:

GROUP_CONCAT(
    [DISTINCT] expr [, expr2 ...]
    [ORDER BY ...]
    [SEPARATOR separator]
)

SELECT GROUP_CONCAT(expr), ...
FROM table_name
[WHERE ...]
[GROUP BY group_expr1, group_expr2, ...];

参数说明

  • expr [, expr2 ...]:必须的。它指定了要连接的一个或者多个列或表达式。

  • ORDER BY:可选的。它用于对要连接的内容排序。

  • SEPARATOR separator:可选的。separator 连接符。默认是 ,

返回值

  • 将通过列或者表达式指定的内容连接起来。
  • 返回 NULL情况:结果集没有任何行。

示例:

DROP TABLE IF EXISTS `student_score`;
CREATE TABLE `student_score` (
    `id` INT PRIMARY KEY AUTO_INCREMENT,
    `name` VARCHAR(255) NOT NULL,
    `score` INT NOT NULL
);

SELECT
    name AS `Name`,
    GROUP_CONCAT(subject) AS `Subjects`
FROM student_score
GROUP BY name;

+------+--------------+
| Name | Subjects     |
+------+--------------+
| Tim  | English      |
| Tom  | Math,English |
+------+--------------+

----------------------------------------------------------

SELECT
    name AS `Name`,
    GROUP_CONCAT(subject SEPARATOR '/') AS `Subjects`
FROM student_score
GROUP BY name;

+------+--------------+
| Name | Subjects     |
+------+--------------+
| Tim  | English      |
| Tom  | Math/English |
+------+--------------+

----------------------------------------------------------

SELECT
    name AS `Name`,
    GROUP_CONCAT(
        CONCAT(subject, '-'), score
        ORDER BY subject
        SEPARATOR '/'
    ) AS `Scores`
FROM student_score
GROUP BY name;

或
SELECT
    name AS `Name`,
    GROUP_CONCAT(
        CONCAT_WS('-', subject, score)
        ORDER BY subject
        SEPARATOR '/'
    ) AS `Scores`
FROM student_score
GROUP BY name;

+------+--------------------+
| Name | Scores             |
+------+--------------------+
| Tim  | English-98         |
| Tom  | English-90/Math-80 |
+------+--------------------+

 

四、MAX 取最大值

MySQL MAX() 函数返回表达式代表的所有值中的最大值。如果您需要获取一个表达式中的最小值,请使用 MIN() 函数。

语法:

MAX(expr)

SELECT MAX(expr), ...
FROM table_name
[WHERE ...];

SELECT MAX(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:expr 一个用于聚合运算的表达式。它可以是一个列名,也可以是一个表达式

  • group_expr1, group_expr2, ...:用于分组的表达式或者列名。

返回值

  • 表达式代表的所有值中的最大值。
  • 返回 NULL情况:没有匹配的行。

示例:

SELECT MAX(score) from student_score;    // 98


SELECT name, MAX(score) FROM student_score GROUP BY name;
+------+------------+
| name | MAX(score) |
+------+------------+
| Tom  |         90 |
| Tim  |         98 |
+------+------------+

 

五、MIN 取最小值

MySQL MIN() 函数返回表达式代表的所有值中的最小值。如果您需要获取一个表达式中的最大值,请使用 MAX() 函数。

语法:

MIN(expr)

SELECT MIN(expr), ...
FROM table_name
[WHERE ...];

SELECT MIN(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:expr 一个用于聚合运算的表达式。它可以是一个列名,也可以是一个表达式。

  • group_expr1, group_expr2, ...:用于分组的表达式或者列名。

返回值

  • 表达式代表的所有值中的最小值。
  • 返回 NULL情况:没有匹配的行。

示例:

mysql> SELECT MIN(score) from student_score;

+------------+
| MIN(score) |
+------------+
|         80 |
+------------+

mysql> SELECT subject, MIN(score) FROM student_score GROUP BY subject;
+---------+------------+
| subject | MIN(score) |
+---------+------------+
| Math    |         80 |
| English |         90 |
+---------+------------+

 

六、SUM 求和(非null值)

MySQL SUM() 函数计算所有指定的非 NULL 值的总和并返回。

语法:

SUM(expr)

SELECT SUM(expr), ...
FROM table_name
[WHERE ...];

SELECT SUM(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:expr 一个需要统计数量的表达式。它可以是一个列名,也可以是一个表达式。

  • group_expr1, group_expr2, ...:用于分组的表达式或者列名。

返回值

  • 所有指定的非 NULL 值的总和。
  • 返回 NULL情况:没有匹配的行。 

示例:

mysql> SELECT SUM(score) from student_score;
+------------+
| SUM(score) |
+------------+
| 268        |
+------------+

mysql> SELECT name, SUM(score)FROM student_score GROUP BY name;
+------+------------+
| name | SUM(score) |
+------+------------+
| Tom  | 170        |
| Tim  | 98         |
+------+------------+

 

七、BIT_AND 按位与运算(非null值)

MySQL BIT_AND() 函数是一个聚合函数,它对所有的非 null 输入值执行"按位与"运算。(只处理那些非 null 的值)
按位与处理两个长度相同的二进制数,两个相应的二进位都为 1,该位的结果值才为 1,否则为 0。

语法:

BIT_AND(expr)

SELECT BIT_AND(expr), ...
FROM table_name
[WHERE ...];

SELECT BIT_AND(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 返回值的类型与输入参数的类型相同,它返回 对所有的非 null 输入值执行"按位与"运算的结果。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT BIT_AND(x) FROM (SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x ) t;
+------------+
| BIT_AND(x) |
+------------+
|          4 |
+------------+

 “按位与” 运算,运算步骤如下:

4 -> 100
5 -> 101
6 -> 110
BIT_AND() = 100 = 4

 

八、BIT_OR 按位或运算(非null值)

MySQL BIT_OR() 函数是一个聚合函数,它对所有的非 null 输入值执行"按位或"运算。(只处理那些非 null 的值)
按位或处理两个长度相同的二进制数,两个相应的二进位都为 0,该位的结果值为 0,否则为 1。

语法:

BIT_OR(expr)

SELECT BIT_OR(expr), ...
FROM table_name
[WHERE ...];

SELECT BIT_OR(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个整数或者 bit 类型的值。

返回值

  • 返回值的类型与输入参数的类型相同,它返回 对所有的非 null 输入值执行"按位或"运算的结果。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT BIT_OR(x) FROM (SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x ) t;
+-----------+
| BIT_OR(x) |
+-----------+
|         7 |
+-----------+

“按位与” 运算,运算步骤如下:

4 -> 100
5 -> 101
6 -> 110
BIT_OR() = 111 = 7

 

九、BIT_XOR 按位异或运算(非null值)

MySQL BIT_XOR() 函数是一个聚合函数,它对所有的非 null 输入值执行"按位异或"运算。(只处理那些非 null 的值)
按位异或处理两个长度相同的二进制数,两个相应的二进位只要不同,该位的结果值为 1,否则为 0。

语法:

BIT_XOR(expr)

SELECT BIT_XOR(expr), ...
FROM table_name
[WHERE ...];

SELECT BIT_XOR(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个整数或者 bit 类型的值。

返回值

  • 返回值的类型与输入参数的类型相同,它返回 对所有的非 null 输入值执行"按位异或"运算的结果。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT BIT_XOR(x) FROM ( SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x ) t;
+------------+
| BIT_XOR(x) |
+------------+
|          7 |
+------------+

“按位异或” 运算,运算步骤如下:

4 -> 100
5 -> 101
6 -> 110
BIT_XOR() = 111 = 7

 

十、JSON_ARRAYAGG 聚合为一个 JSON 数组

MySQL JSON_ARRAYAGG() 函数将指定的列或者表达式的值聚合为一个 JSON 数组。

语法:

JSON_ARRAYAGG(expr)

SELECT JSON_ARRAYAGG(expr), ...
FROM table_name
[WHERE ...]
[GROUP BY group_expr1, group_expr2, ...];

参数说明

  • expr:必须的。它可以是一个列名,也可以是一个表达式。

返回值

  • 聚合了所有符合条件的值。
  • 返回 NULL情况:结果集没有任何行。

示例:

mysql> select * from student_score;
+----+------+---------+-------+
| id | name | subject | score |
+----+------+---------+-------+
|  1 | Tom  | Math    |    80 |
|  2 | Tom  | English |    90 |
|  3 | Tim  | English |    98 |
+----+------+---------+-------+
3 rows in set (0.00 sec)

mysql> SELECT name AS `Name`, JSON_ARRAYAGG(subject) AS `Subjects` FROM student_score GROUP BY name;
+------+---------------------+
| Name | Subjects            |
+------+---------------------+
| Tim  | ["English"]         |
| Tom  | ["Math", "English"] |
+------+---------------------+

 

十一、JSON_OBJECTAGG 聚合为一个 JSON 对象

MySQL JSON_OBJECTAGG() 函数将由第一个参数作为键和第二个参数作为值的键值对聚合为一个 JSON 对象。

语法:

JSON_OBJECTAGG(key_expr, value_expr)

SELECT JSON_OBJECTAGG(key_expr, value_expr), ...
FROM table_name
[WHERE ...]
[GROUP BY group_expr1, group_expr2, ...];

参数说明

  • key_expr:必须的。它的值作为结果对象中的键值对中的键。它可以是一个列名,也可以是一个表达式。

  • value_expr:可选的。它的值作为结果对象中的键值对中的值。它可以是一个列名,也可以是一个表达式。

返回值

  • 一个 JSON 对象,其中的键值对中的键是 key_expr 的值,值是 value_expr 的值。
  • 返回 NULL情况:结果集没有任何行。
  • 注意:如果存在重复的键,则只保留最后一个键作为键值对,其他重复的键值对都被丢弃。

示例:

mysql> select * from student_score;
+----+------+---------+-------+
| id | name | subject | score |
+----+------+---------+-------+
|  1 | Tom  | Math    |    80 |
|  2 | Tom  | English |    90 |
|  3 | Tim  | English |    98 |
+----+------+---------+-------+
3 rows in set (0.00 sec)
 
mysql> SELECT name AS `Name`, JSON_OBJECTAGG(subject, score) AS `Scores`FROM student_score GROUP BY name;
+------+-----------------------------+
| Name | Scores                      |
+------+-----------------------------+
| Tim  | {"English": 98}             |
| Tom  | {"Math": 80, "English": 90} |
+------+-----------------------------+

 

十二、STD 求总体标准差(非null)

MySQL STD() 函数计算所有非 null 输入值的总体标准差并返回结果。 它是 STDDEV_POP() 的别名。

只处理那些非 null 的值,忽略null值。

语法:

STD(expr)

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 总体标准差。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT STD(x) FROM ( SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x) t;
+-------------------+
| STD(x)            |
+-------------------+
| 0.816496580927726 |
+-------------------+

 

十三、STDDEV 求总体标准差(非null)

MySQL STDDEV() 函数计算所有非 null 输入值的总体标准差并返回结果。 它是 STDDEV_POP() 的别名。

只处理那些非 null 的值,null 值会被忽略。

语法:

STDDEV(expr)

SELECT AVG(expr), ...
FROM table_name
[WHERE ...];

SELECT AVG(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 所有非 null 输入值的总体标准差。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT STDDEV(x) FROM ( SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x) t;
+-------------------+
| STDDEV(x)         |
+-------------------+
| 0.816496580927726 |
+-------------------+

 

十四、STDDEV_POP  求总体标准差(非null)

MySQL STDDEV_POP() 函数计算所有非 null 输入值的总体标准差并返回结果。

只处理那些非 null 的值,null 值会被函数忽略。

语法:

STDDEV_POP(expr)

SELECT STDDEV_POP(expr), ...
FROM table_name
[WHERE ...];

SELECT STDDEV_POP(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 所有非 null 输入值的总体标准差。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT STDDEV_POP(x) FROM ( SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x) t;
+-------------------+
| STDDEV_POP(x)     |
+-------------------+
| 0.816496580927726 |
+-------------------+

 

十五、STDDEV_SAMP 计算样本标准差(非null)

MySQL STDDEV_SAMP() 函数计算所有非 null 输入值的样本标准差并返回结果。

只处理那些非 null 的值,null 值会被函数忽略。

语法:

STDDEV_SAMP(expr)

SELECT STDDEV_SAMP(expr), ...
FROM table_name
[WHERE ...];

SELECT STDDEV_SAMP(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 所有非 null 输入值的样本标准差。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT STDDEV_SAMP(x) FROM ( SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x) t;
+----------------+
| STDDEV_SAMP(x) |
+----------------+
|              1 |
+----------------+

 

十六、VAR_POP 计算总体方差(非null)

MySQL VAR_POP() 函数计算所有非 null 输入值的总体方差(总体标准差的平方)并返回结果。

只处理那些非 null 的值,null 值会被函数忽略。

语法:

VAR_POP(expr)

SELECT VAR_POP(expr), ...
FROM table_name
[WHERE ...];

SELECT VAR_POP(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 所有非 null 输入值的总体方差(总体标准差的平方)。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

SELECT VAR_POP(x)
FROM (
    SELECT 11 x
    UNION
    SELECT 12 x
    UNION
    SELECT 13 x
  ) t;


-- 输出
+--------------------+
| VAR_POP(x)         |
+--------------------+
| 0.6666666666666666 |
+--------------------+

 

十七、VARIANCE 计算总体方差(非null)

MySQL VAR_SAMP() 函数计算所有非 null 输入值的样本方差(样本标准差的平方)并返回结果。

只处理那些非 null 的值,null 值会被函数忽略。

语法:

VAR_SAMP(expr)

SELECT VAR_SAMP(expr), ...
FROM table_name
[WHERE ...];

SELECT VAR_SAMP(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 所有非 null 输入值的样本方差(样本标准差的平方)。
  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT VAR_SAMP(x) FROM ( SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x) t;
+-------------+
| VAR_SAMP(x) |
+-------------+
|           1 |
+-------------+

 

十八、VAR_SAMP 计算样本方差(非null)

MySQL VARIANCE() 函数计算所有非 null 输入值的总体方差(总体标准差的平方)并返回结果。 它是 VAR_POP() 的别名。

只处理那些非 null 的值,null 值会被函数忽略。

语法:

VARIANCE(expr)

SELECT VARIANCE(expr), ...
FROM table_name
[WHERE ...];

SELECT VARIANCE(expr), group_expr1, group_expr2, ...
FROM table_name
[WHERE ...]
GROUP BY group_expr1, group_expr2, ...;

参数说明

  • expr:必需的。一个列名或者表达式。它接受一个数值或者二进制值。

返回值

  • 返回所有非 null 输入值的总体方差(总体标准差的平方)。

  • 返回 NULL情况:所有的输入的值为 null。

示例:

mysql> SELECT VARIANCE(x) FROM ( SELECT 4 x UNION SELECT 5 x UNION SELECT 6 x) t;
+--------------------+
| VARIANCE(x)        |
+--------------------+
| 0.6666666666666666 |
+--------------------+

    好了,今天分享到这里。希望你喜欢这次的探索之旅!不要忘记 "点赞" 和 "关注" 哦,我们下次见!🎈

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

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

相关文章

240807-Gradio客户端GUI与服务端API分离代码示例

A. 客户端服务端分离的最终效果 B. 前后端核心代码 Gradio支持将前端界面(客户端)与后端逻辑(服务端)分离。通过这种方式,客户端负责用户交互和显示,而服务端负责实际的数据处理和功能实现。 以下是如何实…

买Zoho企业邮箱赠公司后缀的域名吗?

随着市场上企业邮箱服务提供商的增多,选择适合自身需求的服务变得尤为重要。其中一个常见的问题是:购买Zoho企业邮箱服务时是否会赠送公司后缀的域名?赠送域名有哪些套路?本文将详细探讨这些问题。 一、买Zoho企业邮箱赠送公司后…

让三岁小孩都能理解动态规划_来自B站罐装-蜜糖

系列文章目录 文章目录 系列文章目录一、认识算法动态规划难在哪?学习目标 二、记忆化搜索 非常直觉的处理方式注意: 三、70.爬楼梯 入门 模板通过记忆化搜索 发现动态规划四要素 四、118.杨辉三角 使用答案空间处理(题目给了返回值的样式)五…

The Ether: EvilScience (v1.0.1)打靶渗透【附代码】(权限提升)

靶机下载地址: https://www.vulnhub.com/entry/the-ether-evilscience-v101,212/ 1. 主机发现端口扫描目录扫描敏感信息获取 1.1. 主机发现 nmap -sn 192.168.7.0/24|grep -B 2 00:0C:29:7F:50:FB 1.2. 端口扫描 nmap -p- 192.168.7.172 1.3. 目录扫描 dirb http://192.16…

vm虚拟机下安装CentOS7系统

VMware16安装CentOS7 1.启动之前安装的VM 具体VMware安装过程 2.配置Linux(centos7)的镜像文件 选择安装镜像文件 4.开启虚拟机 开始读秒安装 选择安装过程中使用的语言,这里选择英文、键盘选择美式键盘。点击Continue 首先设置时间…

MySQL——数据类型、索引的建立、数据的约束

文章目录 数据类型索引的建立普通索引唯一索引使用ALTER 命令添加和删除索引使用ALTER 命令添加和删除主键显示索引信息 数据的约束非空约束:not null,值不能为null唯一约束:unique,值不能重复主键约束:primary key外键…

【实现100个unity特效之15】最简单的方法使用shader graphs实现2d非像素和像素树叶草的随风摇摆效果

文章目录 前言非像素树叶草飘动效果新建材质效果像素树叶草飘动效果参考完结 前言 本文只是实现一个简单版本的2d树叶草随风摇摆的效果,如果你想要实现更加复杂的效果,包括2d互动草,你可以参考我之前的文章: 【推荐100个unity插件…

基元检测-霍夫直线变换原理

在之前已经使用过正规方程法、梯度下降法拟合直线 1、回顾过去 梯度下降法拟合一元函数 最小二乘法的线性代数推导 现在使用一种新的直线检测方法,霍夫变换,它也可以拟合直线,接下里将说明他的原理。 2、霍夫变换 霍夫变换(…

工地安全巡检系统

在建筑施工行业,安全始终是高悬的“达摩克利斯之剑”。随着科技的日新月异,工地安全二维码巡检系统崭露头角,成为守护工地安全的强大利器。 通过凡尔码平台,工地安全巡检系统融合了先进信息技术与安全管理理念的创新成果。其功能丰…

免费的录屏软件有哪些?试试这4款巨好用的录屏软件

4个免费简单实用的录屏软件推荐,帮你解决录屏问题。 1、转转大师录屏软件 下载链接>>screencap.55.la 这是一款非会员录屏也不限制时长的免费录屏软件,操作简单,第一次用就会,必须五星推荐给你! 支持多种录制模…

数据结构——排序(1):插入排序

目录 一、排序的概念 二、排列的运用 三、常见的排序算法 四、插入排序 1.直接插入排序 (1)思路 (2)过程图示 (3)代码实现 (4)代码解释 (5)特性 2.希尔排序 (1…

【Java算法专场】位运算(上)

目录 常见位运算总结 位1的个数 算法思路 算法代码 比特位计数 算法思路 算法代码 汉明距离 算法思路 算法代码 只出现一次的数字 算法思路 算法代码 丢失的数字 算法思路 算法代码 常见位运算总结 了解位运算的一些基本操作,那么我们就来通过题目来…

STM32的USB接口介绍

STM32 USB接口是STM32微控制器系列中集成的一种通信接口,它允许STM32微控制器与外部设备或计算机进行高速的数据传输和通信。以下是STM32 USB接口的简要介绍: 1. 接口类型 STM32的USB接口通常支持USB 2.0标准,部分高端型号可能还支持USB 3.…

新手必看!剪映轻松上手,让你的视频瞬间高大上

相信现在短视频兴起的时代下,几乎人手都在学习如何剪辑出日常视频,尤其是想要走新媒体路线的小伙伴更是在尝试专业的剪辑,不过平时的vlog或者抖音短视频可以从简单的开始接触,剪映是其中的一款适合初学者上手的剪辑了,…

网络编程复习

1.网络编程基础 1.1引入 socket套接字实现主机之间的通信 cs通信模型基于socket实现,需要客户端软件来实现通信 bs通信模型基于http实现,是网页通信,不需要任何客户端软件 1.2通信协议 (1)OSI七层通信协议&#xff…

QEMU理解与分析系列(1):QEMU简介

QEMU简介 一、QEMU基本介绍1.1操作模式1.2 虚拟化方式中间代码实现方式简介源码结构分布 二、qemu tcg前端解码逻辑2.1 tcg翻译流程2.1.1 decode tree语法2.1.2 trans_xxx函数的逻辑 三、编译相关3.1 代码拉取(拉取自己想要的版本)3.2 编译参数3.3 依赖包…

Spring Boot - 在Spring Boot中实现灵活的API版本控制(上)

文章目录 为什么需要多版本管理?在Spring Boot中实现多版本API的常用方法1. URL路径中包含版本号2. 请求头中包含版本号3. 自定义注解和拦截器 注意事项 为什么需要多版本管理? API接口的多版本管理在我们日常的开发中很重要,特别是当API需要…

关于Zoho mail邮箱续费、退款、升级的说明

在使用企业邮箱服务的过程中,可能会遇到续费,退款及升级服务的情况。遇到这些情况时应该如何处理?本文将为您提供遇到邮箱情况时的详细操作步骤:邮箱续费方式及续费流程、邮箱申请退款方式、邮箱升级服务的流程。 一、Zoho邮箱如…

动态面板门槛模型及 Stata 具体操作步骤

目录 一、文献综述 二、理论原理 三、实证模型 四、稳健性检验 五、程序代码及解释 六、代码运行结果 一、文献综述 动态面板门槛模型作为一种先进的计量经济学方法,在众多领域的研究中发挥着关键作用。在经济增长领域,[学者 A]通过构建动态面板门槛…

你的会议记录还用手写吗?3款免费语音转文字工具

现在,随着大家越来越习惯用电脑和手机工作,很多专业人士都在找更快捷的方法来记录会议内容。以前那种手写笔记,不仅写起来慢,而且整理和分享起来也很麻烦。幸好,随着科技的发展,出现了一些能将说话的声音直…