MySQL---表的增查改删(CRUD基础)

文章目录

  • 什么是CRUD?
  • 新增(Create)
    • 单行数据 + 全列插入
    • 多行数据 + 指定列插入
  • 查询(Retrieve)
    • 全列查询
    • 指定列查询
    • 查询字段为表达式
    • 起别名查询
    • 去重查询
    • 排序查询
    • 条件查询
    • 分页查询
  • 修改(Update)
  • 删除(Delete)

什么是CRUD?

CRUD,即增加(Create)、查找(Retrieve)、修改(Update)、删除(Delete)四个单词的首字母缩写。

在进行下面所有操作的前提都是得选中一个数据库,并且已经创建了可以用来操作的表。
默认我们现在已经创建了learning数据库,在数据库中有一张student表。后续操作都基于此进行
在这里插入图片描述

新增(Create)

insert into 表名 values(值,值,值...;

注:这里值的类型和个数要和表的 列的类型和个数匹配。

单行数据 + 全列插入

mysql> insert into student values (1,"zhangsan");
Query OK, 1 row affected (0.00 sec)

注:

  1. 在SQL中没有字符串类型,所以既可以用‘ ’来引用字符串,又可以使用“ ”来引用字符串;
  2. 还可以直接插入中文字符(需要把数据库字符集改为UTF-8)

多行数据 + 指定列插入

mysql> insert into student values (1,"zhangsan"),(2"lisi",(3,"wangwu");
Query OK, 3 row affected (0.00 sec)

注:比一条一条插入更快

查询(Retrieve)

MySQL是一个客户端—服务器结构的程序,显示在客户端的查询结果是一个“临时表”,服务器端的数据并不是这样的组织形式。

全列查询

select* from 表名;
mysql> select * from student;
+------+----------+
| id   | name     |
+------+----------+
|    1 | zhangsan |
|    2 | lisi     |
|    3 | wangwu   |
+------+----------+
3 rows in set (0.00 sec)

注:

  1. 通配符* 表示匹配所有的列,即查询所有列,把所有的数据都查询出来;
  2. 这是一个危险操作(当数据量大的时候):进行此操作的时候,服务器要先读取磁盘,把这些数据都查出来,再通过网卡,把这些数据传输给客户端,由于数据量非常大,极有可能把磁盘IO(输入输出)吃满,或者网络带宽吃满。这时其他数据就无法正常返回了,最直观的感受就是客户端感受到卡顿。

指定列查询

select 列名,列名,列名.... from 表名;
mysql> select id from student;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)

注:当我们查询时省去一些不必要的列时,就可以节约大量的磁盘IO和网络带宽了。

查询字段为表达式

select 表达式 from 表名;
  • 演示此操作需要创建一个新的表:
mysql> create table exam_result (id int, name varchar(20), chinese decimal(3,1),math decimal(3,1), english decimal(3,1));
Query OK, 0 rows affected (0.01 sec)
//decimal(3,1) 表示共有三位有效数字,保留一位小数。 比如:32.1、10.5
  • 查看一下表结构:
mysql> desc exam_result;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(20)  | YES  |     | NULL    |       |
| chinese | decimal(3,1) | YES  |     | NULL    |       |
| math    | decimal(3,1) | YES  |     | NULL    |       |
| english | decimal(3,1) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
  • 插入数据
mysql> INSERT INTO exam_result (id,name, chinese, math, english) VALUES->  (1,'zhangsan', 67, 98, 56),->  (2,'lisi', 87.5, 78, 77),->  (3,'wangwu', 88, 98.5, 90),->  (4,'zhaoliu', 82, 84, 67),->  (5,'sunqi', 55.5, 85, 45),->  (6,'zhouba', 70, 73, 78.5),->  (7,'wujiu', 75, 65, 30);
Query OK, 7 rows affected (0.00 sec)
Records: 7  Duplicates: 0  Warnings: 0
  • 查询表内全部数据
mysql> select * from exam_result;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
+------+-----------+---------+------+---------+
7 rows in set (0.00 sec)
  • 带表达式的查询:让所有人的语文成绩+10分
mysql> select name,chinese + 10 from exam_result;
+-----------+--------------+
| name      | chinese + 10 |
+-----------+--------------+
| zhangsan  |         77.0 |
| lisi      |         97.5 |
| wangwu    |         98.0 |
| zhaoliu   |         92.0 |
| sunqi     |         65.5 |
| zhouba    |         80.0 |
| wujiu     |         85.0 |
+-----------+--------------+
7 rows in set (0.00 sec)

起别名查询

select 表达式 as 别名 from 表名;
  • 普通情况查询语、数、英三科总分
mysql> select name, chinese + math + english from exam_result;
+-----------+--------------------------+
| name      | chinese + math + english |
+-----------+--------------------------+
| zhangsan   |                    221.0 |
| lisi       |                    242.5 |
| wangwu     |                    276.5 |
| zhaoliu    |                    233.0 |
| sunqi      |                    185.5 |
| zhouba     |                    221.5 |
| wujiu      |                    170.0 |
+-----------+--------------------------+
7 rows in set (0.00 sec)
  • 起别名查询语、数、英三科总分
mysql> select name, chinese + english + math as total from exam_result;
+-----------+-------+
| name      | total |
+-----------+-------+
| zhangsan  | 221.0 |
| lisi      | 242.5 |
| wangwu    | 276.5 |
| zhaoliu   | 233.0 |
| sunqi     | 185.5 |
| zhouba    | 221.5 |
| wujiu     | 170.0 |
+-----------+-------+
7 rows in set (0.00 sec)

注:as可以写着,也可以省略。 建议写着!

去重查询

select distinct 列名 from 表名;
  • 演示此操作需增加相同信息
mysql> insert into exam_result (name, math) values ('zhangsan', 98.0);
Query OK, 1 row affected (0.00 sec)
  • 查看当前表的全部信息
mysql> select * from exam_result;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
| NULL | zhangsan  |    NULL | 98.0 |    NULL |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)
  • 进行去重查询
mysql> select distinct name, math from exam_result;
+-----------+------+
| name      | math |
+-----------+------+
| zhangsan  | 98.0 |
| lisi      | 78.0 |
| wangwu    | 98.5 |
| zhaoliu   | 84.0 |
| sunqi     | 85.0 |
| zhouba    | 73.0 |
| wujiu     | 65.0 |
+-----------+------+
7 rows in set (0.00 sec)

注:当用distinct指定多个列时,必须是这几个列的值同时相同时才会去重。

排序查询

select 列名 from 表名 order by 列名;
  • 按语文成绩升序排序
mysql> select * from exam_result order by chinese;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
| NULL | zhangsan  |    NULL | 98.0 |    NULL |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)
  • 按语文成绩降序排序
mysql> select * from exam_result order by chinese desc;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
| NULL | zhangsan  |    NULL | 98.0 |    NULL |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)
  • order by 也可以针对别名进行排序
mysql>  select name, chinese + math + english as total from exam_result order by total desc;
+-----------+-------+
| name      | total |
+-----------+-------+
| wangwu    | 276.5 |
| lisi      | 242.5 |
| zhaoliu   | 233.0 |
| zhouba    | 221.5 |
| zhangsan  | 221.0 |
| sunqi     | 185.5 |
| wujiu     | 170.0 |
| zhangsan  |  NULL |
+-----------+-------+
8 rows in set (0.00 sec)
  • order by 进行排序的时候还可以指定多个列进行排序 效果是:先以第一列为标准进行比较,如果第一列不分胜负,那么继续按照第二列进行比较,一次类推
mysql> select * from exam_result order by math desc,chinese;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    3 |  wangwu   |    88.0 | 98.5 |    90.0 |
| NULL | zhangsan  |    NULL | 98.0 |    NULL |
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)

注:

  1. 升序排序末尾加asc 但默认是升序排序可以省略,降序排序末尾加desc
  2. 在SQL中,拿NULL和其他类型进行混合计算,结果仍然是NULL
  3. 在select操作中,如果没有使用order by 那么查询结果的顺序是不确定的。

条件查询

select* from 表名 where 条件;

引入where子句,对条件进行筛选,即:用where子句对最初的每一行查询结果进行筛选,如果满足条件,就把这一行放入到最终的查询结果;如果不满足条件,则舍弃这一行;最后返回最终查询结果。

  • 比较运算符

在这里插入图片描述

注:

  1. 在SQL中没有== 使用=进行比较
  2. 在SQL中,NULL = NULL 结果还是NUULL ,相当于false; NULL <=> NULL 结果是true
  3. like进行模糊匹配,匹配过程中可以带上通配符
  • 逻辑运算符

在这里插入图片描述

注:

  1. 在where条件中,可以使用表达式,但不能使用别名;
  2. and的优先级高于or,在使用时注意次序或者加()
  • 基本查询:查询语文成绩比英语成绩好的人
mysql> select * from exam_result where chinese > english;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
+------+-----------+---------+------+---------+
5 rows in set (0.00 sec)
  • and / or查询
mysql> select * from exam_result where chinese > 80 or english > 70 and math > 70;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
+------+-----------+---------+------+---------+
4 rows in set (0.00 sec)
  • 范围查询:查询语文成绩在80-90之间的人
mysql> select * from exam_result where chinese >= 80 and chinese <= 90;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
+------+-----------+---------+------+---------+
3 rows in set (0.00 sec)mysql>  select * from exam_result where chinese between 80 and 90;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
+------+-----------+---------+------+---------+
3 rows in set (0.00 sec)
  • in 查询 查询数学成绩是58 或者59 或者98 或者99的人
mysql> select * from exam_result where math in (58,59,98,99);
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan    |    67.0 | 98.0 |    56.0 |
+------+-----------+---------+------+---------+
1 rows in set (0.00 sec)mysql>  select * from exam_result where math = 58 or math = 59 or math = 98 or math = 99;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan    |    67.0 | 98.0 |    56.0 |
+------+-----------+---------+------+---------+
1 rows in set (0.00 sec)
  • 模糊查询like 不一定完全相同,只要有一部分匹配即可。
mysql>  select * from exam_result where name like 'w%';
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    3 | wangwu    |      88 | 98.5 |      90 |
|    7 | wujiu     |      75 |   65 |      30 |
+------+-----------+---------+------+---------+
2 rows in set (0.00 sec)

注: % 可以替代任意个字符,_ 可以替代任意一个字符

  • NULL的查询
mysql> select * from exam_result;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
| NULL | zhangsan  |    NULL | 98.0 |    NULL |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)mysql> select * from exam_result where chinese = NULL;
Empty set (0.00 sec)mysql> select * from exam_result where chinese <=> NULL;
+------+--------+---------+------+---------+
| id   | name   | chinese | math | english |
+------+--------+---------+------+---------+
| NULL |zhangsan|    NULL | 98.0 |    NULL |
+------+--------+---------+------+---------+
1 row in set (0.00 sec)mysql>  select * from exam_result where chinese is NULL;
+------+--------+---------+------+---------+
| id   | name   | chinese | math | english |
+------+--------+---------+------+---------+
| NULL |zhangsan|    NULL | 98.0 |    NULL |
+------+--------+---------+------+---------+
1 row in set (0.00 sec)

注:

  1. 直接使用 = 来进行匹配是不能正确进行筛选的
  2. 使用 <=> 可以正确和NULL匹配
  3. 使用 is NULL也可以正确和NULL匹配

分页查询

select 列名 from 表名 limit N offset M;
select 列名 from 表名 limit M,N;

N:返回结果的条数 M:跳过M条结果再开始返回

  • 从M条开始查询 最多返回N条结果
mysql> select * from exam_result;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
| NULL | zhangsan  |    NULL | 98.0 |    NULL |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)mysql> select * from exam_result limit 3;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    2 | lisi      |    87.5 | 78.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
+------+-----------+---------+------+---------+
3 rows in set (0.00 sec)mysql> select * from exam_result limit 3 offset 3;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
+------+-----------+---------+------+---------+
3 rows in set (0.00 sec)

注:select* 这样的操作容易把数据库搞挂了,除了select*外,其他的查询操作只要你返回的结果足够多,都有可能把数据库搞挂;即使你加上了where子句进行筛选,但是返回的结果仍然可能很多。最保险的办法就是加上limit

修改(Update)

update 表名 set 列名 =..... where 条件;
  • 把lisi 的数学成绩修改为80分
mysql> update exam_result set math = 80 where name = 'lisi';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from exam_result;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    1 | zhangsan  |    67.0 | 98.0 |    56.0 |
|    2 | lisi      |    87.5 | 80.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    82.0 | 84.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
| NULL | zhangsan  |    NULL | 98.0 |    NULL |
+------+-----------+---------+------+---------+
8 rows in set (0.00 sec)

注: update后面的where条件很重要。加上条件,表示修改符合条件某些行;不加条件,表示修改所有行。

删除(Delete)

delete from 表名 where 条件;
  • 删除zhangsan的信息
mysql> delete from exam_result where name = 'zhangsan';
Query OK, 1 row affected (0.00 sec)mysql> select * from exam_result;
+------+-----------+---------+------+---------+
| id   | name      | chinese | math | english |
+------+-----------+---------+------+---------+
|    2 | lisi      |    87.5 | 80.0 |    77.0 |
|    3 | wangwu    |    88.0 | 98.5 |    90.0 |
|    4 | zhaoliu   |    70.0 | 60.0 |    67.0 |
|    5 | sunqi     |    55.5 | 85.0 |    45.0 |
|    6 | zhouba    |    70.0 | 73.0 |    78.5 |
|    7 | wujiu     |    75.0 | 65.0 |    30.0 |
+------+-----------+---------+------+---------+
6 rows in set (0.00 sec)

注:

  1. delete后面的 where 条件很重要。加上条件,表示删除符合条件某些行;不加条件,表示删除表中的全部信息。
  2. delete from 表名;表示删除表内的所有信息,但是表还在。
    drop table 表名;表示删除整个表,表也不存在了。

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

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

相关文章

【QT】其他常用控件1

新建项目 scrollArea 滚动 toolBox 插入 tabWidget stackedWidget 切换 索引是0 运行后&#xff0c;没有切换按钮&#xff0c;结合pushbutton&#xff0c;加两个Button 代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent)…

Centos8: 安装python2, 并设置默认版本

文章目录 原本centos上已经有python3.6了&#xff0c;因为要运行旧代码&#xff0c;需要安装python2版本。 #在CentOS 8上安装Python 2 sudo dnf install python2#设置默认Python版本 python2 sudo alternatives --set python /usr/bin/python2#设置默认Python版本 python3 sud…

DevOps持续集成-Jenkins(4)

❤️作者简介&#xff1a;2022新星计划第三季云原生与云计算赛道Top5&#x1f3c5;、华为云享专家&#x1f3c5;、云原生领域潜力新星&#x1f3c5; &#x1f49b;博客首页&#xff1a;C站个人主页&#x1f31e; &#x1f497;作者目的&#xff1a;如有错误请指正&#xff0c;将…

【刷题-PTA】堆栈模拟队列(代码+动态图解)

【刷题-PTA】堆栈模拟队列(代码动态图解) 文章目录 【刷题-PTA】堆栈模拟队列(代码动态图解)题目输入格式:输出格式:输入样例:输出样例: 分析题目区分两栈解题思路伪代码动图演示代码测试 题目 题目描述 : 设已知有两个堆栈S1和S2&#xff0c;请用这两个堆栈模拟出一个队列Q。 …

css-渐变色矩形

效果图&#xff1a; 代码&#xff1a; html: <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"initial-scale1.0, user-scalableno" /><title></title><link …

ES6初步了解生成器

生成器函数是ES6提供的一种异步编程解决方案&#xff0c;语法行为与传统函数完全不同 语法&#xff1a; function * fun(){ } function * gen(){console.log("hello generator");}let iterator gen()console.log(iterator)打印&#xff1a; 我们发现没有打印”hello…

Leetcode-Easy题解1-回文数字

目录 解法1解法2 解法1 自己的想法,直接转成字符串首尾俩下标同时遍历比较 class Solution {public boolean isPalindrome(int x) {if(x<0){return false;}String strString.valueOf(x);int i0;for (;i<str.length()>>1;i){if(str.charAt(i)!str.charAt(str.leng…

DAY33 1005. K次取反后最大化的数组和 + 134. 加油站 + 135. 分发糖果

1005. K次取反后最大化的数组和 题目要求&#xff1a;给定一个整数数组 A&#xff0c;我们只能用以下方法修改该数组&#xff1a;我们选择某个索引 i 并将 A[i] 替换为 -A[i]&#xff0c;然后总共重复这个过程 K 次。&#xff08;我们可以多次选择同一个索引 i。&#xff09; …

Godot 官方2D C#重构(3):TileMap使用

文章目录 前言Godot Tilemap使用Tilemap使用TileSet和TilemapTilemap 图片资源添加TileSet&#xff0c;开始切图导入图片切图 简单添加TileMap如何使用 Auto Tilemap使用Auto Tilemap 前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 Godot Tilem…

互联网Java工程师面试题·Spring篇·第三弹

目录 ​编辑 4、注解 4.1、什么是基于注解的容器配置 4.2、如何在 spring 中启动注解装配&#xff1f; 4.3、Component, Controller, Repository,Service 有何区别&#xff1f; 4.4、Required 注解有什么用&#xff1f; 4.5、Autowired 注解有什么用&#xff1f; 4.6、…

当前JavaEE初阶的阶段知识总结

当前JavaEE初阶的阶段知识总结 多线程 文件IO 文件系统操作 ~~ File类. 文件内容操作 ~~ 读文件,写文件. IO 流对象. 流(Stream),形象的比喻,读取文件,就像水流一样,读写文件的时候,和水流类似,读100字节,可以一次读1个字节,100次完成;也可以一次读10个字节,10次完成…… 在…

Pillow(PIL)库的主要方法介绍

Pillow&#xff08;Python Imaging Library&#xff09;是Python中一个强大的图像处理库&#xff0c;它允许你进行图像的创建、打开、编辑、保存和显示等操作。Pillow 是 PIL&#xff08;Python Imaging Library&#xff09;的分支&#xff0c;支持多种图像格式&#xff0c;并提…

LVS+keepalived高可用负载均衡集群

keepalived介绍 keepalived为LVS应运而生的高可用服务。LVS的调度器无法做高可用&#xff0c;于是keepalived这个软件。实现的是调度器的高可用。 但是keepalived不是专门为LVS集群服务的&#xff0c;也可以做其他代理服务器的高可用。 LVS高可用集群的组成 主调度器备调度器&…

Java IDEA controller导出CSV,excel

Java IDEA controller导出CSV&#xff0c;excel 导出excel/csv&#xff0c;亲测可共用一个方法&#xff0c;代码逻辑里判断设置不同的表头及contentType&#xff1b;导出excel导出csv 优化&#xff1a;有数据时才可以导出参考 导出excel/csv&#xff0c;亲测可共用一个方法&…

javaEE -6(10000详解文件操作)

一&#xff1a;认识文件 我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备&#xff0c;当我们想要进行数据保存时&#xff0c;往往不是保存成一个整体&#xff0c;而是独立成一个个的单位进行保存&#xff0c;这个独立的单位就被抽象成文件的概念&#xff0c…

四个内存函数

文章目录 memcpy函数(拷贝)模拟实现memcpy函数memcpy的升级memmove 之前的拷贝或赋值等都是对字符串操作的&#xff0c;而对内存中其它数据如结构体&#xff0c;数组中的数据的拷贝&#xff0c;都是要用内存函数来完成的。 memcpy函数(拷贝) 第一个参数为目标地址&#xff0c;第…

DJYROS产品:基于DJYOS的国产自主割草机器人解决方案

基于都江堰泛计算操作系统的国产自主机器人操作系统即将发布…… 1、都江堰机器人操作系统命名&#xff1a;DJYROS 2、机器人算法&#xff1a;联合行业自主机器人厂家&#xff0c;构建机器人算法库。 3、机器人芯片&#xff1a;联合行业机器人AI芯片公司&#xff0c;构建专用…

《红蓝攻防对抗实战》八.利用OpenSSL对反弹shell流量进行加密

前文推荐&#xff1a; 《红蓝攻防对抗实战》一. 隧道穿透技术详解《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网《红蓝攻防对抗实战》四.内网探测协议出网之ICMP协议探测出网《红蓝攻防对抗…

华为ERP,包含哪些内容?技术的先进性体现在哪里?

华为作为全球领先的信息和通信技术&#xff08;ICT&#xff09;解决方案提供商&#xff0c;其企业资源规划&#xff08;ERP&#xff09;系统是一个高度复杂且集成的管理软件平台&#xff0c;用于优化公司内部的业务流程和资源分配。华为ERP系统包括一系列模块和功能&#xff0c…

PHP MySQL 交互 笔记/练习

PHP 与 MySQL 交互 交互函数 函数名作用mysqli_connect()与MySQL 数据库建立连接。mysqli_close()关闭与MYSQL 数据库建立的连接。mysqli_connect_errno()与MySQL 数据库建立连接时&#xff0c;发生错误时的错误编号。mysqli_connect_error()与MySQL 数据库建立连接时&#x…