看一眼Mysql查询语句


目录

🛻 查询数据

🛻基本查询语句

🛻单表查询

🚕查询所有字段

🚕查询指定字段

🚕查询指定记录

🚕带in关键字的查询

🚕带between and的范围查询

🚕带like的字符匹配查询

🚕查询空值

🚕带and的多条件查询

🚕带or的多条件查询

🚕查询结果不重复

🚕对查询结果排序

🛻单列排序

🛻多列排序

🛻指定排序方向

🚕分组查询

🛻聚合函数查询

🚕count()函数

🚕sum()函数

🚕avg()函数

🚕max()函数


MySQL 数据库基本查询
Mysql基本查询

 查询数据

      数据库管理系统的一个最重要的功能就是数据查询,数据查询不应只是简单查询数据库中存储的数据,还应该根据需要对数据进行筛选,以及确定数据以什么样的格式显示。MySQL提供了功能强大、灵活的语句来实现这 些操作

基本查询语句

mysql 从数据表中查询数据的基本语句为 select 语句。 select 语句的基本格式是:
SELECT {* | < 字段列表 >} [ FROM < 1>, < 2>.... [ where < 表达式 > ] [ group by ] [ having ] [ order by
<..> ] [ limit <...> ]
{*|<字段列表>} 包含星号通配符选择字段列表,表示查询的字段,其中字段列至少包含一个字段名称,如果要查询多个字段,多个字段之间用逗号隔开,最后一个字段后不要加逗号。
FROM < 1>,< 2>... :表 1 和表 2 表示查询数据的来源,可以是单个或多个。
WHERE子句是可选项 ,如果选择该项,将限定查询必须满足的查询条件。
GROUP BY<字段> ,该子句告诉 MySQL 按什么样的顺序显示查询出来的数据,可以进行的排序有:升序 (asc )、降序( desc )。
[limit], 该子句告诉 mysql 每次显示查询出来的数据条款。

创建表:
mysql> create table fruits-> (-> f_id char(10) not null,->  s_id int not null,->  f_name char(255) not null,->  f_price decimal(8,2) not null,->  primary key(f_id)->  );

添加内容:

mysql> insert into fruits(f_id,s_id,f_name,f_price)-> values('a1',101,'apple','5.2'),->  ('b1',101,'blackberry','10.2'),->  ('bs1',102,'orange','11.2'),->  ('bs2',105,'melon','8.2'),->  ('t1',102,'banana','10.3'),->  ('t2',102,'grape','5.3'),->  ('o2',103,'coconut','9.2'),->  ('c0',101,'cherry','3.2'),->  ('a2',103,'apricot','2.2'),->  ('l2',104,'lemon','6.4'),->  ('b2',104,'berry','7.6'),->  ('m1',106,'mango','15.7'),->  ('m2',105,'xbabay','2.6'),->  ('t4',107,'xbababa','3.6'),->  ('m3',105,'xxtt','11.6'),->  ('b5',107,'xxxx','3.6');

单表查询

单表查询是指从一张表数据中查询所需的数据。主要有:查询所有字段、查询指定字段、查询指定记录、查询空值、多条件的查询、对查询结果进行排序等方式。

查询所有字段

1. select 语句中使用星号( )通配符查询所有字段。 select 查询记录最简单的形式是从一个表中检索所有记录,实现的方法是使用星号()通配符指定查找所有列的名称。 (不建议使用)
mysql> select * from fruits;
+------+------+------------+---------+
| f_id | s_id | f_name     | f_price |
+------+------+------------+---------+
| a1   |  101 | apple      |    5.20 |
| a2   |  103 | apricot    |    2.20 |
| b1   |  101 | blackberry |   10.20 |
| b2   |  104 | berry      |    7.60 |
| b5   |  107 | xxxx       |    3.60 |
| bs1  |  102 | orange     |   11.20 |
| bs2  |  105 | melon      |    8.20 |
| c0   |  101 | cherry     |    3.20 |
| l2   |  104 | lemon      |    6.40 |
| m1   |  106 | mango      |   15.70 |
| m2   |  105 | xbabay     |    2.60 |
| m3   |  105 | xxtt       |   11.60 |
| o2   |  103 | coconut    |    9.20 |
| t1   |  102 | banana     |   10.30 |
| t2   |  102 | grape      |    5.30 |
| t4   |  107 | xbababa    |    3.60 |
+------+------+------------+---------+
16 rows in set (0.00 sec)

查询指定字段

select 字段名 from 表名;

mysql> select f_name from fruits;
+------------+
| f_name     |
+------------+
| apple      |
| apricot    |
| blackberry |
| berry      |
| xxxx       |
| orange     |
| melon      |
| cherry     |
| lemon      |
| mango      |
| xbabay     |
| xxtt       |
| coconut    |
| banana     |
| grape      |
| xbababa    |
+------------+
16 rows in set (0.00 sec)

2.查询多个字段 使用select声明,可以获取多个字段下的数据,只需要在关键字select后面指定要查询的字段的名称,不同字段名称之间用逗号分隔,最后一个字段后面不需要加逗号

mysql> select f_id,s_id,f_name from fruits;
+------+------+------------+
| f_id | s_id | f_name     |
+------+------+------------+
| a1   |  101 | apple      |
| a2   |  103 | apricot    |
| b1   |  101 | blackberry |
| b2   |  104 | berry      |
| b5   |  107 | xxxx       |
| bs1  |  102 | orange     |
| bs2  |  105 | melon      |
| c0   |  101 | cherry     |
| l2   |  104 | lemon      |
| m1   |  106 | mango      |
| m2   |  105 | xbabay     |
| m3   |  105 | xxtt       |
| o2   |  103 | coconut    |
| t1   |  102 | banana     |
| t2   |  102 | grape      |
| t4   |  107 | xbababa    |
+------+------+------------+
16 rows in set (0.00 sec)

查询指定记录

数据库中包含大量的数据,根据特殊要求可能只需要查询表中的指定数据,相当于对数据的过滤。在select语句中,通过where子句可以对数据进行过滤。
select 字段1,字段2....字段n from 表名 where 查询条件;
操作符
说明
=
相等
<>,!=
不相等
<
小于
<=
小于等于
>
大于等于
>=
大于等于
BETWEEN
位于两端之间
mysql> select f_name,f_price-> from fruits-> where f_price = 10.2;
+------------+---------+
| f_name     | f_price |
+------------+---------+
| blackberry |   10.20 |
+------------+---------+
1 row in set (0.01 sec)

in关键字的查询

in操作符用来查询满足指定范围内的条件的记录,使用IN操作符,将所有检索条件用括号括起来,检索条件之间用逗号分隔开,只要满足条件范围内的一个值即为匹配项。
mysql> select s_id,f_name,f_price-> from fruits-> where s_id in (101,102)-> order by f_name;
+------+------------+---------+
| s_id | f_name     | f_price |
+------+------------+---------+
|  101 | apple      |    5.20 |
|  102 | banana     |   10.30 |
|  101 | blackberry |   10.20 |
|  101 | cherry     |    3.20 |
|  102 | grape      |    5.30 |
|  102 | orange     |   11.20 |
+------+------------+---------+
6 rows in set (0.00 sec)

between and的范围查询

Between and用来查询某个范围内的值,该操作符需要两个参数,即范围的开始值和结束值,如果字段值满足指定的范围查询条件,则这些记录被返回。
mysql> select f_name,f_price-> from fruits-> where f_price between 2.00 and 3.00;
+---------+---------+
| f_name  | f_price |
+---------+---------+
| apricot |    2.20 |
| xbabay  |    2.60 |
+---------+---------+
2 rows in set (0.00 sec)

like的字符匹配查询

通配符是一种在SQLwhere条件子句中拥有特殊意思的字符,SQL语句中支持多种通配符,可以和like一起使用的通配符有‘%’‘_’

1.百分号(%)通配符,匹配任意长度的字符,甚至包括零字符


mysql> select f_id,f_name-> from fruits-> where f_name like 'b%';
+------+------------+
| f_id | f_name     |
+------+------------+
| b1   | blackberry |
| b2   | berry      |
| t1   | banana     |
+------+------------+
3 rows in set (0.00 sec)

2.下划线(__)通配符,一次只能匹配任意一个字符

mysql> select f_id,f_name-> from fruits-> where f_name like '____y';
+------+--------+
| f_id | f_name |
+------+--------+
| b2   | berry  |
+------+--------+
1 row in set (0.00 sec)

查询空值

数据表创建的时候,设计者可以指定某列中是否可以包含空值(NULL)。空值不同于0,也不同于空字符串。空 值一般表示数据未知、不适用或将在以后添加数据。在select语句中使用IS NULL子句,可以查询某字段内容为 空的记录。

mysql> create table customers->  (->  c_id int not null auto_increment,->  c_name char(50) not null,->  c_address char(50) null,->  c_city char(50) null,->  c_zip char(50) null,->  c_contact char(50) null,->  c_email char(50) null,->  primary key(c_id)->  );
Query OK, 0 rows affected (0.00 sec)
mysql> insert into customers(c_id,c_name,c_address,c_city,c_zip,c_contact,c_email)->  values(10001,'RedHook','200'> Street','Tianjin','300000','LiMing','LMing@163.com'),->  (10002,'Stars','333 Fromage'> Lane','Dalian','116000','Zhangbo','Jerry@hotmail.com'),->  (10003,'Netbhood','1 Sunny Place','Qingdao','266000','LuoCong',NULL),-> (10004,'JOTO','829 Riverside Drive', 'Haikou','570000','YangShan',-> 'sam@hotmail.com');
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0
mysql> select c_id,c_name,c_email from customers where c_email IS NULL;
+-------+----------+---------+
| c_id  | c_name   | c_email |
+-------+----------+---------+
| 10003 | Netbhood | NULL    |
+-------+----------+---------+
1 row in set (0.00 sec)

and的多条件查询

使用select查询时,可以增加查询的限制条件,这样可以使查询的结果更加精确。MySQLwhere子句中使用and操作符限定只有满足所有查询条件的记录才会被返回。可以使用and连接两个甚至多个查询条件,多个条件表达式之间用and分开。
mysql> select f_id,f_price,f_name-> from fruits-> where s_id = '101' and f_price >=5;
+------+---------+------------+
| f_id | f_price | f_name     |
+------+---------+------------+
| a1   |    5.20 | apple      |
| b1   |   10.20 | blackberry |
+------+---------+------------+
2 rows in set (0.00 sec)

or的多条件查询

与and相反,在where声明中使用or操作符,表示只需要满足其中一个条件的记录即可返回or也可以连接两个甚至多个查询条件,多个条件表达式之间用or分开。

mysql> select s_id,f_name,f_price-> from fruits-> where s_id = 101 or s_id = 102;
+------+------------+---------+
| s_id | f_name     | f_price |
+------+------------+---------+
|  101 | apple      |    5.20 |
|  101 | blackberry |   10.20 |
|  102 | orange     |   11.20 |
|  101 | cherry     |    3.20 |
|  102 | banana     |   10.30 |
|  102 | grape      |    5.30 |
+------+------------+---------+
6 rows in set (0.00 sec)

查询结果不重复

mysql> select distinct s_id from fruits;
+------+
| s_id |
+------+
|  101 |
|  103 |
|  104 |
|  107 |
|  102 |
|  105 |
|  106 |
+------+
7 rows in set (0.00 sec)

对查询结果排序

单列排序

mysql> select f_name from fruits order by f_name;
+------------+
| f_name     |
+------------+
| apple      |
| apricot    |
| banana     |
| berry      |
| blackberry |
| cherry     |
| coconut    |
| grape      |
| lemon      |
| mango      |
| melon      |
| orange     |
| xbababa    |
| xbabay     |
| xxtt       |
| xxxx       |
+------------+
16 rows in set (0.00 sec)

多列排序

+------------+---------+
| f_name     | f_price |
+------------+---------+
| apple      |    5.20 |
| apricot    |    2.20 |
| banana     |   10.30 |
| berry      |    7.60 |
| blackberry |   10.20 |
| cherry     |    3.20 |
| coconut    |    9.20 |
| grape      |    5.30 |
| lemon      |    6.40 |
| mango      |   15.70 |
| melon      |    8.20 |
| orange     |   11.20 |
| xbababa    |    3.60 |
| xbabay     |    2.60 |
| xxtt       |   11.60 |
| xxxx       |    3.60 |
+------------+---------+
16 rows in set (0.00 sec)

注:在多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序。

指定排序方向

默认情况下,查询数据按字母升序进行排序(从A~Z),但数据的排序并不仅限于此,还可以使用order by对查询结果进行降序排序(从Z~A),这可以通过关键字DESC实现。

mysql> select f_name,f_price from fruits order by f_name,f_price DESC;
+------------+---------+
| f_name     | f_price |
+------------+---------+
| apple      |    5.20 |
| apricot    |    2.20 |
| banana     |   10.30 |
| berry      |    7.60 |
| blackberry |   10.20 |
| cherry     |    3.20 |
| coconut    |    9.20 |
| grape      |    5.30 |
| lemon      |    6.40 |
| mango      |   15.70 |
| melon      |    8.20 |
| orange     |   11.20 |
| xbababa    |    3.60 |
| xbabay     |    2.60 |
| xxtt       |   11.60 |
| xxxx       |    3.60 |
+------------+---------+
16 rows in set (0.00 sec)

注:与DESC相反ASC是升序

分组查询

分组插叙是对数据按照某个或多个字段进行分组, MySQL 中使用 group by 关键字对数据进行分组,基本语法形式为:group by 字段 1 、创建分组
Group by 关键字通常和集合函数一起使用,例如: MAX() MIN() COUNT() SUM() AVG() 。 根据 s_id 对fruits表中的数据进行分组
mysql> select s_id,count(*) as total from fruits group by s_id;
+------+-------+
| s_id | total |
+------+-------+
|  101 |     3 |
|  102 |     3 |
|  103 |     2 |
|  104 |     2 |
|  105 |     3 |
|  106 |     1 |
|  107 |     2 |
+------+-------+
7 rows in set (0.00 sec)
根据s_idfruits表中的数据进行分组,将每个供应商的水果名称显示出来
mysql> select s_id,group_concat(f_name) as name from fruits group by s_id;
+------+-------------------------+
| s_id | name                    |
+------+-------------------------+
|  101 | apple,blackberry,cherry |
|  102 | orange,banana,grape     |
|  103 | apricot,coconut         |
|  104 | berry,lemon             |
|  105 | melon,xbabay,xxtt       |
|  106 | mango                   |
|  107 | xxxx,xbababa            |
+------+-------------------------+
7 rows in set (0.00 sec)
使用having过滤分组 根据s_idfruits表中的数据进行分组,并显示水果种类大于1的分组信息
mysql> select s_id,group_concat(f_name) as name from fruits group by s_id having -> count(f_name) > 1;
+------+-------------------------+
| s_id | name                    |
+------+-------------------------+
|  101 | apple,blackberry,cherry |
|  102 | orange,banana,grape     |
|  103 | apricot,coconut         |
|  104 | berry,lemon             |
|  105 | melon,xbabay,xxtt       |
|  107 | xxxx,xbababa            |
+------+----------------------
group by 子句中使用 with rollup 使用 with rollup 关键字之后,在所有查询出的分组记录之后增加一条记录,该记录计算查询出的所有记录的总和,即统计记录数量。
mysql> select s_id,count(*) as total-> from fruits-> group by s_id with rollup;
+------+-------+
| s_id | total |
+------+-------+
|  101 |     3 |
|  102 |     3 |
|  103 |     2 |
|  104 |     2 |
|  105 |     3 |
|  106 |     1 |
|  107 |     2 |
| NULL |    16 |
+------+-------+
8 rows in set (0.00 sec)
多字段分组 使用 group by 可以对多个字段进行分组, group by 关键字后面跟需要分组的字段, MySQL 根据 多字段的值来进行层次分组,分组层次从左到右,即先按第1 个字段分组,然后在第 1 个字段值相同的记录中,再根据第2 个字段的值进行分组,以此类推。
mysql> select * from fruits group by f_id,f_name;
+------+------+------------+---------+
| f_id | s_id | f_name     | f_price |
+------+------+------------+---------+
| a1   |  101 | apple      |    5.20 |
| a2   |  103 | apricot    |    2.20 |
| b1   |  101 | blackberry |   10.20 |
| b2   |  104 | berry      |    7.60 |
| b5   |  107 | xxxx       |    3.60 |
| bs1  |  102 | orange     |   11.20 |
| bs2  |  105 | melon      |    8.20 |
| c0   |  101 | cherry     |    3.20 |
| l2   |  104 | lemon      |    6.40 |
| m1   |  106 | mango      |   15.70 |
| m2   |  105 | xbabay     |    2.60 |
| m3   |  105 | xxtt       |   11.60 |
| o2   |  103 | coconut    |    9.20 |
| t1   |  102 | banana     |   10.30 |
| t2   |  102 | grape      |    5.30 |
| t4   |  107 | xbababa    |    3.60 |
+------+------+------------+---------+
16 rows in set (0.00 sec)
group by order by 一起使用 某些情况下需要对分组进行排序
mysql> create table orderitems-> (-> o_num int not null,-> o_item int not null,-> f_id char(10) not null,-> quantity int not null,-> item_price decimal(8,2) not null,-> primary key(o_num,o_item)-> );
Query OK, 0 rows affected (0.03 sec)
mysql> insert into orderitems(o_num,o_item,f_id,quantity,item_price)->  values(30001,1,'a1',10,'5.2'),->  (30001,2,'b2',3,'7.6'),->  (30001,3,'bs1',5,'11.2'),->  (30001,4,'bs2',15,'9.2'),->  (30002,1,'b3',2,'20.0'),->  (30003,1,'c0',100,10),->  (30004,1,'o2',50,'2.50'),->  (30005,1,'c0',5,'10'),->  (30005,2,'b1',10,'8.99'),->  (30005,3,'a2',10,'2.2'),->  (30005,4,'m1',5,'14.99');
Query OK, 11 rows affected (0.00 sec)
Records: 11  Duplicates: 0  Warnings: 0
查询价格大于 100 的订单号和总价订单价格
mysql> select o_num,sum(quantity*item_price) as ordertotal-> from orderitems-> group by o_num-> having sum(quantity*item_price) >= 100;
+-------+------------+
| o_num | ordertotal |
+-------+------------+
| 30001 |     268.80 |
| 30003 |    1000.00 |
| 30004 |     125.00 |
| 30005 |     236.85 |
+-------+------------+
4 rows in set (0.00 sec)
使用 limit 限制查询结果的数量 select 返回所有匹配的行,有可能是表中所有的行,如仅仅需要返回第一 行或者前几行,使用limit 关键字,语法格式如下: limit [ 位置偏移量 ] 行数
mysql> select * from fruits limit 4;
+------+------+------------+---------+
| f_id | s_id | f_name     | f_price |
+------+------+------------+---------+
| a1   |  101 | apple      |    5.20 |
| a2   |  103 | apricot    |    2.20 |
| b1   |  101 | blackberry |   10.20 |
| b2   |  104 | berry      |    7.60 |
+------+------+------------+---------+
4 rows in set (0.00 sec)mysql> select * from fruits limit 4,3;
+------+------+--------+---------+
| f_id | s_id | f_name | f_price |
+------+------+--------+---------+
| b5   |  107 | xxxx   |    3.60 |
| bs1  |  102 | orange |   11.20 |
| bs2  |  105 | melon  |    8.20 |
+------+------+--------+---------+
3 rows in set (0.00 sec)

使用聚合函数查询

函数
作用
AVG()
返回某列的平均值
COUNT()
返回某列的行数
MAX()
返回某列的最大值
MIN()
返回某列的最小值
SUM()
返回某列的和

count()函数

Count()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。 Count(*)计算表中总的函数,不管某列有数列或者为空值 Count(字段名)计算指定列下总的行数,计算时将忽略空值的行

mysql> select count(*) as cust_num-> from customers;
+----------+
| cust_num |
+----------+
|        4 |
+----------+
1 row in set (0.00 sec)mysql> select count(c_email) as email_num-> from customers;
+-----------+
| email_num |
+-----------+
|         3 |
+-----------+
1 row in set (0.00 sec)mysql> select o_num,count(f_id)-> from orderitems-> group by o_num;
+-------+-------------+
| o_num | count(f_id) |
+-------+-------------+
| 30001 |           4 |
| 30002 |           1 |
| 30003 |           1 |
| 30004 |           1 |
| 30005 |           4 |
+-------+-------------+
5 rows in set (0.00 sec)

sum()函数

sum()是一个求总和的函数,返回指定列值得总和

mysql> select sum(quantity) as items_total-> from orderitems-> where o_num = 30005;
+-------------+
| items_total |
+-------------+
|          30 |
+-------------+
1 row in set (0.00 sec)mysql> select o_num,sum(quantity) as items_total-> from orderitems-> group by o_num;
+-------+-------------+
| o_num | items_total |
+-------+-------------+
| 30001 |          33 |
| 30002 |           2 |
| 30003 |         100 |
| 30004 |          50 |
| 30005 |          30 |
+-------+-------------+
5 rows in set (0.00 sec)
注意:sum()函数在计算时,忽略列值为NULL的行。

avg()函数

mysql> select avg(f_price) as avg_price-> from fruits-> where s_id=103;
+-----------+
| avg_price |
+-----------+
|  5.700000 |
+-----------+
1 row in set (0.00 sec)mysql> select s_id,avg(f_price) as avg_price-> from fruits-> group by s_id;
+------+-----------+
| s_id | avg_price |
+------+-----------+
|  101 |  6.200000 |
|  102 |  8.933333 |
|  103 |  5.700000 |
|  104 |  7.000000 |
|  105 |  7.466667 |
|  106 | 15.700000 |
|  107 |  3.600000 |
+------+-----------+
7 rows in set (0.01 sec)

max()函数

max()返回指定列中的最大值

mysql> select max(f_price) as max_price from fruits;
+-----------+
| max_price |
+-----------+
|     15.70 |
+-----------+
1 row in set (0.00 sec)mysql> select s_id,max(f_price) as max_price from fruits group by s_id ;
+------+-----------+
| s_id | max_price |
+------+-----------+
|  101 |     10.20 |
|  102 |     11.20 |
|  103 |      9.20 |
|  104 |      7.60 |
|  105 |     11.60 |
|  106 |     15.70 |
|  107 |      3.60 |
+------+-----------+
7 rows in set (0.00 sec)

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

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

相关文章

10个在线ai文案自动生成器,轻松写出高质量原创文案

在数字营销时代&#xff0c;撰写引人注目的标题和吸引人的营销文案至关重要。然而&#xff0c;写作优质文案需要耗费时间和精力。幸运的是&#xff0c;现在有许多在线AI文案自动生成器可以帮助我们快速创作出高质量的标题和营销文案。本文将介绍十款值得推荐的在线AI文案自动生…

微信小程序事件点击跳转页面的五种方法

第一种:标签 这是最常见的一种跳转方式,相当于html里的a标签 <navigator url"/pages/main/main"></navigator>第二种:wx.navigateTo({})方法 1.前端wxml <button bindtap"getCeshi" type"primary"> 测试按钮 </button>…

flink水位线传播及任务事件时间

背景 本文来讲解一下flink的水位线传播及对其对任务事件时间的影响 水位线 首先flink是通过从源头生成水位线记录的方式来实现水位线传播的&#xff0c;也就是说水位线是嵌入在正常的记录流中的特殊记录&#xff0c;携带者水位线的时间戳&#xff0c;以下我们就通过图片的方…

springCloud通过两种方式配置热更新

该热更新实际就是通过改动nacos官网里面的配置管理的妹纸内容实现 定义一个config包&#xff0c;在该包下面复制该代码 package cn.itcast.user.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.spring…

【C++】多线程编程二(std::thread详解)

目录 std::thread详解 &#xff08;1&#xff09;启动线程 ①无参无返回的函数作为入参 ②函数对象&#xff08;仿函数&#xff09;作为入参 &#xff08;2&#xff09;不等待线程detch() &#xff08;3&#xff09;等待线程完成join() &#xff08;4&#xff09;向线程…

力扣142. 环形链表 II

题目 给定一个链表的头节点head&#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回null。 链接&#xff1a;142. 环形链表 II - 力扣&#xff08;LeetCode&#xff09; 题解 方法一&#xff1a;设置两个指针&#xff0c;一个指针指向链表头结点&#…

云原生之深入解析Flink on k8s的运行模式与实战操作

一、概述 Flink 核心是一个流式的数据流执行引擎&#xff0c;并且能够基于同一个 Flink 运行时&#xff0c;提供支持流处理和批处理两种类型应用。其针对数据流的分布式计算提供了数据分布&#xff0c;数据通信及容错机制等功能。Flink 官网不同版本的文档flink on k8s 官方文…

CVE-2023-1454注入分析复现

简介 JeecgBoot的代码生成器是一种可以帮助开发者快速构建企业级应用的工具&#xff0c;它可以通过一键生成前后端代码&#xff0c;无需写任何代码&#xff0c;让开发者更多关注业务逻辑。 影响版本 Jeecg-Boot<3.5.1 环境搭建 idea 后端源码&#xff1a; https://git…

vue3项目创建(vite3+ts+elementui-plus)

文章目录 1.创建工程 1.创建工程 目的&#xff1a;vue3vitets 安装依赖&#xff0c;安装vite的工具 Vite下一代的前端工具链为开发提供极速响应v4.3 npm install -g create-vite创建工程 create-vite font-userui --template vue-ts –template vue-ts 后面的是配置模板&#…

git bash设置字体大小

背景 git bash默认字体太小了&#xff0c;每次读信息都要伸头盯着屏幕&#xff0c;很不自在&#xff0c;不符合我的风格&#xff0c;so let’s do it&#xff01; 修改前的git bash&#xff1a; 正确的打开方式 1、在任意目录下&#xff0c;右键选择“Git Bash Here”&…

ubuntu netplan工具原理(网络配置、ip修改ip、固定ip)(NetworkManager)

https://netplan.io/ 文章目录 netplan工作原理netplan -h原翻译命令释义- help&#xff1a;显示netplan的帮助消息。- apply&#xff1a;将当前netplan配置应用到运行系统。示例命令&#xff1a;netplan apply --debug- generate&#xff1a;从/etc/netplan/*.yaml生成特定于后…

JVM 运行流程、类加载、垃圾回收

一、JVM 简介 1、JVM JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java 虚拟机。 虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。 常见的虚拟机&#xff1a;JVM、VMwave、Virtual Box。 JVM 和其他两个虚拟机的区别…

Android Java代码与JNI交互字符串转换(四)

🔥 Android Studio 版本 🔥 🔥 创建JNIString.java 🔥 package com.cmake.ndk1.jni;public class JNIString {static{System.loadLibrary("string-lib");}public native String callNativeString(String str);public native void stringMethod(String str)…

C/C++的发展历程和未来趋势

文章目录 C/C的起源C/C的应用C/C开发的工具C/C未来趋势 C/C的起源 C语言 C语言是一种通用的高级编程语言&#xff0c;由美国计算机科学家Dennis Ritchie在20世纪70年代初期开发出来。起初&#xff0c;C语言是作为操作系统UNIX的开发语言而创建的。C语言的设计目标是提供一种功…

【玩转循环】探索Python中的无限可能性

前言 循环可能是每个编程语言中使用比较多的语法了&#xff0c;如果能合理利用好循环&#xff0c;就会出现意想不到的结果&#xff0c;大大地减少代码量&#xff0c;让机器做那些简单枯燥的循环过程&#xff0c;今天我将为大家分享 python 中的循环语法使用。&#x1f697;&am…

spring复习:(22)实现了BeanNameAware等Aware接口的bean,相应的回调方法是在哪里被调用的?

AbstractAutowireCapableBeanFactory的doCreateBean用来创建bean, 其中调用了initializeBean方法对bean进行初始化 initializeBean包含如下代码&#xff1a; 而invokeAwareMethods代码如下&#xff1a; 可见其分别判断是否实现了BeanNameAware接口、BeanClassLoaderAware接口…

基于ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升技术

空间数据获取与制图 1.1 软件安装与应用讲解 1.2 空间数据介绍 1.3海量空间数据下载 1.4 ArcGIS软件快速入门 1.5 Geodatabase地理数据库 ArcGIS专题地图制作 2.1专题地图制作规范 2.2 空间数据的准备与处理 2.3 空间数据可视化&#xff1a;地图符号与注记 2.4 研究区…

Maven下载和配置教程:Windows、Mac和Linux系统安装指南

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

Nginx配置白名单访问

一、背景 在项目运行的时候&#xff0c;需要设置特定的访问权限&#xff0c;以拒绝其他可能存在的恶意访问。 二、配置 2.1、关键字 允许访问关键字&#xff1a;allow 屏蔽访问关键字&#xff1a;deny 2.2、作用域 作用域如下&#xff1a; http&#xff1a;所有网站屏蔽I…

如何搭建自己的图床(GitHub版)

文章目录 1.图床的概念2.用GitHub创建图床服务器2.1.新建仓库2.2.生成Token令牌2.3.创建img分支和该分支下的img文件夹(可选) 3.使用PicGo软件上传图片3.1 下载PicGo软件3.2配置PicGo3.3用PicGo实现上传 4. Typora实现自动上传5.免费图片网站 前言&#xff1a; 如果没有自己的服…