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

mysql的高级查询语句

目录

一、本文前言

二、高效查询方式

1)指定指字段进行查看

2)对字段进行去重查看

3)where条件查询

4)and 和 or 进行逻辑关系的增加

5)查询取值列表中的数据

6)between的引用 

7)like的查询方式 

8)排序方式进行查询

三、运用函数查询 

1)数据库中常用数学的函数

2)聚合函数

3)字符串函数

(1)去除字符 trim 

(2) 截取 substr 

(3)字段拼接 

(4)返回字符长度 length

(5)替换 replace 

四、高级查询语句 

1)GROUP BY(用于分组和汇总) 

(1)汇总统计

(2)汇总并对其指定字段(数字类)进行累加

(3)汇总并对其指定字段(数字类)进行累加,再进行降序 

2)HAVING 过滤

3)别名设置查询

语法格式:

(1)字段别名

​编辑

(2)表别名

4)表的自我连接 

(1)无重复数值排名 

(2)有重复数值排名 

5)子查询语句 

子查询运用升级

6)EXISTS 

格式:

五、表连接查询 

(1) 内连接 inner join 

(2)左连接 left join

(3)右连接 right join 

六、view 视图的运用 

1)视图的创建 

2) 视图提供的后续便捷操作 

3)经典定义问题:视图能否插入数据  

七、UNION 联级 

1)UNION(合并后去重)

2)UNION ALL(合并后不去重) 

八、多种方式求表与表的交集值 

1)联级视图求交集值

2)内连接求交集值  

(1)不去重求交集 

(2)去重求交集

3)使用左连接求交集值

4)使用右连接求交集 

5)使用子查询的方式求交集值 

6)取非交集值 

九、case 条件选择查询语句

十、正则表达式的运用

1)sql正则表达式的常见种类 

2)sql正则运用

探究:空值(NULL)和无值(' ')的区别 


一、本文前言

数据库是用来存储数据,更新,查询数据的工具,而查询数据是一个数据库最为核心的功能,数据库是用来承载信息,而信息是用来分析和查看的。所以掌握更为精细化的查询方式是很有必要的。本文将围绕数据的高级查询语句展开

为了下面查询语句的运用,事先准备了两张表,后续也会根据查询功能的运用会对表进行一些变动,或则创建新表: 

CREATE TABLE info (id int(4) ,name char(4),height double 
) ;CREATE TABLE info2 (name char(4) hobby char(10) date char(10)
) ;

二、高效查询方式

1)指定指字段进行查看

select 字段1,字段2 from 表名;

2)对字段进行去重查看

 SELECT DISTINCT "字段" FROM "表名";

3)where条件查询

 SELECT "字段" FROM 表名" WHERE "条件";

4)and 和 or 进行逻辑关系的增加

SELECT "字段" FROM "表名" WHERE "条件1"  AND "条件2";

 SELECT "字段" FROM "表名" WHERE "条件1"  OR "条件2";

5)查询取值列表中的数据

 SELECT "字段" FROM "表名" WHERE "字段" IN ('值1', '值2', ...);   #in,遍历一个取值列表

6)between的引用 

 SELECT "字段" FROM "表名" WHERE "字段" BETWEEN '值1' AND '值2';

7)like的查询方式 

like查询通常会与通配符配合使用

%:百分号表示零个、一一个或多个字符

 _:划线表示单个字符

select * from info2 where hobby like '%ing';
select * from info2 where name like '小_';

select * from info2 where name like '_刚';select * from info2 where hobby like '%ay%';

8)排序方式进行查询

order by,按关键字排序

注意:

  • 一般对数值字段进行排序
  • 如果对字符类型的字段进行排序,则会按首字母排序
 SELECT "字段" FROM "表名" [WHERE "条件"] ORDER BY "字段" [ASC|DESC] ;#ASC是按照升序进行排序的,是默认的排序方式。#DESC是按降序方式进行排序。
  select * from info  order by height;select * from info  order by height asc;select * from info  order by height desc;

三、运用函数查询 

1)数据库中常用数学的函数

数学函数作用
abs(x)返回x的绝对值
rand()返回0到1的随机数
mod(x, y)返回x除以y以后的余数
power(x, y)返回x的y次方
round(x)返回离x最近的整数
round(x, y)保留x的y位小数四舍五入后的值
sqrt(x)返回x的平方根
truncate(x, y)返回数字x截断为y位小数的值 #不四舍五入
ceil(x)返回大于或等于x的最小整数
floor(x)返回小于或等于x的最大整数
greatest(x1,x2,...)返回集合中最大的值
least(x1,x2,...)返回集合中最小的值
SELECT abs(-1),rand(), mod(5,3) ,power(2,3);

SELECT truncate(1.89,2);
SELECT truncate(1.89,1);

select ceil(1.76);
select floor(1.76);

select greatest(1,2,3,55,12,55,61);
select least(1,2,3,55,12,55,61);

2)聚合函数

聚合函数含义
avg()返回指定列的平均值
count()返回指定列中非 NULL 值的个数
min()返回指定列的最小值
max()返回指定列的最大值
sum(字段)返回指定列的所有值之和
select avg(height) from info;

select count(name) from info;
select count(*) from info;

select max(height) from info;
select min(height) from info;
select sum(height) from info;

3)字符串函数

字符串函数作用
trim()返回去除指定格式的值
concat(x,y)将提供的参数 x 和 y 拼接成一个字符串
substr(x,y)获取从字符串 x 中的第 y 个位置开始的字符串,跟substring()函数作用相同
substr(x,y,z)获取从字符串 x 中的第 y 个位置开始长度为 z 的字符串
length(x)返回字符串 x 的长度
replace(x,y,z)将字符串 z 替代字符串 x 中的字符串 y
upper(x)将字符串 x 的所有字母变成大写字母
lower(x)将字符串 x 的所有字母变成小写字母
left(x,y)返回字符串 x 的前 y 个字符
right(x,y)返回字符串 x 的后 y 个字符
repeat(x,y)将字符串 x 重复 y 次
space(x)返回 x 个空格
strcmp(x,y)比较 x 和 y,返回的值可以为-1,0,1
reverse(x)将字符串 x 反转

(1)去除字符 trim 

 SELECT TRIM ([ [位置] [要移除的字符串] FROM ] 字符串);​#[位置]:值可以为 LEADING (起头), TRAILING (结尾), BOTH (起头及结尾)。 #[要移除的字符串]:从字串的起头、结尾,或起头及结尾移除的字符串。缺省时为空格。
select trim(leading 's' from 'swmming' );
select trim(trailing 'g' from 'swmming' );
select trim(both 'l' from 'lol' );

(2) 截取 substr 

substr(x,y)    #截取x字符串 从第y个开始,截取到末尾substr(x,y,z)  #截取x字符串 从第y个开始截取 ,截取长度为z
select substr(hobby,2) from info2;
select substr(hobby,3) from info2;

 select substr(hobby,2,5) from info2;select substr(hobby,4,6) from info2;

(3)字段拼接 

① concat(x,y)

select concat(name,height) from info;

② 使用 || 符号

 #将info表中,name字段值和height字段值拼接在一起。select name || height from info;

 #将info表中,name字段值和height字段值拼接在一起,且中间加空格。select name || ' ' || height from info;

(4)返回字符长度 length

 select length(hobby) from info2;

(5)替换 replace 

select replace(name,'小','大') from info2;

四、高级查询语句 

1)GROUP BY(用于分组和汇总) 

对GROUPBY后面的字段的查询结果进行汇总分组,通常是结合聚合函数一起使用的

  • "GROUP BY"有一个原则,凡是在"GROUP BY"后面出现的字段,必须在SELECT 后面出现
  • 凡是在SELECT 后面出现的、且未在聚合函数中出现的字段,必须出现在"GROUP BY"后面

(1)汇总统计

select name, count(name) from info group by name;

(2)汇总并对其指定字段(数字类)进行累加

select name,sum(saving) from info3 group by name;

(3)汇总并对其指定字段(数字类)进行累加,再进行降序 

select name,sum(saving) from info3 group by name order by sum(saving) desc;

2)HAVING 过滤

  • 用来过滤由"GROUP BY"语句返回的记录集,通常与"GROUP BY"语句联合使用
  • HAVING语句的存在弥补了WHERE 关键字不能与聚合函数联合使用的不足
  • where只能对原表中的字段进行筛选,不能对group by后的结果进行筛选
 SELECT 字段1,SUM(字段2) FROM "表格名" GROUP BY 字段1 HAVING(函数条件) ;
select name,sum(saving) from info3 group by name having sum(saving)>1500;

3)别名设置查询

语法格式:

 SELECT 字段1,字段2 AS 字段2的别名 from 表名;   #AS可以省略不写

(1)字段别名

select name,sum(saving) as total_saving  from info3  group by name having sum(saving)>1000;
select name,sum(saving) as total_saving  from info3  group by name having total_saving>1000;

(2)表别名

SELECT 表格别名.字段1 [AS] 字段别名  FROM 表格名 [AS] 表格别名; #AS可以省略不写

4)表的自我连接 

(1)无重复数值排名 

对下面的表进行saving比较并且进行排名通过表的自我连接进行实现

 表的自我连接达到排名的原理分析及操作思路:

  1. 以上面的数据表为例,假设共有四个人,他们手中的金额各不相同。我们已经进行表的自我连接
  2. 使用count计数,只计数大于等于自身手上金额的人数,比如2000的小明,大于等于他的人数只有1个,就计数值也可以当作他的排名
  3. 再比如800的小红,大于等于她的有4个人,就该计数值为4,同理可以证明她排名第四
select A.name,A.saving,count(A.saving) as rank from info3 as A,info3 as B where A.saving <=B.saving group by A.name,A.saving  order by rank asc;

(2)有重复数值排名 

新需求表:

select A.name,A.saving,count(A.saving) as rank from info3 as A,info3 as B where A.saving < B.saving or (A.name=B.nameme and A.saving=B.saving) group by A.name,A.saving  order by rank asc;

5)子查询语句 

子查询:连接表格,在WHERE 子句或HAVING 子句中插入另一个SQL语句

 SELECT "字段1" FROM "表格1" WHERE "字段2" [比较运算符]     #外查询(SELECT "字段1" FROM "表格2" WHERE "条件") ;              #内查询

普通的表数据连接: 

select * from info as A, info3 as B where A.name=B.name;

子查询加入表连接 : 

select * from info where name in(select name from info3 where saving > 1000);

子查询运用升级

求“北京地区”的所有saving值之和

select sum(saving) from info3   where name in (select name from info  where address='北京');

6)EXISTS 

  • 用来测试内查询有没有产生任何结果,类似布尔值是否为真。
  • 如果内查询有结果的话,系统就会执行外查询中的SQL语句。若是没有结果的话,那整个SQL语句就不会产生任何结果

格式:

 SELECT "字段1" FROM "表格1" WHERE EXISTS (SELECT * FROM "表格2" WHERE "条件");

五、表连接查询 

MYSQL数据库中常用的表连接有三种: 

  • inner join(内连接):只返回两个表中联结字段相等的行(有交集的值

  • left join(左连接):返回包括左表中的所有记录和右表中联结字段相等的记录
  • A  left  join  B  : A为左表,B为右表

  • right join(右连接):返回包括右表中的所有记录和左表中联结字段相等的记
  • A  right join  B:  A为左表 ,B为右表

(1) 内连接 inner join 

select * from info A inner join info3 B on A.name = B.name;

其他实现内连接的方式:

 select * from info A, info3 B where A.name=B.name;select * from info A inner join info3 B using(name);

(2)左连接 left join

select * from info A LEFT JOIN info3 B on A.name=B.name;

(3)右连接 right join 

select * from info3 A right join info B on A.name=B.name ;

六、view 视图的运用 

视图:可以被当作是虚拟表或存储查询

  • 视图跟表格的不同是,表格中有实际储存数据记录,而视图是建立在表格之上的一个架构,它本身并不实际储存数据记录
  • 临时表在用户退出或同数据库的连接断开后就自动消失了,而视图不会消失
  • 视图不含有数据,只存储它的定义,它的用途一般可以简化复杂的查询。 比如你要对几个表进行连接查询,而且还要进行统计排序等操作,写SQL语句会很麻烦的,用视图将几个表联结起来,然后对这个视图进行查询操作,就和对一个表查询一样,很方便

格式:

CREATE VIEW "视图表名" AS "SELECT 语句";   #创建视图表​
DROP VIEW "视图表名";                     #删除视图表

1)视图的创建 

创建需求:独立创建一个视图,用来统计info和info3 两张表之间,先对name进行address的汇总,再计算地区的saving之和 。要求体现出address  和sum(sving) 两个字段

create view v_address_saving as select A.address,sum(B.saving) total_saving from info A inner join info3 B on A.name=B.name group by address;

视图创建的数据验证:

2) 视图提供的后续便捷操作 

视图的好处:创建视图的过程虽然和高级查询语句(通过两个select语句进行组合条件划分生成派生表)一样,过程是复杂的,但是如果该查询操作是需要经常使用的,创建视图就很有必要,不仅能简化查询过程,还能对该查询进行进一步操作,而且十分简便

进一步需求: 需要计算出苏州和上海两个地区的saving之和

select sum(total_saving) as suzhou_shanghai_saving from v_address_saving where address='苏州'or address='上海';

3)经典定义问题:视图能否插入数据  

视图能否插入数据,要看情况而定: 

(1)如果视图表是两个表的连接查询(比如视图的A字段来自A表,B字段来自B表,数据是无法插入的)。因为表结构和原表不一致。视图中的字段是根据原表中某个字段,通过函数运算,产生的新字段,而没有真正能够存储的字段,所以该数据是无法插入的

(2)如果视图表结构与原表保持一致,数据是可以插入的,插入的数据是存储在原表中,视图所更新出的数据,其实是映射原表的数据

show create view  分析创建视图的过程:  

七、UNION 联级 

UNION联集:将两个SQL语句的结果合并起来,两个SQL语句所产生的字段需要是同样的数据记录种类

1)UNION(合并后去重)

生成结果的数据记录值将没有重复,且按照字段的顺序进行排序。#合并后去重

格式:[select 语句1] UNION [select 语句2];

select name from info union select name from  info3;

2)UNION ALL(合并后不去重) 

select name from info union all select name from  info3;

八、多种方式求表与表的交集值 

1)联级视图求交集值

create view v_info as select distinct name from info union all select distinct name from info3;​
select name,count(*) from v_info group by name;​select name from v_info group by name having count(*) >1;

2)内连接求交集值  

(1)不去重求交集 

select A.name from info A inner join info3 B on A.name=B.name;​
select A.name from info A inner join info3 B using(name);

(2)去重求交集

select distinct A.name from info A inner join info3 B using(name);

3)使用左连接求交集值

select * from info A left join info3 B using(name);
select distinct A.name from info A left join info3 B using(name) where B.name is not null;

4)使用右连接求交集 

 #使用右连接查出store_name字段的交集值,之后去重select * from info A right join info3 B using(name);select distinct A.name from info A right join info3 B using(name) where A.name is not null;​或select distinct A.name from info A right join info3 B on A.name=B.name where A.name is not null;

5)使用子查询的方式求交集值 

select distinct name from info where name in (select name from info3);

6)取非交集值 

(1)联级方法中 count(*)<=1

  (2)左右内连接  将is not null  改为  is  null

(3)子查询 外连接查询 not in (内连接查询)

九、case 条件选择查询语句

 SELECT CASE ("字段名")WHEN "条件1" THEN "结果1"WHEN "条件2" THEN "结果2"[ELSE "结果N"]ENDFROM "表名";# "条件"可以是一个数值或是公式。ELSE子句则并不是必须的。
mysql> select address,case address-> when '上海' then height-10-> when '北京' then height+5-> else height+10-> end-> "new_height",name-> from info;

十、正则表达式的运用

1)sql正则表达式的常见种类 

正则符号作用
^匹配文本的开始字符
$匹配文本的结束字符
.匹配任何单个字符
*匹配零个或多个在它前面的字符
+匹配前面的字符 1 次或多次
字符串匹配包含指定的字符串
l或,“|”前面的不成立时,就匹配后面的字符串
[...]匹配字符集合中的任意一个字符
[^...]匹配不在括号中的任何字符
{n}匹配前面的字符串 n 次
{n,m}匹配前面的字符串至少 n 次,至多m 次

2)sql正则运用

格式:

select "字段" from "表名" where "字段" regexp '正则表达式';

探究:空值(NULL)和无值(' ')的区别 

无值的长度为0,不占用空间;而NULL值的长度是NULL,是占用空间的

IS NULL或者IS NOT NULL,是用来判断字段是不是为NULL或者不是NULL,不能查出是不是无值的

无值的判断使用=' '或者< >' '来处理。<>代表不等于

在通过 count ()指定字段统计有多少行数时,如果遇到NULL值会自动忽略掉,遇到无值会加入到记录中进行计算

相关文章:

mysql的高级查询语句

目录 一、本文前言 二、高效查询方式 1&#xff09;指定指字段进行查看 2&#xff09;对字段进行去重查看 3&#xff09;where条件查询 4&#xff09;and 和 or 进行逻辑关系的增加 5&#xff09;查询取值列表中的数据 6&#xff09;between的引用 7&#xff09;like…...

04-8_Qt 5.9 C++开发指南_QTableWidget的使用

文章目录 1. QTableWidget概述2. 源码2.1 可视化UI设计2.2 程序框架2.3 qwintspindelegate.h2.4 qwintspindelegate.cpp2.5 mainwindow.h2.6 mainwindow.cpp 1. QTableWidget概述 QTableWidget是Qt中的表格组件类。在窗体上放置一个QTableWidget 组件后,可以在 PropertyEditor…...

《golang设计模式》第二部分·结构型模式-01-适配器模式(Adapter)

文章目录 1. 概念1.1 角色1.2 应用场景1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 示例类图 1. 概念 定义一个适配器&#xff0c;帮助原本不能实现接口的类“实现”该接口 1.1 角色 目标&#xff08;Target&#xff09;&#xff1a;客户端调用的目标接口 被适配者&#xff08…...

机器学习概述及其主要算法

目录 1、什么是机器学习 2、数据集 2.1、结构 3、算法分类 4、算法简介 4.1、K-近邻算法 4.2、贝叶斯分类 4.3、决策树和随机森林 4.4、逻辑回归 4.5、神经网络 4.6、线性回归 4.7、岭回归 4.8、K-means 5、机器学习开发流程 6、学习框架 1、什么是机器学习 机器…...

识jvm堆栈中一个数据类型是否为为引用类型,目前虚拟机实现中是如何做的?

调用栈里的引用类型数据是GC的根集合&#xff08;root set&#xff09;的重要组成部分&#xff1b;找出栈上的引用是GC的根枚举&#xff08;root enumeration&#xff09;中不可或缺的一环。 要看JVM选择用什么方式。通常这个选择会影响到GC的实现。 如果JVM选择不记录任何这种…...

Bug合集

这里会收藏后面所遇到的bug并附上具有参考的意义的博客&#xff0c;会持续更新 Java 1、SpringBoot升级2.6.0以上后&#xff0c;Swagger出现版本不兼容报错。 Failed to start bean ‘documentationPluginsBootstrapper‘&#xff1b; nested exception is java.lang.NullPo…...

linux下.run安装脚本制作

1、安装文件(install.sh) PS: .run安装包内部执行脚本文件 2、资源文件(test.zip) PS: 待安装程序源文件 3、制作.run脚本(install.run) cat install.sh test.zip > install.run chmod ax install.run...

面试热题(翻转k个链表)

给你链表的头节点 head &#xff0c;每 k 个节点一组进行翻转&#xff0c;请你返回修改后的链表。 k 是一个正整数&#xff0c;它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍&#xff0c;那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值&a…...

前端面试的性能优化部分(4)每天10个小知识点

目录 系列文章目录前端面试的性能优化部分&#xff08;1&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;2&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;3&#xff09;每天10个小知识点前端面试的性能优化部分&#xff08;4&#xff09;每天…...

el-checkbox修改选中和未选中的值

由于在checkbox选中的时候&#xff0c;默认的是为true和false。 后端定义的绑定字段不是为布尔值&#xff0c;而是为0&#xff0c;1 解决办法 <el-checkbox v-model"model.status" :true-label"1" :false-label"0"> </el-checkbox>…...

完整版:TCP、UDP报文格式

目录 TCP报文格式 报文格式 报文示例 UDP报文格式 报文格式 报文示例 TCP报文格式 报文格式 图1 TCP首部格式 字段长度含义Source Port16比特源端口&#xff0c;标识哪个应用程序发送。Destination Port16比特目的端口&#xff0c;标识哪个应用程序接收。Sequence Numb…...

如何远程连接云服务器oracle数据库

要远程连接云服务器上的Oracle数据库&#xff0c;可以按照以下步骤进行操作&#xff1a; 1. 确保你的云服务器已经安装了Oracle数据库&#xff0c;并且启动了数据库服务。 2. 登录到云服务器的操作系统。可以使用SSH工具(如PuTTY)连接到云服务器&#xff0c;使用管理员权限登录…...

“深入剖析JVM内部机制:探秘Java虚拟机的运行原理“

标题&#xff1a;深入剖析JVM内部机制&#xff1a;探秘Java虚拟机的运行原理 摘要&#xff1a;本文将深入剖析Java虚拟机&#xff08;JVM&#xff09;的内部机制&#xff0c;探秘其运行原理。我们将从JVM的结构、内存管理、垃圾回收、即时编译等方面展开讨论&#xff0c;并通过…...

尚品汇总结十:秒杀模块(面试专用)

1、需求分析 所谓“秒杀”&#xff0c;就是商家发布一些超低价格的商品&#xff0c;所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉&#xff0c;往往一上架就被抢购一空&#xff0c;有时只用一秒钟。 秒…...

什么是设计模式?

目录 概述: 什么是模式&#xff01;&#xff01; 为什么学习模式&#xff01;&#xff01; 模式和框架的比较&#xff1a; 设计模式研究的历史 关于pattern的历史 Gang of Four(GoF) 关于”Design”Pattern” 重提&#xff1a;指导模式设计的三个概念 1.重用(reuse)…...

Node.js |(三)Node.js API:path模块及Node.js 模块化 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;path模块&#x1f4da;Node.js模块化&#x1f407;介绍&#x1f407;模块暴露数据⭐️模块初体验⭐️暴露数据 &#x1f407;导入文件模块&#x1f407;导入文件夹的…...

Netty自定义编码解码器

上次通信的时候用的是自带的编解码器&#xff0c;今天自己实现一下自定义的。 1、自定义一下协议 //协议类 Data public class Protocol<T> implements Serializable {private Long id System.currentTimeMillis();private short msgType;// 假设1为请求 2为响应privat…...

HOperatorSet.OpenFramegrabber “GigEVision“

HOperatorSet.OpenFramegrabber "GigEVision"访问失败 直接跳出 但其他算子可以访问 重装halcon x86...

图的遍历DFSBFS-有向图无向图

西江月・证明 即得易见平凡&#xff0c;仿照上例显然。留作习题答案略&#xff0c;读者自证不难。 反之亦然同理&#xff0c;推论自然成立。略去过程Q.E.D.&#xff0c;由上可知证毕。 有向图的遍历可以使用深度优先搜索&#xff08;DFS&#xff09;和广度优先搜索&#xff08…...

【NLP】深入浅出全面回顾注意力机制

深入浅出全面回顾注意力机制 1. 注意力机制概述2. 举个例子&#xff1a;使用PyTorch带注意力机制的Encoder-Decoder模型3. Transformer架构回顾3.1 Transformer的顶层设计3.2 Encoder与Decoder的输入3.3 高并发长记忆的实现self-attention的矩阵计算形式多头注意力&#xff08;…...

Linux应用编程的read函数和Linux驱动编程的read函数的区别

Linux应用编程的read函数用于从文件描述符&#xff08;文件、管道、套接字等&#xff09;中读取数据。它的原型如下&#xff1a; ssize_t read(int fd, void *buf, size_t count);其中&#xff0c;fd参数是文件描述符&#xff0c;buf是用于存储读取数据的缓冲区&#xff0c;co…...

Kubernetes(K8s)从入门到精通系列之十:使用 kubeadm 创建一个高可用 etcd 集群

Kubernetes K8s从入门到精通系列之十&#xff1a;使用 kubeadm 创建一个高可用 etcd 集群 一、etcd高可用拓扑选项1.堆叠&#xff08;Stacked&#xff09;etcd 拓扑2.外部 etcd 拓扑 二、准备工作三、建立集群1.将 kubelet 配置为 etcd 的服务管理器。2.为 kubeadm 创建配置文件…...

使用动态规划实现错排问题-2023年全国青少年信息素养大赛Python复赛真题精选

[导读]&#xff1a;超平老师计划推出《全国青少年信息素养大赛Python编程真题解析》50讲&#xff0c;这是超平老师解读Python编程挑战赛真题系列的第15讲。 全国青少年信息素养大赛&#xff08;原全国青少年电子信息智能创新大赛&#xff09;是“世界机器人大会青少年机器人设…...

大规模向量检索库Faiss学习总结记录

因为最近要使用到faiss来做检索和查询&#xff0c;所以这里只好抽出点时间来学习下&#xff0c;本文主要是自己最近学习的记录&#xff0c;来源于网络资料查询总结&#xff0c;仅用作个人学习总结记录。 Faiss的全称是Facebook AI Similarity Search&#xff0c;是FaceBook的A…...

SpringCloudAlibaba之Sentinel(一)流控篇

前言&#xff1a; 为什么使用Sentinel&#xff0c;这是一个高可用组件&#xff0c;为了使我们的微服务高可用而生 我们的服务会因为什么被打垮&#xff1f; 一&#xff0c;流量激增 缓存未预热&#xff0c;线程池被占满 &#xff0c;无法响应 二&#xff0c;被其他服务拖…...

哪种模式ip更适合你的爬虫项目?

作为一名爬虫程序员&#xff0c;对于数据的采集和抓取有着浓厚的兴趣。当谈到爬虫ip时&#xff0c;你可能会听说过两种常见的爬虫ip类型&#xff1a;Socks5爬虫ip和HTTP爬虫ip。但到底哪一种在你的爬虫项目中更适合呢&#xff1f;本文将帮助你进行比较和选择。 首先&#xff0c…...

优维低代码实践:对接数据

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…...

docker 离线模式-部署容器

有网络的情况下下载需要的镜像 比如(下面以tomcat为例子&#xff0c;其他镜像类似) docker pull tomcat打包镜像文件到本地 docker save tomcat -o tomcat.tar将tomcat.tar 上传到内网服务器&#xff08;无外网环境&#xff09; 导入镜像 docker load -i tomcat.tar创建容器…...

MDN-HTTP

参考资料 文章目录 HTTP简介HTTP 和 HTTPSHTTP消息典型的HTTP会话HTTP响应状态HTTP安全HTTP CookieHTTP压缩 HTTP简介 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在计算机网络中传输超文本和其他资源的应用层协议。他是互联网的基础协议之一&#x…...

【数据库】PostgreSQL中使用`SELECT DISTINCT`和`SUBSTRING`函数实现去重查询

在PostgreSQL中&#xff0c;我们可以使用SELECT DISTINCT和SUBSTRING函数来实现对某个字段进行去重查询。本文将介绍如何使用这两个函数来实现对resource_version字段的去重查询。 1. SELECT DISTINCT语句 SELECT DISTINCT语句用于从表中选择不重复的记录。如果没有指定列名&…...

东坝地区网站建设/近两年成功的网络营销案例

Context提供了一种跨组件访问数据的方法。它无需在组件树间逐层传递属性&#xff0c;也可以方便的访问其他组件的数据 在经典的React应用中&#xff0c;数据是父组件通过props向子组件传递的。但是在某些特定场合&#xff0c;有些数据需要在各个组件之间共享。 Context 为我们…...

广州制作网站公司/宁波seo外包费用

【回复“1024”&#xff0c;送你一个特别推送】在 Google I/O 2018 开发者大会上&#xff0c;谷歌官方推出了 Android Jetpack&#xff0c;其中包含的 Android 开发架构组件能够帮助我们简化开发流程&#xff0c;从而轻松打造出优质应用。开发者能够利用 Jetpack 组件学习最佳实…...

网站的色调/hao123网址大全浏览器设为主页

commit规范 git commit 时候需要输入一个message&#xff0c;该message用于描述当前commit。一个恰当的commit可以让大家清晰的了解这次commit的内容。 git commit message submitting format: <type>[<scope>]:<subject> //need placeholder a newline if…...

wordpress 建站赚钱/百度云搜索引擎官方入口

说明&#xff1a; next(n)表示&#xff1a;命令是next&#xff0c;n是缩写&#xff1b;b表示break;i b表示info break;cond表示condition;r表示run;s表示step;c表示continue&#xff1b;p表示print&#xff1b;bt表示backtrack命令与参数之间有一个空格 调试运行环境相关命令 …...

网站建设丿找vx cp5173/ seo won

数据库是数据的仓库&#xff0c;用于存储数据&#xff0c;而存储数据需要媒介&#xff0c;现在的存储媒介&#xff0c;最常用的是硬盘&#xff0c;土豪一点的服务器使用固态硬盘&#xff08;SSD&#xff09;&#xff0c;特殊用途的服务器使用内存。数据库最常用的存储文件是数据…...

兰溪高端网站建设公司/百度官方电话号码

本实用新型为一种双快锁体&#xff0c;具体涉及锁具领域。背景技术&#xff1a;门锁广泛地被应用于生活中&#xff0c;尤其是随着人们安全意识的提高&#xff0c;对门锁的安全性和使用的便捷性的要求也越来越高。现在的锁体类型多样&#xff0c;但是材质上会选用便宜的材料&…...