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

【MySQL】_5.MySQL的联合查询

目录

1. 笛卡尔积

2. 内连接

2.1 示例1:查询许仙同学的成绩

2.2 示例2: 查询所有同学的总成绩,及同学的个人信息

2.3 示例3:查询所有同学的科目及各科成绩,及同学的个人信息

3. 外连接

3.1 情况一:两个表数据一一对应

3.2 情况二:两个表数据并非一一对应

4. 自连接

5. 子查询(嵌套查询)

5.1 子查询分类

5.2 单行子查询示例1:查询不想毕业同学的同班同学

5.3 多行子查询示例2:查询语文或英语课程的信息成绩

6. 合并查询

6.1 示例1:查询id=3或者名字为英文的课程


联合查询也称为多表查询,是将多个表联合到一起进行查询;

1. 笛卡尔积

笛卡尔积是联合查询的基础,笛卡尔积其实就是一种排列组合,把两张表的记录尽可能地排列组合出n种情况:

以两张表:班级表与学生表为例,计算这两个表的笛卡尔积:

笛卡尔积就是得到了一张更大的表,其列数为两个表列数之和,行数为两个表列数之积;

试在testdemo1数据库下创建以下表:

mysql> show tables;
+---------------------+
| Tables_in_testdemo1 |
+---------------------+
| classes             |
| course              |
| score               |
| student             |
+---------------------+
4 rows in set (0.00 sec)

 表的结构与内容分别为:

(1)student表:

mysql> desc student;
+------------+-------------+------+-----+---------+----------------+
| Field      | Type        | Null | Key | Default | Extra          |
+------------+-------------+------+-----+---------+----------------+
| id         | int(11)     | NO   | PRI | NULL    | auto_increment |
| sn         | varchar(20) | YES  |     | NULL    |                |
| name       | varchar(20) | YES  |     | NULL    |                |
| qq_mail    | varchar(20) | YES  |     | NULL    |                |
| classes_id | int(11)     | YES  |     | NULL    |                |
+------------+-------------+------+-----+---------+----------------+
5 rows in set (0.00 sec)mysql> select* from student;
+----+-------+------------+------------------+------------+
| id | sn    | name       | qq_mail          | classes_id |
+----+-------+------------+------------------+------------+
|  1 | 09982 | 黑旋风李逵 | xuanfeng@qq.com  |          1 |
|  2 | 00835 | 菩提老祖   | NULL             |          1 |
|  3 | 00391 | 白素贞     | NULL             |          1 |
|  4 | 00031 | 许仙       | xuxian@qq.com    |          1 |
|  5 | 00054 | 不想毕业   | NULL             |          1 |
|  6 | 51234 | 好好说话   | say@qq.com       |          2 |
|  7 | 83223 | tellme     | NULL             |          2 |
|  8 | 09527 | 老外学中文 | foreigner@qq.com |          2 |
+----+-------+------------+------------------+------------+
8 rows in set (0.00 sec)

(2)classes表:

mysql> desc classes;
+-------+--------------+------+-----+---------+----------------+
| Field | Type         | Null | Key | Default | Extra          |
+-------+--------------+------+-----+---------+----------------+
| id    | int(11)      | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20)  | YES  |     | NULL    |                |
| desc  | varchar(100) | YES  |     | NULL    |                |
+-------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)mysql> select* from classes;
+----+-------------------+-----------------------------------------------+
| id | name              | desc                                          |
+----+-------------------+-----------------------------------------------+
|  1 | 计算机系2019级1班 | 学习了计算机原理、C和Java语言、数据结构和算法 |
|  2 | 中文系2019级3班   | 学习了中国传统文学                            |
|  3 | 自动化2019级5班   | 学习了机械自动化                              |
+----+-------------------+-----------------------------------------------+
3 rows in set (0.00 sec)

(3)course表:

mysql> desc course;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)mysql> select* from course;
+----+--------------+
| id | name         |
+----+--------------+
|  1 | Java         |
|  2 | 中国传统文化 |
|  3 | 计算机原理   |
|  4 | 语文         |
|  5 | 高阶数学     |
|  6 | 英文         |
+----+--------------+
6 rows in set (0.00 sec)

(4)score表: 

mysql> desc score;
+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| score      | decimal(3,1) | YES  |     | NULL    |       |
| student_id | int(11)      | YES  |     | NULL    |       |
| course_id  | int(11)      | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)mysql> select* from score;
+-------+------------+-----------+
| score | student_id | course_id |
+-------+------------+-----------+
|  70.5 |          1 |         1 |
|  98.5 |          1 |         3 |
|  33.0 |          1 |         5 |
|  98.0 |          1 |         6 |
|  60.0 |          2 |         1 |
|  59.5 |          2 |         5 |
|  33.0 |          3 |         1 |
|  68.0 |          3 |         3 |
|  99.0 |          3 |         5 |
|  67.0 |          4 |         1 |
|  23.0 |          4 |         3 |
|  56.0 |          4 |         5 |
|  72.0 |          4 |         6 |
|  81.0 |          5 |         1 |
|  37.0 |          5 |         5 |
|  56.0 |          6 |         2 |
|  43.0 |          6 |         4 |
|  79.0 |          6 |         6 |
|  80.0 |          7 |         2 |
|  92.0 |          7 |         6 |
+-------+------------+-----------+
20 rows in set (0.00 sec)

在该数据库中四张表,三个实体:学生、班级、课程;

其中学生和班级是一对多关系,学生和课程是多对多关系(成绩表是关联表),班级和课程之间没有直接的关联关系;

2. 内连接

内连接表示语法有两种:

第一种:

select [列名],[列名]... form [表1],[表2] where 条件;

第二种:

select [列名],[列名] from [表1] join [表2] on 条件;

2.1 示例1:查询许仙同学的成绩

(“许仙”是名字在student表中,“成绩”在score表中,位于不同的表中,需要进行联合查询)

将student表与score表进行笛卡尔积——>删去无效数据——>按照许仙名字来筛选——>必要时对结果进行精简;

(1)计算student表和score表的笛卡尔积: 

mysql> select* from student,score;

(2)根据两个表的关联列是否对应,删去无效数据: 

mysql> select* from student, score where id = student_id;

注:当联合查询的关联列名重名时,可以使用表名.列名进行指定,即上文SQL指令也可以写为:

mysql> select* from student, score where student.id =  score.student_id;

在实际开发中,更建议采用这种写法,避免当表多列多的情况下产生混淆; 

(3)根据名字,筛选出许仙同学的成绩:

mysql> select* from student, score where student.id=score.student_id and student.name = "许仙";

此时查询结果为:

+----+-------+------+---------------+------------+-------+------------+-----------+
| id | sn    | name | qq_mail       | classes_id | score | student_id | course_id |
+----+-------+------+---------------+------------+-------+------------+-----------+
|  4 | 00031 | 许仙 | xuxian@qq.com |          1 |  67.0 |          4 |         1 |
|  4 | 00031 | 许仙 | xuxian@qq.com |          1 |  23.0 |          4 |         3 |
|  4 | 00031 | 许仙 | xuxian@qq.com |          1 |  56.0 |          4 |         5 |
|  4 | 00031 | 许仙 | xuxian@qq.com |          1 |  72.0 |          4 |         6 |
+----+-------+------+---------------+------------+-------+------------+-----------+

 (4)对查询结果进行精简,查询指令与最终查询结果为:

mysql> select student.name, score.course_id, score.score from student, score-> where student.id = score.student_id and student.name = "许仙";
+------+-----------+-------+
| name | course_id | score |
+------+-----------+-------+
| 许仙 |         1 |  67.0 |
| 许仙 |         3 |  23.0 |
| 许仙 |         5 |  56.0 |
| 许仙 |         6 |  72.0 |
+------+-----------+-------+
4 rows in set (0.00 sec)

注:计算笛卡尔积即其筛选方式有两种:

第一种:

select* from [表名],[表名] where [条件];

 第二种:

select* from [表名] join [表名] on [条件]; 

故而上文的SQL语句也可以写为:

mysql> select student.name, score.course_id, score.score from-> student join score-> on student.id = score.student_id and student.name="许仙";

2.2 示例2: 查询所有同学的总成绩,及同学的个人信息

(查询信息关系到学生表与成绩表)

将student表和score表进行笛卡尔积计算——>根据联合列学生id删去无效信息——>根据学生name或id进行分组并根据分组情况对score进行求和

(1)将student表和score表进行笛卡尔积计算并对无效信息进行删除:

mysql> select* from student,score where student.id = score.student_id;

(2)根据学生id进行分组,根据分组使用聚合函数sum进行聚合计算总成绩:

mysql> select student.name, sum(score.score)from student,score where student.id = score.student_id group by id;
+------------+------------------+
| name       | sum(score.score) |
+------------+------------------+
| 黑旋风李逵 |            300.0 |
| 菩提老祖   |            119.5 |
| 白素贞     |            200.0 |
| 许仙       |            218.0 |
| 不想毕业   |            118.0 |
| 好好说话   |            178.0 |
| tellme     |            172.0 |
+------------+------------------+
7 rows in set (0.00 sec)

2.3 示例3:查询所有同学的科目及各科成绩,及同学的个人信息

 (同学姓名在student表中,科目信息在course表中,各科成绩在score表中)

mysql> select student.name, course.name, score.score-> from student, course, score-> where student.id = score.student_id-> and score.course_id = course.id;
+------------+--------------+-------+
| name       | name         | score |
+------------+--------------+-------+
| 黑旋风李逵 | Java         |  70.5 |
| 黑旋风李逵 | 计算机原理   |  98.5 |
| 黑旋风李逵 | 高阶数学     |  33.0 |
| 黑旋风李逵 | 英文         |  98.0 |
| 菩提老祖   | Java         |  60.0 |
| 菩提老祖   | 高阶数学     |  59.5 |
| 白素贞     | Java         |  33.0 |
| 白素贞     | 计算机原理   |  68.0 |
| 白素贞     | 高阶数学     |  99.0 |
| 许仙       | Java         |  67.0 |
| 许仙       | 计算机原理   |  23.0 |
| 许仙       | 高阶数学     |  56.0 |
| 许仙       | 英文         |  72.0 |
| 不想毕业   | Java         |  81.0 |
| 不想毕业   | 高阶数学     |  37.0 |
| 好好说话   | 中国传统文化 |  56.0 |
| 好好说话   | 语文         |  43.0 |
| 好好说话   | 英文         |  79.0 |
| tellme     | 中国传统文化 |  80.0 |
| tellme     | 英文         |  92.0 |
+------------+--------------+-------+
20 rows in set (0.00 sec)

3. 外连接

内连接与外连接都是进行笛卡尔积计算,但是细节之处仍有差别:

3.1 情况一:两个表数据一一对应

基于以下数据库与表:

mysql> select* from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
|    2 | 李四 |
|    3 | 王五 |
+------+------+
3 rows in set (0.00 sec)mysql> select* from score;
+------------+-------+
| student_id | score |
+------------+-------+
|          1 |    90 |
|          2 |    80 |
|          3 |    70 |
+------------+-------+
3 rows in set (0.00 sec)

内连接指令为:

mysql> select name, score from student join score on student.id = score.student_id;

左外连接指令为:

mysql> select name, score from student left join score on student.id = score.student_id;

右外连接指令为:

mysql> select name, score from student left join score on student.id = score.student_id;

 以上三条指令的查询结果均为:

+------+-------+
| name | score |
+------+-------+
| 张三 |    90 |
| 李四 |    80 |
| 王五 |    70 |
+------+-------+

即:当两个表的数据一一对应(即两个表的记录在彼此表中都有体现)时,内连接与外连接的查询结果是相同的

3.2 情况二:两个表数据并非一一对应

基于以下数据库和表:

mysql> select* from student;
+------+------+
| id   | name |
+------+------+
|    1 | 张三 |
|    2 | 李四 |
|    3 | 王五 |
+------+------+
3 rows in set (0.00 sec)mysql> select* from score;
+------------+-------+
| student_id | score |
+------------+-------+
|          1 |    90 |
|          2 |    80 |
|          4 |    70 |
+------------+-------+
3 rows in set (0.00 sec)

内连接指令与查询结果为:

mysql> select name, score from student join score on student.id = score.student_id;
+------+-------+
| name | score |
+------+-------+
| 张三 |    90 |
| 李四 |    80 |
+------+-------+
2 rows in set (0.00 sec)

左外连接指令与查询结果为:

mysql> select name, score from student left join score on student.id = score.student_id;
+------+-------+
| name | score |
+------+-------+
| 张三 |    90 |
| 李四 |    80 |
| 王五 |  NULL |
+------+-------+
3 rows in set (0.00 sec)

右外连接指令与查询结果为:

mysql> select name, score from student right join score on student.id = score.student_id;
+------+-------+
| name | score |
+------+-------+
| 张三 |    90 |
| 李四 |    80 |
| NULL |    70 |
+------+-------+
3 rows in set (0.00 sec)

即:当两个表的数据并非一一对应时,内连接只显示两个表中都有体现的数据

注:(1)当两个表数据并非一一对应,进行外连接时,左外连接是以左表为准,右表没有对应的数据,则以空值填充

右外连接是以右表为准,左表没有对应数据,以空值填充;

(2)join on针对多个表进行的语句为:

select* form 表1 join 表2 on 条件1 join 表4 on 条件2,如:

mysql> select* from student join score on student.id = score.student_id-> join course on course.id =score.course_id;

但是每次join on 语句都只计算两个表的笛卡尔积; 

4. 自连接

        自连接是表自身与自身做笛卡尔积,在SQL中进行条件查询,都是指定某一列或多个列之间进行关系运算,无法进行行与行之间的运算,在某些情况下需要对行与行之间进行关系运算,就要使用到自连接。自连接的本质是将行转为列

示例:显示所有“课程id为3”比“课程id为1”成绩高的成绩信息:

(成绩信息在score表中)

(1)对score进行自连接(别名求笛卡尔积)并删除无效信息:

mysql> select* from score as s1, score as s2 where s1.student_id = s2.student_id;

(2)选出第一列id=1的课程与第二列id=3的课程:

mysql> select* from score as s1, score as s2-> where s1.student_id = s2.student_id-> and s1.course_id = 1-> and s2.course_id = 3;

(该结果表示有三个同学同时选修了这两门课程)

(3)增加左列成绩小于右列成绩条件,SQL指令与查询结果为:

mysql> select* from score as s1,score as s2-> where s1.student_id = s2.student_id-> and s1.course_id = 1-> and s2.course_id = 3-> and s1.score < s2.score;
+-------+------------+-----------+-------+------------+-----------+
| score | student_id | course_id | score | student_id | course_id |
+-------+------------+-----------+-------+------------+-----------+
|  70.5 |          1 |         1 |  98.5 |          1 |         3 |
|  33.0 |          3 |         1 |  68.0 |          3 |         3 |
+-------+------------+-----------+-------+------------+-----------+
2 rows in set (0.00 sec)

注:(1)不能直接进行自连接:

mysql> select* from score,score;
ERROR 1066 (42000): Not unique table/alias: 'score'

需要为表指定两个别名,即:

mysql> select* from score as s1, score as s2;

5. 子查询(嵌套查询)

子查询是指嵌入其他SQL语句中的select语句,即将多个查询语句合并为一个语句;

5.1 子查询分类

(1)单行子查询:查询结果只有一条记录;

(2)多行子查询:查询结果为多条记录;

5.2 单行子查询示例1:查询不想毕业同学的同班同学

(1)分步查询SQL指令及查询结果为:

mysql> select classes_id from student where name="不想毕业";
+------------+
| classes_id |
+------------+
|          1 |
+------------+
1 row in set (0.00 sec)mysql> select name from student where classes_id =1;
+------------+
| name       |
+------------+
| 黑旋风李逵 |
| 菩提老祖   |
| 白素贞     |
| 许仙       |
| 不想毕业   |
+------------+
5 rows in set (0.00 sec)

(2)子查询SQL指令及查询结果为:

mysql> select name from student where classes_id = (select classes_id from student where name="不想毕业");
+------------+
| name       |
+------------+
| 黑旋风李逵 |
| 菩提老祖   |
| 白素贞     |
| 许仙       |
| 不想毕业   |
+------------+
5 rows in set (0.00 sec)

即将条件查询的某一个值替换为一个select查询语句;

5.3 多行子查询示例2:查询语文或英语课程的信息成绩

先查询出两个课程的课程id,再根据course_id在score表中查询;

(1)分步查询SQL指令及查询结果为:

mysql> select id from course where name="语文" or name="英文";
+----+
| id |
+----+
|  4 |
|  6 |
+----+
2 rows in set (0.00 sec)mysql> select* from score where course_id in(4,6);
+-------+------------+-----------+
| score | student_id | course_id |
+-------+------------+-----------+
|  98.0 |          1 |         6 |
|  72.0 |          4 |         6 |
|  43.0 |          6 |         4 |
|  79.0 |          6 |         6 |
|  92.0 |          7 |         6 |
+-------+------------+-----------+
5 rows in set (0.00 sec)

(2)子查询SQL指令及查询结果为:

mysql> select* from score where course_id in(select id from course where name="语文" or name="英文");
+-------+------------+-----------+
| score | student_id | course_id |
+-------+------------+-----------+
|  98.0 |          1 |         6 |
|  72.0 |          4 |         6 |
|  43.0 |          6 |         4 |
|  79.0 |          6 |         6 |
|  92.0 |          7 |         6 |
+-------+------------+-----------+
5 rows in set (0.00 sec)

6. 合并查询

合并查询就是将两个查询语句的结果合并到一起;

6.1 示例1:查询id=3或者名字为英文的课程

(1)使用逻辑或实现查询:

mysql> select* from course where id<3 or name="英文";
+----+--------------+
| id | name         |
+----+--------------+
|  1 | Java         |
|  2 | 中国传统文化 |
|  6 | 英文         |
+----+--------------+
3 rows in set (0.00 sec)

(2)使用union关键字进行合并查询:

mysql> select* from course where id<3 union select* from course where name="英文";
+----+--------------+
| id | name         |
+----+--------------+
|  1 | Java         |
|  2 | 中国传统文化 |
|  6 | 英文         |
+----+--------------+
3 rows in set (0.00 sec)

注:(1)union与逻辑或的区别:

逻辑或只能对一张表的查询结果进行合并,但union可以对多张表的查询结果进行合并(要求多个结果的列须对应)

(2)union与union all的区别:

使用union关键字对多个查询结果进行合并时会自动去重,但unionall不会去重

相关文章:

【MySQL】_5.MySQL的联合查询

目录 1. 笛卡尔积 2. 内连接 2.1 示例1&#xff1a;查询许仙同学的成绩 2.2 示例2&#xff1a; 查询所有同学的总成绩&#xff0c;及同学的个人信息 2.3 示例3&#xff1a;查询所有同学的科目及各科成绩&#xff0c;及同学的个人信息 3. 外连接 3.1 情况一&#xff1a;两…...

【后端面经】微服务构架 (1-3) | 熔断:熔断-恢复-熔断-恢复,抖来抖去怎么办?

文章目录 一、前置知识1、什么是熔断?2、什么是限流?3、什么是降级?4、怎么判断微服务出现了问题?A、指标有哪些?B、阈值如何选择?C、超过阈值之后,要不要持续一段时间才触发熔断?5、服务恢复正常二、面试环节1、面试准备2、面试基本思路三、总结 在微服务构架中…...

对UITextField输入内容的各种限制-总结

使用代理方法来限制输入框中的字数&#xff0c;输入的符号&#xff0c;输入的数字大小等各种限制 限制输入字数 已经有小数点了&#xff0c;就不能继续输入小数点 不能输入以0为开头的内容 不能输入以.为开头的内容 小数点后只允许输入一位数 只能输入100以下的数值 **不能包括…...

【图论】二分图

二分图&#xff0c;即可以将图中的所有顶点分层两个点集&#xff0c;每个点集内部没有边 判定图为二分图的充要条件&#xff1a;有向连通图不含奇数环 1、染色法 可以解决二分图判断的问题 步骤与基本思路 遍历图中每一个点&#xff0c;若该点未被染色&#xff0c;则遍历该…...

数据结构——(一)绪论

&#x1f449;数据元素整体思维导图 欢迎补充 一、基本概念❤️ 1.1基本术语⭐️ &#xff08;1&#xff09;数据 客观事务属性的数字、字符。 &#xff08;2&#xff09;数据元素 数据元素是数据的基本单位&#xff0c;一个数据元素可由若干数据项组成&#xff0c;数据项是…...

[ 华为云 ] 云计算中Region、VPC、AZ 是什么,他们又是什么关系,应该如何抉择

前几天看到一个问答帖&#xff0c;我回答完了才发现这个帖子居然是去年的也没人回复&#xff0c;其中他问了一些华为云的问题&#xff0c;对于其中的一些概念&#xff0c;这里来总结讲解一下&#xff0c;希望对学习华为云的小伙伴有所帮助。 文章目录 区域&#xff08;Region&a…...

表单验证:输入的字符串以回车分隔并验证是否有

公司项目开发时&#xff0c;有一个需求&#xff0c;需要对输入的字符串按回车分隔并验证是否有重复项&#xff0c;效果如下&#xff1a; 表单代码&#xff1a; <el-form-item label"IP地址条目&#xff1a;" prop"ipAddressEntry"><el-inputtype&…...

智能财务分析-亿发财务报表管理系统,赋能中小企业财务数字化转型

对于许多中小企业来说&#xff0c;企业重要部门往往是财务和业务部门。业务负责创收&#xff0c;财务负责控制成本&#xff0c;降低税收风险。但因管理机制和公司运行制度的原因&#xff0c;中小企业往往面临着业务与财务割裂的问题&#xff0c;财务数据不清晰&#xff0c;无法…...

图为科技T501赋能工业机器人 革新传统工业流程

工业机器人已成为一个国家制造技术与科技水平的重要衡量标准&#xff0c;在2019年&#xff0c;中国工业机器人的组装量与产量均位居了全球首位。 当前&#xff0c;工业机器人被广泛用于电子、物流、化工等多个领域之中&#xff0c;是一种通过电子科技和机械关节制作出来的智能机…...

安全狗深度参与编写的《云原生安全配置基线规范》正式发布!

7月25日&#xff0c;由中国信息通信研究院、中国通信标准化协会主办的2023可信云大会在北京顺利开幕。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;成立于2013年&#xff0c…...

如何在3ds max中创建可用于真人场景的巨型机器人:第 2 部分

推荐&#xff1a; NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建主体 步骤 1 打开 3ds Max。选择机器人头部后&#xff0c;二次单击鼠标并选择隐藏未选中。机器人的其他部分 除了头部之外&#xff0c;将被隐藏。 打开 3ds Max 步骤 2 在人脸选择模式下&#x…...

Vue中TodoList案例_编辑

nextTick: MyItem.vue 加一个编辑按钮&#xff0c;input框&#xff1a;blur失去焦点时触发事件handleBlur&#xff0c;ref获取真实dom&#xff1a; <inputtype"text"v-show"todo.isEdit":value"todo.title"blur"handleBlur(todo,$even…...

什么是Redis?

什么是Redis 什么是Redis一、特性1. 支持多种数据结构2. 读/写速度快&#xff0c;性能高。3. 支持持久化。4. 实现高可用主从复制&#xff0c;主节点做数据副本。5. 实现分布式集群和高可用。 二、基本数据类型string&#xff08;字符串&#xff09;list(双向链表)set(集合)zse…...

深入浅出理解vue2/vue3响应式原理

一、简介 当谈论Vue 2和Vue 3的响应式原理时&#xff0c;我们主要关注的是其数据双向绑定的机制。数据双向绑定是指当数据发生变化时&#xff0c;视图会自动更新&#xff1b;反之&#xff0c;当视图发生变化时&#xff0c;数据也会相应地更新。这种特性让我们在前端开发中更加…...

ssh连接服务器配置

平常每次都是 ssh root111.111.111.111 然后再输入密码 很事麻烦 总结 首先本地生成密钥和公钥 ssh-keygen -t rsa -C "XXX" ~/.ssh id_rsa.pub 将公钥加入远程服务器中的authorized_keys中 用户可以手动编辑该文件&#xff0c;把公钥粘贴进去&#xff0c;也可…...

el-table 表头设置渐变色

<el-table :data"tableData" stripe><el-table-column prop"name" label"测试" align"left"></el-table-column><el-table-column prop"code" label"测试1" align"left"></…...

GB/T 25000.51解读——软件产品的易用性怎么测?

GB/T 25000.51-2016《软件产品质量要求和测试细则》是申请软件检测CNAS认可一定会用到的一部国家标准。在前面的文章中&#xff0c;我们为大家整体介绍了GB/T 25000.51-2016《软件产品质量要求和测试细则》国家标准的结构和所涵盖的内容以及对软件产品的八大质量特性中的功能性…...

408复试day2(7大排序算法)

数据结构 7大排序算法总结&#xff1a; 首先排序分为内排序和外排序&#xff1a; 内排序是指待排序的记录放置在内存&#xff0c;而外排序是指排序的过程中需要对内存进行访问。其中稳定的排序有“插冒归”&#xff0c;即插入排序、冒泡排序、归并排序。 1.冒泡排序 算法原理&a…...

Vue消息订阅与发布

引入第三方库pubsub.js: npm i pubsub-js Student.vue import pubsub from pubsub-jsmethods:{sendStudentName(){// this.$bus.$emit(hello,this.name)pubsub.publish(hello,666)}}, School.vue import pubsub from pubsub-jsmounted() {// console.log("school&quo…...

MySQL学习笔记 ------ 分组查询

#进阶5&#xff1a;分组查询 /* 语法&#xff1a; select 分组函数&#xff0c;列&#xff08;要求出现在group by的后面&#xff09; from 表 【where 筛选条件】 group by 分组的列表 【order by 排序的字段】; 注意&#xff1a;查询列表必须特殊&#xff0c;要求是分组函…...

Matlab 点云平面特征提取

文章目录 一、简介二、实现代码2.1基于k个邻近点2.2基于邻近半径参考资料一、简介 点云中存在这各种各样的几何特征,这里基于每个点的邻域协方差来获取该点的所具有的基础几何特征(如下图所示),这样的做法虽然不能很好的提取出点云中的各个部分,但却是可以作为一种数据预处…...

vite的介绍

Vite&#xff08;法语意为 "快速的"&#xff0c;发音 /vit/&#xff0c;发音同 "veet")是一种新型前端构建工具 优势 &#x1f4a1; 极速的服务启动&#xff0c;使用原生 ESM 文件&#xff0c;无需打包 ⚡️ 轻量快速的热重载&#xff0c;始终极快的模块…...

裁员 10%,暴跌 14%,这家 IT 独角兽正在被抛弃!

流量一跌再跌&#xff0c;Stack Overflow 简直被狠狠地上了一课&#xff01; 3 月份 Stack Overflow 的流量下降了近 14%。该公司的 CEO 压力空前&#xff0c;甚至昨天决定裁员 10%&#xff01; 平均每月下降6%&#xff0c;上月直接跌了近14% 开发人员越来越多地从 AI 聊天机器…...

电脑记事本在哪里?电脑桌面显示记事本要怎么设置?

绝大多数上班族在使用电脑办公时&#xff0c;都需要随手记录一些琐碎或重要的事情&#xff0c;例如工作注意事项、常用的文案、某项工作的具体要求、多个平台的账号和密码等。于是就有不少小伙伴想要使用电脑记事本软件来记录&#xff0c;那么电脑记事本在哪里呢&#xff1f;想…...

微服务笔记---Nacos集群搭建

微服务笔记---Nacos集群搭建 Nacos集群搭建1.集群结构图2.搭建集群2.1.初始化数据库2.2.下载nacos2.3.配置Nacos2.4.启动2.5.nginx反向代理2.6.优化 Nacos集群搭建 1.集群结构图 官方给出的Nacos集群图&#xff1a; 其中包含3个nacos节点&#xff0c;然后一个负载均衡器代理…...

python 小案例

要使用Django开发一个抽奖活动的后台&#xff0c;需要进行以下步骤&#xff1a; 安装Django&#xff1a;首先确保已经安装了Python和pip&#xff0c;然后使用pip安装Django库&#xff1a; pip install django 创建Django项目&#xff1a;在命令行中执行以下命令创建一个新的Dja…...

【SpringBoot】SpringBoot JPA 基础操作(CURD)

SpringData JPA 基本介绍 Spirng data jpa是spring提供的一套简化JPA开发的框架&#xff0c;按照约定好的【方法命名规则】写dao层接口&#xff0c;就可以在不写接口实现的情况下&#xff0c;实现对数据库的访问和操作。 同时提供了很多除了CRUD之外的功能&#xff0c;如分页…...

大数据技术之Hive3

目录标题 5、DML 数据操作5.1 数据导入5.1.1 向表中装载数据load5.1.2 通过查询语句向表中插入数据insert5.1.3 查询语句中创建表并加载数据5.1.4 创建表时通过 Location 指定加载数据路径 5.2 数据导出5.2.1 insert导出5.2.2 Hadoop 命令导出到本地 5.3 清除表中数据(Truncate…...

Spring Boot实践二

一、模板引擎简介 在之前的示例中&#xff0c;我们通过RestController来处理请求&#xff1a; package com.example.demospringboot.web;import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping;Re…...

python:基于GeoPandas和GeoViews库将GEDI激光高程数据映射到交互式地图

作者:CSDN @ _养乐多_ 本文将介绍 GEDI(Global Ecosystem Dynamics Investigation)激光雷达数据某数据点波形数据提取,并绘制图表,添加其他图表元素并使图表具有交互性。 在本文中,我们将探索如何打开、读取和处理GEDI数据,并利用地理信息处理库GeoPandas和地理空间数…...