【MYSQL中级篇】数据库数据查询学习

🍁博主简介
🏅云计算领域优质创作者
🏅华为云开发者社区专家博主
🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
相关文章
| 文章名 | 文章地址 |
|---|---|
| 【MYSQL初级篇】入门学习【增删改查-库表数据】 | https://liucy.blog.csdn.net/article/details/128396592 |
| 【MYSQL中级篇】数据库数据查询学习 | https://liucy.blog.csdn.net/article/details/128717294 |
MYSQL中级篇学习目录
- 相关文章
- 前言
- 排序查询
- 分组查询
- 去重查询
- 聚合函数
- 比较运算符查询
- 逻辑运算符查询
- 模糊查询
- 范围查询
- 空判断查询
- 多表联查
- 两表联查内连接
- 两表联查左连接
- 两表联查右连接
- 全连接: union或union all
前言
没有安装mysql的,大家可参考【 Centos7安装Mysql5.7(超详细版)】、【【云原生】Docker之创建并进入mysql容器】 两种方式任选其一来安装;
SQL语句
- DDL 数据定义语言 create drop alter
- DML 数据操纵语言 update delete insert
- DQL 数据查询语言 select
- DCL 数据控制语言 grant revoke
排序查询
- desc 降序
- asc 升序
- limit 1 取第一行
mysql order by排序默认为升序(从小到大)
#排序;默认为升序
select * from 表名 order by id;(根据id排序)#取行数
select * from 表名 limit 偏移量,行数;
#根据score排序,默认为升序
select * from student order by score;#根据id排序,升序(从小到大)
select * from student order by id asc;#根据score排序,降序(从大到小)
select * from student order by score desc;#偏移量为2,取5行;(取第3行到第7行)
select * from student limit 2,5;

分组查询
select * from 表名 group by 字段;
#按分数打包分组(打包相同的分数)
select * from student group by score;
如遇到以下报错,可了解 https://blog.csdn.net/weixin_44013783/article/details/119422353、https://blog.csdn.net/W_317/article/details/116723943

去重查询
select distinct 字段 from 表名;
#去除相同的分数
select distinct score from student;
select distinct score as '分数' from student;

聚合函数
- max() 最大值
select max(字段) from 表名;
#查找最高的分数,显示姓名和分数
select name as '姓名',max(score) as '分数' from student;+----+-------+
| 姓名 | 分数 |
+----+-------+
| 老六 | 125 |
+----+-------+
- min() 最小值
select min(字段) from 表名;
#查找最底的分数,显示姓名、性别、年龄、分数;
select name as '姓名',sex as '性别',age as '年龄',min(score) as '分数' from student;+-----+----+-----+-------+
| 姓名 | 性别 | 年龄 | 分数 |
+-----+----+-----+-------+
| 王五 | 男 | 15 | 100 |
+-----+----+-----+-------+
- sum() 和
select sum(字段) from 表名;
#查询班级的总分
select sum(score) as '班级总分' from student;+---------+
| 班级总分 |
+---------+
| 1546 |
+---------+
- count() 统计
select count(字段) from 表名;
#统计班级有多少个人
select count(*) as '班级总人数' from student;+----------+
| 班级总人数 |
+----------+
| 13 |
+----------+
- avg() 平均数
select avg(字段) from 表名;
#计算班级总分的平均分
select avg(score) as '班级平均分' from student;+----------+
| 班级平均分 |
+----------+
| 118.9231 |
+----------+
综合:
#统计班级的总人数、总分及平均分
select count(*) as '班级总人数',sum(score) as '班级总分',avg(score) as '班级平均分' from student;+---------+----------+----------+
| 班级总人数 | 班级总分 | 班级平均分 |
+---------+----------+----------+
| 13 | 1546 | 118.9231 |
+---------+----------+----------+
- with rollup 对聚合结果进行汇总
使用 with rollup,此函数是对聚合函数进行求和,注意 with rollup是对 group by 后的第一个字段,进行分组求和。
#按分数分组,并计算出各组人数、总分、平均分,在做全部统计
select count(*),sum(score),avg(score) from student group by score with rollup;
select count(*) as '各组人数',sum(score) as '各组总分',avg(score) as '各组平均分' from student group by score with rollup;+---------+---------+----------+
| 各组人数 | 各组总分 | 各组平均分 |
+---------+---------+----------+
| 2 | 246 | 123.0000 |
| 3 | 360 | 120.0000 |
| 2 | 242 | 121.0000 |
| 2 | 200 | 100.0000 |
| 2 | 248 | 124.0000 |
| 2 | 250 | 125.0000 |
| 13 | 1546 | 118.9231 |
+---------+---------+----------+
- having 对于聚合后的结果进行过滤,如果逻辑允许,多用where
#查询分数小于120的人
select * from student having score<120;

- where 用于聚合前,having用于聚合后。
#查询性别为女的人
select * from student where sex='女';

比较运算符查询
- 等于: =
#查询性别是男的学生
select * from student where sex='男';

- 大于: >
#查询年龄大于15的学生
select * from student where age>15;

- 大于等于: >=
#查询年龄大于等于15的学生
select * from student where age>=15;

- 小于: <
#查询分数小于122的学生
select * from student where score<122;

- 小于等于: <=
#查询分数小于等于122的学生
select * from student where score<=122;

- 不等于: != 或 <>
#查询学生性别不是男生的
select * from student where sex!='男';

#查询学生性别不是女生的
select * from student where sex<>'女';

逻辑运算符查询
- and 和,要同时符合这两个条件或多个条件;
#查询学生分数高于122的男同学
select * from student where score>122 and sex='男';

- or 或,满足其中一个条件即可,两者都有则都输出;
#查询年龄大于18或小于20的学生
select * from student where age>18 or age<20;

- not 不,不要指定条件的数据;
#查询分数不在120到123的学生
select * from student where not (score>=120 and score<=123);

多个条件判断想要作为一个整体的时候,可以使用()。
模糊查询
新增3条模糊查询要用到的数据
insert into student values (null,'张九','男',15,7.12,'北京市朝阳区某小区1号楼1单元103','zhangjiu@163.com',16839217282,122);
insert into student values (null,'张时嘉','女',17,12.12,'北京市朝阳区某小区1号楼1单元102','zhangsj@163.com',13307189235,124.5),(null,'张时依','女',17,12.12,'北京市朝阳区某小区1号楼1单元102','zhangsy@163.com',13307189236,125);
-
like是模糊查询关键字
-
%表示任意多个任意字符
-
_表示一个任意字符
例1:查询姓张的学生都有谁
#查询姓张的学生都有谁
select name from student where name like "张%";

例2:查询姓张的两个字的学生都有谁
#查询姓张的两个字的学生都有谁
select * from student where name like "张_";

例3:查询三个字的学生都有谁
#查询三个字的学生都有谁
select * from student where name like "___";

例4:查询手机号以16开头的学生
#查询手机号以16开头的学生
select * from student where iphone like "16%";

例5:查询姓老的或是名字中带时的都有谁
#查询姓老的或是名字中带时的都有谁
select * from student where name like "老%" or name like "%时%";

范围查询
- between … and … 表示在一个连续的范围内查询
- in 表示在一个非连续的范围内查询
例1:查询生日6月01日到9月31日的学生
#查询生日6月01日到9月31日的学生
select * from student where birthday between "6.01"and"9.31";

例2:查询地址为1单元103到109之间的男同学
#查询地址为1单元103到109之间的男同学
select * from student where (address between "北京市朝阳区某小区1号楼1单元103"and"北京市朝阳区某小区1号楼1单元109") and sex='男';

例3:查询id为1和22的两个学生
#查询id为1和22的两个学生
select * from student where id in(1,22);

IN 列表项不仅支持数字,也支持字符甚至时间日期类型等,并且可以将这些不同类型的数据项混合排列而无须跟 column 的类型保持一致:
一个 IN 只能对一个字段进行范围比对,如果要指定更多字段,可以使用 AND 或 OR 逻辑运算符:
使用 AND 或 OR 逻辑运算符后,IN 还可以和其他如 LIKE、>=、= 等运算符一起使用。
空判断查询
- 判断为空使用: is null
- 判断非空使用: is not null
#查询邮件是空的学生
select * from student where email is null;
#查询邮件不是空的学生
select * from student where email is not null;
不能使用 where height = null 判断为空
不能使用 where height != null 判断非空
null 不等于 空字符串
多表联查
新增一个表
create table body (id int(3) ZEROFILL PRIMARY KEY AUTO_INCREMENT comment'id',name varchar(255) not null comment'姓名',height varchar(255) comment'身高',weight varchar(255) not null comment'体重',heartbeat int comment'心跳/每分钟')comment='学生身体表';
新增数据
insert into body values (null,'张三','177.2','140.4',99),(null,'李四','180','149.2',80),(null,'王五','167.9','141',80),(null,'老六','173','128',77),(null,'小七','159.5','90.8',89),(null,'老八','169.9','145.2',78),(null,'张九','169','120.5',82),(null,'张时嘉','168','83',79),(null,'张时依','168.3','83.4',82);
两表联查内连接
两表联查必须加上where 表1 id=表2 id,否则查询出来会有很多重复的数据,你写了几个字段,就会查询到多少字段的重复数据;
内连接格式:A inner join B on 条件
例子:
select * from A inner join B on 条件;
select * from A inner join B on 条件 where 条件;
select * from A inner join B on 条件 where 条件 having 条件;
select * from A inner join B on 条件 order by 字段;
select * from A inner join B on 条件 where 条件 order by 字段;
select * from A inner join B on 条件 where 条件 having 条件 order by 字段;
例1:查询student表姓名、性别、年龄,body表身高、体重、心跳;
#两表联查:查询student表姓名、性别、年龄,body表身高、体重、心跳;
select student.name as '姓名',student.sex as '性别',student.age as '年龄',body.height as '身高',body.weight as '体重',body.heartbeat as '心跳/每分钟' from student,body where student.id=body.id;#别名两表联查:查询student表姓名、性别、年龄,body表身高、体重、心跳;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟' from student a,body b where a.id=b.id;

例2:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的学生;
#别名两表联查:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的学生;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a,body b where a.id=b.id having score>=122;

例3:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生;
#别名两表联查内连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a inner join body b on a.id=b.id where score>=122 having sex='女';

例4:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生且从大到小排序;
#别名两表联查内连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生且从大到小排序;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a inner join body b on a.id=b.id where score>=122 having sex='女' order by score desc;

两表联查左连接
两表联查必须加上where 表1 id=表2 id,否则查询出来会有很多重复的数据,你写了几个字段,就会查询到多少字段的重复数据;
内连接格式:A left join B on 条件
例子:
select * from A left join B on 条件;
select * from A left join B on 条件 where 条件;
select * from A left join B on 条件 where 条件 having 条件;
select * from A left join B on 条件 order by 字段;
select * from A left join B on 条件 where 条件 order by 字段;
select * from A left join B on 条件 where 条件 having 条件 order by 字段;
例1:查询student表姓名、性别、年龄,body表身高;
#别名两表联查左连接:查询student表姓名、性别、年龄,body表身高;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高' from student a left join body b on a.id=b.id;

例2:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的学生;
#别名两表联查左连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的学生;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a left join body b on a.id=b.id where score>=122;

例3:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生;
#别名两表联查左连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a left join body b on a.id=b.id where score>=122 having sex='女';

例4:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生且从大到小排序;
#别名两表联查左连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生且从大到小排序;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a left join body b on a.id=b.id where score>=122 having sex='女' order by score desc;

两表联查右连接
两表联查必须加上where 表1 id=表2 id,否则查询出来会有很多重复的数据,你写了几个字段,就会查询到多少字段的重复数据;
内连接格式:A right join B on 条件
例子:
select * from A right join B on 条件;
select * from A right join B on 条件 where 条件;
select * from A right join B on 条件 where 条件 having 条件;
select * from A right join B on 条件 order by 字段;
select * from A right join B on 条件 where 条件 order by 字段;
select * from A right join B on 条件 where 条件 having 条件 order by 字段;
例1:查询student表姓名、性别、年龄,body表身高;
#别名两表联查右连接:查询student表姓名、性别、年龄,body表身高;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高' from student a right join body b on a.id=b.id;

例2:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的学生;
#别名两表联查右连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的学生;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a right join body b on a.id=b.id where score>=122;

例3:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生;
#别名两表联查右连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a right join body b on a.id=b.id where score>=122 having sex='女';

例4:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生且从大到小排序;
#别名两表联查右连接:查询student表姓名、性别、年龄、分数,body表身高、体重、心跳,并只显示成绩大于等于122的女学生且从大到小排序;
select a.name as '姓名',a.sex as '性别',a.age as '年龄',b.height as '身高',b.weight as '体重',b.heartbeat as '心跳/每分钟',a.score as '分数' from student a right join body b on a.id=b.id where score>=122 having sex='女' order by score desc;

全连接: union或union all
注意:
1.两张表的数据数量必须相同
2.全连接内使用order by 没有效果,可以对连接后的结果进行排序;
3.union会合并相同的数据;
select * from 表1 union all select * from 表2;
select * from student1 union all select * from student2;
相关文章:
【MYSQL中级篇】数据库数据查询学习
🍁博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 相关文章 文章名文章地址【MYSQL初级篇】入门…...
华为OD机试真题JAVA实现【火星文计算】真题+解题思路+代码(20222023)
🔥系列专栏 华为OD机试(JAVA)真题目录汇总华为OD机试(Python)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出描述示例一输入输出说明解题思路核心知识点Code运行结果版...
Linux基础知识
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
Linux 游戏性能谁的 更优秀X.Org还是Wayland!
导读X.Org 和 Wayland 是目前 Linux 平台上的两大主流显示服务器,那么两者在 Linux 游戏性能上谁更优秀呢?国外科技媒体 Phoronix 在 Ubuntu 22.10 上对其进行了多款游戏的实测。评测在运行 GNOME 43.1 的 Ubuntu 22.10 上进行测试,在安装英伟…...
【数据结构】算法的复杂度分析:让你拥有未卜先知的能力
👑专栏内容:数据结构⛪个人主页:子夜的星的主页💕座右铭:日拱一卒,功不唐捐 文章目录一、前言二、时间复杂度1、定义2、大O的渐进表示法3、常见的时间复杂度三、空间复杂度1、定义2、常见的空间复杂度一、前…...
Linux根文件系统移植
目录 一、根文件系统 1.1根文件系统 1.2根文件系统内容 二、根文件系统移植 2.1BusyBox 2.2BusyBox的获取 2.3BusyBox的使用 2.4make menuconfig 2.5编译和安装 2.6修改根文件系统 一、根文件系统 1.1根文件系统 根文件系统是内核启动后挂载的第一个文件系统系统引…...
Three.js 无限平面快速教程【Plane】
Three.js 提供了 Plane 概念来表示在 3d 空间中无限延伸的二维表面。 这对于光标交互很有用,因此你可能需要了解如何设置此平面、将其可视化并根据需要进行调整。 推荐:使用 NSDT场景设计器 快速搭建 3D场景。 Three.js 的 Plane 文档很好而且准确&…...
在线预览PDF文件、图片,并且预览地址不显示文件或图片的真实路径。
实现在线预览PDF文件、图片,并且预览地址不显示文件或图片的真实路径。1、vue使用blob流在线预览PDF、图片(包括jpg、png等格式)。1、按钮的方法:2、方法详细:(此方法可以在发起请求时携带token,…...
Allegro如何设置导入Subdrawing可自由选择目录操作指导
Allegro如何设置导入Subdrawing可自由选择目录操作指导 用Allgro做PCB设计的时候,导入Subdrawing是非常常用的功能,在导入Subdrawing的时候,通常需要把Subdrawing文件放在需要导入PCB的相同目录下,不能自由选择,如下图 但是Allegro是支持自由选择目录的,只需按照下方的步…...
SpirngMVC执行原理--自学版
DispatcherServlet表示前置控制器,是整个SpringMVC的控制中心,用户发出请求,DispatcherServlet接收请求并拦截请求HandlerMapper为处理器映射。DispatcherServlet调用。HandlerMapping根据请求url查找HandlerHandlerExecution表示具体的Handl…...
获取savemodel的输入输出节点
saved_model_cli show --dir savemodels --all 结果: MetaGraphDef with tag-set: ‘serve’ contains the following SignatureDefs: signature_def[‘translation_signature’]: The given SavedModel SignatureDef contains the following input(s): inputs[‘i…...
《Learning to Reconstruct Botanical Trees from Single Images》学习从单幅图像重建植物树
读书报告下载https://download.csdn.net/download/weixin_43042683/87448211论文原文https://dl.acm.org/doi/10.1145/3478513.3480525论文视频https://www.bilibili.com/video/BV1cb4y127Vp/?fromseopage&vd_source5212838c127b01db69dcc8b2d27ca5171引言植物存在在室外与…...
vant 4 正式发布,支持暗黑主题,那么是如何实现的呢
2022年10月25日首发于掘金,现在同步到公众号。11. 前言大家好,我是若川。我倾力持续组织了一年多源码共读,感兴趣的可以加我微信 lxchuan12 参与。另外,想学源码,极力推荐关注我写的专栏《学习源码整体架构系列》&…...
MySQL的复制 二
复制是MySQL的一项功能,使服务器能够将更改从一个实例恢复到另一个实例 主服务器(master)将所有数据和结构更改记录到二进制日志中。二进制日志格式是基于语句的、基于行的和混合的。 从属服务器(slave)从主服务器请求…...
秒杀项目之秒杀商品展示及商品秒杀
目录前言一、登录方式调整二、生成秒杀订单2.1 绑定秒杀商品2.2 查看秒杀商品2.3 订单秒杀2.3.1 移除seata相关(方便测压)2.3.2 生成秒杀订单2.3.3 前端页面秒杀测试注意前言 博主博客用到的资源都会同步分享到资源包中 一、登录方式调整 第1步…...
教育行业需要什么样的数字产品?
数字化转型的浪潮已经席卷了各行各业,不仅出现在互联网、电商、建筑等行业,还应用在了教育行业。数字化的教育ERP软件能够在满足学校需求的基础上,帮助学校完善各类工作流程,提高工作效率。 对于一个拥有多个校区,上万…...
Spring MVC
一、Spring MVC介绍 a. Spring MVC是一个Web框架 b. Spring MVC是基于Servlet API构成的 MVC 是 Model View Controller 的缩写。 MVC 是⼀种思想,⽽ Spring MVC 是对 MVC 思想的具体实现。 学习Spring MVC目标: a.连接功能:将用户ÿ…...
类与对象(上)
类与对象(上) 1.面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间…...
正确安装 torch_geometric库
step1: 查看pytorchcuda 版本 torch-scatter torch-sparse torch-cluster torch-spline-conv 这些关联包要与torch版本匹配。 import torch print(torch.__version__) print(torch.cuda.is_available()) torch.version.cuda或者 pip list查看版本 step2ÿ…...
【Unity VR开发】结合VRTK4.0:自身移动(滑动)
语录: 依山傍水房树间,行也安然,住也安然; 一条耕牛半顷田,收也凭天,荒也凭天; 雨过天晴驾小船,鱼在一边,酒在一边; 夜晚妻子话灯前,今也谈谈…...
国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/
使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题:docker pull 失败 网络不同,需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
stm32进入Infinite_Loop原因(因为有系统中断函数未自定义实现)
这是系统中断服务程序的默认处理汇编函数,如果我们没有定义实现某个中断函数,那么当stm32产生了该中断时,就会默认跑这里来了,所以我们打开了什么中断,一定要记得实现对应的系统中断函数,否则会进来一直循环…...
python基础语法Ⅰ
python基础语法Ⅰ 常量和表达式变量是什么变量的语法1.定义变量使用变量 变量的类型1.整数2.浮点数(小数)3.字符串4.布尔5.其他 动态类型特征注释注释是什么注释的语法1.行注释2.文档字符串 注释的规范 常量和表达式 我们可以把python当作一个计算器,来进行一些算术…...
解密鸿蒙系统的隐私护城河:从权限动态管控到生物数据加密的全链路防护
摘要 本文以健康管理应用为例,展示鸿蒙系统如何通过细粒度权限控制、动态权限授予、数据隔离和加密存储四大核心机制,实现复杂场景下的用户隐私保护。我们将通过完整的权限请求流程和敏感数据处理代码,演示鸿蒙系统如何平衡功能需求与隐私安…...
