mysql 基本操作2

目录

Update

将小白龙的数学成绩跟新为 80 分

将总成绩后三名的数学成绩+30分

Delete

删除沙悟净的成绩

删除倒数第一名的成绩

Truncate

聚合函数

count

查看员工表里面的人数

查看男女员工的个数

查看男员工占所有员工个数的比例

sum

计算所有员工的工资和

计算各个部门的工资和

MAX

计算所有员工的最大工资

计算各个部门的最大的工资

MIN

计算工资的最小值

计算各个部门的最小工资

AVG

计算工资的平均值

计算各部的平均工资

计算出平均工资小于5000的部门,并计算出该部门的平均工资

最后我们看一下,还是上面的那个查询,但是多了个条件,不包括女儿国王


Update

update table_name set 列名=value [oeder by ...][where ...][limit ...];

下面我们将该表的数据进行跟新:

mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛宝钗    |      88 |   90 |      88 |
|  4 | 赵姨娘    |      79 |   90 |      93 |
|  5 | 唐三藏    |      72 |   60 |      56 |
|  6 | 沙悟净    |      77 |   87 |      72 |
|  7 | 小白龙    |      99 |   20 |      19 |
+----+-----------+---------+------+---------+
6 rows in set (0.00 sec)

将小白龙的数学成绩跟新为 80 分

mysql> update exam_result set math=80 where name='小白龙';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
​
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛宝钗    |      88 |   90 |      88 |
|  4 | 赵姨娘    |      79 |   90 |      93 |
|  5 | 唐三藏    |      72 |   60 |      56 |
|  6 | 沙悟净    |      77 |   87 |      72 |
|  7 | 小白龙    |      99 |   80 |      19 |
+----+-----------+---------+------+---------+
6 rows in set (0.00 sec)

上面就是跟新时实用 where 子句,下面看一下使用其他的可选项。

将总成绩后三名的数学成绩+30分

1.首先查出所有人的总成绩

mysql> select name, chinese+english+math 总分 from exam_result order by 总分;
+-----------+--------+
| name      | 总分   |
+-----------+--------+
| 唐三藏    |    188 |
| 小白龙    |    198 |
| 沙悟净    |    236 |
| 赵姨娘    |    262 |
| 薛宝钗    |    266 |
| 林黛玉    |    287 |
+-----------+--------+
6 rows in set (0.00 sec)

2.通过 limit 查出后三名

mysql> select name, chinese+english+math 总分 from exam_result order by 总分 limit 3;
+-----------+--------+
| name      | 总分   |
+-----------+--------+
| 唐三藏    |    188 |
| 小白龙    |    198 |
| 沙悟净    |    236 |
+-----------+--------+
3 rows in set (0.00 sec)

3.将他们的数学成绩加30

mysql> update exam_result set math=math+30 order by chinese+english+math limit 3;
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3  Changed: 3  Warnings: 0

上面就将总成绩的后三名的数学成绩加了三十分,在加的是 math=math+30 这是因为在 mysql 里面没有 += ,送一就只能这样写。

order by 那里没有显示的写 asc 是因为 order by 默认就是升序。

这里强调一下其实 update 如果后面没有限制的话,就会把所有的数据都会修改,所以 uodate 还是需要注意一点使用的。

Delete

delete from table_name [order by ...] [where ...] [limit ...];

删除沙悟净的成绩

mysql> delete from exam_result where name='沙悟净';
Query OK, 1 row affected (0.01 sec)
​
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛宝钗    |      88 |   90 |      88 |
|  4 | 赵姨娘    |      79 |   90 |      93 |
|  5 | 唐三藏    |      72 |   90 |      56 |
|  7 | 小白龙    |      99 |  110 |      19 |
+----+-----------+---------+------+---------+
5 rows in set (0.00 sec)

删除倒数第一名的成绩

1.查找处倒数第一名

mysql> select *, chinese+english+math 总分 from exam_result order by 总分 limit 1;
+----+-----------+---------+------+---------+--------+
| id | name      | chinese | math | english | 总分   |
+----+-----------+---------+------+---------+--------+
|  5 | 唐三藏    |      72 |   90 |      56 |    218 |
+----+-----------+---------+------+---------+--------+
1 row in set (0.00 sec)

2.删除倒数第一名

mysql> delete from exam_result order by chinese+math+english limit 1;
Query OK, 1 row affected (0.01 sec)
​
mysql> select * from exam_result;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 林黛玉    |      98 |   90 |      99 |
|  3 | 薛宝钗    |      88 |   90 |      88 |
|  4 | 赵姨娘    |      79 |   90 |      93 |
|  7 | 小白龙    |      99 |  110 |      19 |
+----+-----------+---------+------+---------+
4 rows in set (0.00 sec)

下面创建一个拥有自增值的一个表,然后测试 delete:

mysql> create table test_delete(-> id int auto_increment primary key,-> name varchar(12));
Query OK, 0 rows affected (0.00 sec)
​
mysql> desc test_delete;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(12) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

插入数据:

mysql> insert into test_delete(name) values('A');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into test_delete(name) values('B');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into test_delete(name) values('C');
Query OK, 1 row affected (0.00 sec)
​
mysql> select* from test_delete;
+----+------+
| id | name |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | C    |
+----+------+
3 rows in set (0.00 sec)

有 zuto_increment 字段的数据,查看表创建的时候还会有一个 auto_increment 的值:

mysql> show create table test_delete\G
*************************** 1. row ***************************Table: test_delete
Create Table: CREATE TABLE `test_delete` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(12) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

下面 delete 删除掉该表数据:

mysql> delete from test_delete;
Query OK, 3 rows affected (0.00 sec)
​
mysql> select * from test_delete;
Empty set (0.00 sec)

删除后,下面查看表的创建:

mysql> show create table test_delete\G
*************************** 1. row ***************************Table: test_delete
Create Table: CREATE TABLE `test_delete` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(12) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

查看后发现 auto_increment 的默认值并没有发生改变,下面继续插入数据查看:

mysql> insert into test_delete(name) values('D');
Query OK, 1 row affected (0.01 sec)
​
mysql> select * from test_delete;
+----+------+
| id | name |
+----+------+
|  4 | D    |
+----+------+
1 row in set (0.00 sec)

auto_increment 的默认值每日有发生变化。

Truncate

truncate [table] table_name;

truncate 也是一种删除,只不过 delete 可以对某一记录进行删除,而 truncate 只能对整表进行删除。

除了上面的区别,实际上 truncate 还可以对 auto_increment 的默认值进行清空,truncate 这样的操作也不会通过事务:

mysql> create table test_truncate(-> id int primary key auto_increment,-> name varchar(12));
Query OK, 0 rows affected (0.01 sec)
​
mysql> desc test_truncate;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(12) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

下面同样插入数据:

mysql> insert into test_truncate(name) values('A');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into test_truncate(name) values('B');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into test_truncate(name) values('C');
Query OK, 1 row affected (0.00 sec)
​
mysql> select * from test_truncate;
+----+------+
| id | name |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | C    |
+----+------+
3 rows in set (0.00 sec)

插入数据后进行 teuncate 删除:

mysql> truncate table test_truncate;
Query OK, 0 rows affected (0.00 sec)
​
mysql> select * from test_truncate;
Empty set (0.00 sec)

闪出成功后查看表的创建:

mysql> show create table test_truncate\G
*************************** 1. row ***************************Table: test_truncate
Create Table: CREATE TABLE `test_truncate` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(12) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

这里的 auto_increment 没有了,但是这里的没有表示从新开始:

mysql> insert into test_truncate(name) values('D');
Query OK, 1 row affected (0.01 sec)
​
mysql> select * from test_truncate;
+----+------+
| id | name |
+----+------+
|  1 | D    |
+----+------+
1 row in set (0.00 sec)

上面插入数据后查看 auto_increment 确实是重新开始了。

在 mysql 中还是可以使用函数的,其中mysql 也给我们提供了一下聚合函数,首先看一下聚合函数:

聚合函数

函数说明
COUNT([DISTINCT] expr)返回查询到的数据的 数量
SUM([DISTINCT] expr)返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr)返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr)返回查询到的数据的 最小值,不是数字没有意义

上面是 mysql 中比较常用的聚合函数。下面可以看一下如何使用。

下面创建一个表:

mysql> create table employee(-> id int primary key auto_increment,-> name varchar(12),-> gender varchar(2),-> dept varchar(20));
Query OK, 0 rows affected (0.01 sec)
​
mysql> desc employee;
+--------+-------------+------+-----+---------+----------------+
| Field  | Type        | Null | Key | Default | Extra          |
+--------+-------------+------+-----+---------+----------------+
| id     | int(11)     | NO   | PRI | NULL    | auto_increment |
| name   | varchar(12) | YES  |     | NULL    |                |
| gender | varchar(2)  | YES  |     | NULL    |                |
| dept   | varchar(20) | YES  |     | NULL    |                |
+--------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

对员工表里面插入数据:

mysql> insert into employee(name, gender, dept) values('孙悟空','男', '安全部门');
Query OK, 1 row affected (0.01 sec)
​
mysql> insert into employee(name, gender, dept) values('玉皇大帝','男', '政治部门');
Query OK, 1 row affected (0.01 sec)
​
mysql> insert into employee(name, gender, dept) values('女儿国王','女', '辅助部门');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into employee(name, gender, dept) values('白骨精','女', '辅助部门');
Query OK, 1 row affected (0.01 sec)
​
mysql> insert into employee(name, gender, dept) values('猪八戒','男', '安全部门');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into employee(name, gender, dept) values('白龙马','男', '交通部门');
Query OK, 1 row affected (0.00 sec)
​
mysql> insert into employee(name, gender, dept) values('观音菩萨','女', '政治部门');
Query OK, 1 row affected (0.00 sec)
​
mysql> select * from employee;
+----+--------------+--------+--------------+
| id | name         | gender | dept         |
+----+--------------+--------+--------------+
|  1 | 孙悟空        | 男      |  安全部门     |
|  2 | 玉皇大帝      | 男      |  政治部门     |
|  3 | 女儿国王      | 女       | 辅助部门     |
|  4 | 白骨精        | 女      |  辅助部门     |
|  5 | 猪八戒        | 男      | 安全部门     |
|  6 | 白龙马        | 男      | 交通部门     |
|  8 | 观音菩萨       | 女     | 政治部门     |
+----+--------------+--------+--------------+
7 rows in set (0.00 sec)

count

查看员工表里面的人数

mysql> select count(*) from employee;
+----------+
| count(*) |
+----------+
|        7 |
+----------+
1 row in set (0.01 sec

count 既可以用 * 也可以用 1

mysql> select count(1) from employee;
+----------+
| count(1) |
+----------+
|        7 |
+----------+
1 row in set (0.00 sec)

下面为该表加一个工资列:

mysql> alter table employee add sal decimal(7,2);
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0
​
mysql> desc employee;
+--------+--------------+------+-----+---------+----------------+
| Field  | Type         | Null | Key | Default | Extra          |
+--------+--------------+------+-----+---------+----------------+
| id     | int(11)      | NO   | PRI | NULL    | auto_increment |
| name   | varchar(12)  | YES  |     | NULL    |                |
| gender | varchar(2)   | YES  |     | NULL    |                |
| dept   | varchar(20)  | YES  |     | NULL    |                |
| sal    | decimal(7,2) | YES  |     | NULL    |                |
+--------+--------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

为该列插入数据:

mysql> select * from employee;
+----+--------------+--------+--------------+----------+
| id | name         | gender | dept         | sal      |
+----+--------------+--------+--------------+----------+
|  1 | 孙悟空       | 男     | 安全部门     | 13000.00 |
|  2 | 玉皇大帝     | 男     | 政治部门     |  8000.00 |
|  3 | 女儿国王     | 女     | 辅助部门     |  5000.00 |
|  4 | 白骨精       | 女     | 辅助部门     |  4500.00 |
|  5 | 猪八戒       | 男     | 安全部门     | 10000.00 |
|  6 | 白龙马       | 男     | 交通部门     |  5500.00 |
|  8 | 观音菩萨     | 女     | 政治部门     | 15000.00 |
+----+--------------+--------+--------------+----------+
7 rows in set (0.00 sec)

下面可不可以查看员工表里面的人的个数,然后在查看名字呢?

ERROR 1140 (42000): In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'CURD.employee.name'; this is incompatible with sql_mode=only_full_group_by

不可以,这是为什么?

因为这里需要的是聚合函数,而 count 聚合所有值之后会变成一个值,但是名字是多个,所以无法聚合,只有分组之后才可以。


group by 列名

上面就是分组的语法,可以分组后查看。

查看男女员工的个数

mysql> select gender,count(1) from employee group by gender;
+--------+----------+
| gender | count(1) |
+--------+----------+
| 女     |        3 |
| 男     |        4 |
+--------+----------+
2 rows in set (0.00 sec)

查看男员工占所有员工个数的比例

mysql> select (select count(1) from employee where gender='男')/((select count(*) from employee) + 0.0) 男生占比;
+--------------+
| 男生占比      |
+--------------+
|       0.5714 |
+--------------+
1 row in set (0.00 sec)

sum

计算所有员工的工资和

mysql> select sum(sal) from employee;
+----------+
| sum(sal) |
+----------+
| 61000.00 |
+----------+
1 row in set (0.00 sec)

计算各个部门的工资和

mysql> select dept, sum(sal) from employee group by dept;
+--------------+----------+
| dept         | sum(sal) |
+--------------+----------+
| 交通部门     |  5500.00 |
| 安全部门     | 23000.00 |
| 政治部门     | 23000.00 |
| 辅助部门     |  9500.00 |
+--------------+----------+
4 rows in set (0.00 sec)

MAX

计算所有员工的最大工资

mysql> select max(sal) 最大 from employee;
+----------+
| 最大     |
+----------+
| 15000.00 |
+----------+
1 row in set (0.01 sec)

计算各个部门的最大的工资

mysql> select dept,max(sal) 最大工资 from employee group by dept;
+--------------+--------------+
| dept         | 最大工资     |
+--------------+--------------+
| 交通部门     |      5500.00 |
| 安全部门     |     13000.00 |
| 政治部门     |     15000.00 |
| 辅助部门     |      5000.00 |
+--------------+--------------+
4 rows in set (0.00 sec)

MIN

计算工资的最小值

mysql> select min(sal) 最小工资 from employee;
+--------------+
| 最小工资     |
+--------------+
|      4500.00 |
+--------------+
1 row in set (0.01 sec)

计算各个部门的最小工资

mysql> select dept,min(sal) 最小工资 from employee group by dept;
+--------------+--------------+
| dept         | 最小工资     |
+--------------+--------------+
| 交通部门     |      5500.00 |
| 安全部门     |     10000.00 |
| 政治部门     |      8000.00 |
| 辅助部门     |      4500.00 |
+--------------+--------------+
4 rows in set (0.00 sec)

AVG

计算工资的平均值

mysql> select avg(sal) 平均工资 from employee;
+--------------+
| 平均工资     |
+--------------+
|  8714.285714 |
+--------------+
1 row in set (0.00 sec)

计算各部的平均工资

mysql> select dept,avg(sal) 平均工资 from employee group by dept;
+--------------+--------------+
| dept         | 平均工资     |
+--------------+--------------+
| 交通部门     |  5500.000000 |
| 安全部门     | 11500.000000 |
| 政治部门     | 11500.000000 |
| 辅助部门     |  4750.000000 |
+--------------+--------------+
4 rows in set (0.00 sec)

计算出平均工资小于5000的部门,并计算出该部门的平均工资

mysql> select dept,avg(sal) 平均工资 from employee group by dept having 平均工资 < 5000;
+--------------+--------------+
| dept         | 平均工资     |
+--------------+--------------+
| 辅助部门     |  4750.000000 |
+--------------+--------------+
1 row in set (0.00 sec)

这里使用了 having ,having 就是在聚合后使用的。

下面看一下 having 和 where 的区别:

mysql> select * from employee having dept != '安全部门';
+----+--------------+--------+--------------+----------+
| id | name         | gender | dept         | sal      |
+----+--------------+--------+--------------+----------+
|  2 | 玉皇大帝     | 男     | 政治部门     |  8000.00 |
|  3 | 女儿国王     | 女     | 辅助部门     |  5000.00 |
|  4 | 白骨精       | 女     | 辅助部门     |  4500.00 |
|  6 | 白龙马       | 男     | 交通部门     |  5500.00 |
|  8 | 观音菩萨     | 女     | 政治部门     | 15000.00 |
+----+--------------+--------+--------------+----------+
5 rows in set (0.00 sec)

这里呢看到 having 还可以像 where 一样,那么看一下刚才的那一句查询可不可以使用 where:

mysql> select dept,avg(sal) 平均工资 from employee group by dept where 平均工资 < 5000;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where 平均工资 < 5000' at line 1

上面不能那样使用,实际上 having 也是有执行顺序的,下面我们先简单的说一下他们的执行顺序。

  • 首先需要有表,也就是 from table_name

  • 有了表之后就要开始筛选数据也就是 where 筛选数据

  • 筛选出来数据后,就得到了 select 后面的那些数据

  • 得到哪些数据后,开始分组等

  • 分组完成后 having 进行最后的筛选

最后我们看一下,还是上面的那个查询,但是多了个条件,不包括女儿国王

mysql> select dept,avg(sal) 平均工资 from employee  where name != '女儿国王' group by dept having 平均工资 < 5000;
+--------------+--------------+
| dept         | 平均工资     |
+--------------+--------------+
| 辅助部门     |  4500.000000 |
+--------------+--------------+
1 row in set (0.00 sec)

这里详细的看一下执行顺序

  • from employee

  • where name != '女儿国王'

  • dept,avg(sal) 平均工资

  • group by dept

  • having 平均工资 < 5000

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

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

相关文章

-9501 MAL系统没有配置或者服务器不是企业版(dm8达梦数据库)

dm8达梦数据库 -9501 MAL系统没有配置或者服务器不是企业版&#xff09; 环境介绍1 环境检查2 问题原因 环境介绍 搭建主备集群时&#xff0c;遇到报错-9501 MAL系统没有配置或者服务器不是企业版 1 环境检查 检查dmmal.ini配置文件权限正确 dmdba:dinstall&#xff0c;内容正…

ChatGPT Prompting开发实战(一)

一、关于ChatGPT Prompting概述 当我们使用ChatGPT或者调用OpenAI的API时&#xff0c;就是在使用prompt进行交互&#xff0c;用户在对话过程中输入的一切信息都是prompt&#xff08;提示词&#xff09;&#xff0c;当然工业级的prompt与人们通常理解的prompt可能不太一样。下面…

03 最长连续序列

最长连续序列 题解 哈希(O(n)) 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 题解 哈希(O(n)) class Solution { public:int long…

Redis 7 第五讲 事务、管道、发布订阅 过渡篇

事务 理论 可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其它命令插入,不许加塞 一个队列中,一次性、顺序性、排他性的执行一系列命令 Redis事务 VS 关系型数据库事务 单独的隔离操作Redis的事务仅仅是保证事…

taro.js和nutui实现商品选择页面

1. 首先安装 Taro.js 和 NutUI: npm install -g tarojs/cli npm install taro-ui 2. 创建 Taro 项目并进入项目目录&#xff1a; taro init myapp cd myapp 3. 选用 Taro 模板一并安装依赖&#xff1a; npm install 4. 在页面目录中创建商品选择页&#xff1a; taro cre…

JVM运行时数据区

文章目录 JVM内存结构图1、运行时数据区域JDK 1.7JDK 1.81. 线程栈&#xff08;虚拟机栈&#xff09;2. 本地方法栈3. 程序计数器4. 方法区&#xff08;元空间&#xff09;5. 堆6、运行时常量池&#xff08;Runtime Constant Pool&#xff09;7、直接内存&#xff08;Direct Me…

云计算——虚拟化中的网络架构与虚拟网络(文末送书)

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号&#xff1a;网络豆 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a; 网络豆的主页​​​​​ 目录 前期回顾 前言 一.网卡虚拟化 1.网卡虚拟化方法&…

spring websocket demo

一 java依赖 gradle 配置 implementation "org.springframework.boot:spring-boot-starter-websocket" implementation "org.springframework.security:spring-security-messaging" 二 配置WebSocketConfig import org.springframework.beans.factory.a…

基于 vue2 发布 npm包

背景&#xff1a;组件化开发需要&#xff0c;走了一遍发布npm包的过程&#xff0c;采用很简单的模式实现包的发布流程&#xff0c;记录如下。 项目参考&#xff1a;基于vue的时间播放器组件&#xff0c;并发布到npm_timeplay.js_xmy_wh的博客-CSDN博客 1、项目初始化 首先&a…

C语言练习题解析:挑战与突破,开启编程新篇章!(1)

&#x1f493;博客主页&#xff1a;江池俊的博客⏩收录专栏&#xff1a;C语言刷题专栏&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅C语言进阶之路&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐&a…

记录在ubuntu 18.04系统上安装虚拟机的过程

- 下载ubuntu镜像 ubuntu镜像下载地址 我下载的是desktop桌面版&#xff0c;比较好操作。 - 烧录 我用的Mac&#xff0c;使用的是balenaEtcher软件进行磁盘烧录。 balenaEtcher下载地址 如果出现磁盘损坏或者无法再次使用&#xff0c;参考这里解决&#xff1a;进入 - 安…

Vue项目直接报错

最近自己在做一个vue2项目&#xff0c;vue并不熟悉&#xff0c;所以求解&#xff01;&#xff01;&#xff01; 通过命令&#xff1a;vue create app 创建项目&#xff0c;但打开后&#xff0c;浏览器直接报错&#xff0c;意思为&#xff1a;不能在模块外使用import语句(at ho…

多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测

多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测 目录 多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | MATLAB实现SABO-CNN-GRU-Attention多变量时间序列预测。 模型描…

框架分析(5)-Django

框架分析&#xff08;5&#xff09;-Django 专栏介绍Django核心概念以及组件讲解模型&#xff08;Model&#xff09;视图&#xff08;View&#xff09;模板&#xff08;Template&#xff09;路由&#xff08;URLconf&#xff09;表单&#xff08;Form&#xff09;后台管理&…

vue中bus的使用和涉及到的问题

创建一个js文件 import Vue from "Vue" export default new Vue 我们可以直接在要使用的页面中引用使用 import bus from /assets/js/eventBus.js;bus.$emit("info", "123") // 使用bus.$on("info", (val) > { // 接收console.l…

【【萌新的STM32学习20--按键输入实验】】

萌新的STM32学习20–按键输入实验 在了解完蜂鸣器的实验之后我们又进行一个小实验 又是正点原子没有上课讲解的实验 对于这种不平滑的情况我们更多的也会去选择方法进行消除抖动 软件消抖&#xff1a;方法很多&#xff0c;我们例程中使用最简单的延时消抖。检测到按键按下后&…

GitLab启动失败:fail: alertmanager: runsv not running

问题描述 sudo gitlab-ctl restart &#xff0c;报错如下 &#xff1a; summergaoubuntu:/etc/gitlab$ sudo gitlab-ctl start fail: alertmanager: runsv not running fail: gitaly: runsv not running fail: gitlab-exporter: runsv not running fail: gitlab-workhorse: …

Linux 中list.h使用实例和坑

以前都是自己写链表或者所用框架都自带链表操作&#xff0c;本次工作换了框架没有找到框架自带的链表操作&#xff0c;所以尝试使用linux自带的list.h中定义的相关宏和函数写了简单的链表操作&#xff0c;竟然踩坑了&#xff0c;记录一下。 一、list.h简介 list.h一般放在inc…

【JavaWeb 专题】15个最经典的JavaWeb面试题

文章目录 HTTP长连接和短连接HTTP/1.1 与 HTTP/1.0 的区别可扩展性缓存带宽优化长连接消息传递Host 头域错误提示 AjaxAjax 的优势&#xff1a; JSP 和 servlet 有什么区别&#xff1f;定义区别 JSP 的9大内置对象及作用JSP 的 4 种作用域&#xff1f;session 和 cookie 有什么…

ptmalloc源码分析 - 分配区heap_info结构实现(5)

目录 一、heap_info是什么&#xff1f; 二、heap_info结构图 三、new_heap的实现 四、grow_heap的实现 五、shrink_heap的实现 六、delete_heap的实现 一、heap_info是什么&#xff1f; 上一章节《ptmalloc源码分析 - 多线程争抢竞技场Arena的实现&#xff08;04&#xf…