【MySQL-4】表的基本查询

目录

1. 整体学习的思维导图

2. 表的创建

2.1 Create(创建) 

  2.1.1 插入规则 

2.1.2 更新插入

2.2 Retrieve(读取) 

2.2.1 创建一个实例表

2.3 select使用

2.3.1 全表查询

2.3.2 指定序列查询 

2.3.3 查询表达式 

2.3.3.1 为查询表达式改名字 

2.3.4 查询去重 

2.4 where的使用 

> , >=, <, <= 大于,大于等于,小于,小于等于

= / <=> 的区别

!= / <> 不等于

区域范围 -> between A and B / >=A and <=B

IN(option...) 选择,只要是option的任意一个则返回

IS NULL / IS NOT NULL

LIKE

or 或者

查找练习:

 2.5 order by 子句

2.5.1 同学及总分成绩,按总分成绩升序显示

2.5.2 同学及qq 号,按 qq 号降序排序显示 

2.5.3 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示 

2.5.4 查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示 

2.6 筛选分页操作 limit 

以N条为单位展示数据

Limit m offset n 表示起始位置(下标从0开始),m表示显示多少条信息

 2.7 Update的使用

2.7.1 将刘玄德同学的语文成绩变更为 80 分 

2.7.2 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分 

2.7.3 将总成绩倒数前三的 3 位同学的数学成绩加上 50 分 

2.7.4 将所有同学的总成绩更新为原来的 2 倍 

2.8 Delete的使用 

2.8.1 删除孙悟空同学的考试成绩 

2.8.2 删除整张表 

2.8.3 截断表 

2.9 插入查询结果 

3.0 聚合函数

3.0.1 统计班内有多少同学 

3.0.2 班级内english>=100有多少人 

3.0.3 计算班级中语文无重复的个数有多少 

3.0.4 统计数学的总分数 

3.0.6 返回英语最高分 

3.1 group by 子句 

having和where的区别:


1. 整体学习的思维导图

2. 表的创建

2.1 Create(创建) 

我们先创建一个表,需求如下:

  • Id 序号 非空 唯一 自增长

  • Name 姓名 非空

  • Age 年龄

  • Telphone 电话 非空 唯一

mysql> create table if not exists stu_from( 
->  ID int unsigned not null primary key auto_increment, 
->  Name varchar(20) not null comment '姓名', 
->  Age tinyint comment '年龄', 
->  Telphone varchar(25) not null unique comment '电话' 
);mysql> desc stu_from;
+----------+------------------+------+-----+---------+----------------+
| Field    | Type             | Null | Key | Default | Extra          |
+----------+------------------+------+-----+---------+----------------+
| ID       | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| Name     | varchar(20)      | NO   |     | NULL    |                |
| Age      | tinyint(4)       | YES  |     | NULL    |                |
| Telphone | varchar(25)      | NO   | UNI | NULL    |                |
+----------+------------------+------+-----+---------+----------------+

  2.1.1 插入规则 

mysql> insert into 表名(需要插入的字段,不写默认全插入) valuse(插入的数据需要和字段一一对应);
  • 单列插入:

mysql> insert into stu_from(Name,Age,Telphone) values('欧阳',18,'1234567890');
Query OK, 1 row affected (0.00 sec)mysql> insert into stu_from(Name,Age,Telphone) values('牛马',19,'1234567891');
Query OK, 1 row affected (0.00 sec)
  • 多列插入:

mysql> insert into stu_from(Name,Age,Telphone) values('鬼哥',20,'1234567892'), ('张明东',19,'1234567893');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

全字段插入可以省略表名后面括号的内容,如果需要指定插入就需要在括号列出要插入的字段。需要注意的是values()括号内插入的数据顺序需要和stu_from()括号内的字段一一对应。

2.1.2 更新插入

这类插入的核心是:

  • 如果插入的数据不存在那么插入。

  • 如果插入的数据存在修改数据

mysql> insert into stu_from(Name,Age,Telphone) values('欧阳',18,'1234567890');
ERROR 1062 (23000): Duplicate entry '1234567890' for key 'Telphone'-- replace 替换
mysql> replace into stu_from(Id, Name, Age, Telphone) values(1,'ouyang',18,'1234567894');
Query OK, 2 rows affected (0.01 sec)
mysql> select * from stu_from;
+----+-----------+------+------------+
| ID | Name      | Age  | Telphone   |
+----+-----------+------+------------+
|  1 | ouyang    |   18 | 1234567894 |
|  2 | 牛马      |   19 | 1234567891 |
|  3 | 鬼哥      |   20 | 1234567892 |
|  4 | 张明东    |   19 | 1234567893 |
+----+-----------+------+------------+-- on duplicate key update
mysql> insert into stu_from(Name,Age,Telphone) values('ouyang',18,'1234567894') on duplicate key update Name='欧阳',Telphone='1234567890';
Query OK, 2 rows affected (0.00 sec)
mysql> select * from stu_from;
+----+-----------+------+------------+
| ID | Name      | Age  | Telphone   |
+----+-----------+------+------------+
|  1 | 欧阳      |   18 | 1234567890 |
|  2 | 牛马      |   19 | 1234567891 |
|  3 | 鬼哥      |   20 | 1234567892 |
|  4 | 张明东    |   19 | 1234567893 |
+----+-----------+------+------------+

2.2 Retrieve(读取) 

SELECT
[DISTINCT] {* | {column [, column] ...}
[FROM table_name]
[WHERE ...]
[ORDER BY column [ASC | DESC], ...]
LIMIT ...  

2.2.1 创建一个实例表

该表要求如下:

  • id 学号 唯一 自增长

  • name 姓名 非空

  • Chinese 语文成绩 非空

  • math 数学成绩 非空

  • english 英语成绩 非空

mysql> create table if not exists stu_SJ(-> id int unsigned unique auto_increment comment '学号',-> name varchar(20) not null comment '姓名',-> chinese int not null comment '语文成绩',-> math int not null comment '数学成绩',-> english int not null comment '英语成绩'-> );mysql> desc stu_SJ;
+---------+------------------+------+-----+---------+----------------+
| Field   | Type             | Null | Key | Default | Extra          |
+---------+------------------+------+-----+---------+----------------+
| id      | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name    | varchar(20)      | NO   |     | NULL    |                |
| chinese | int(11)          | NO   |     | NULL    |                |
| math    | int(11)          | NO   |     | NULL    |                |
| english | int(11)          | NO   |     | NULL    |                |
+---------+------------------+------+-----+---------+----------------+ 

我们插入以下数据进行测试:

  • ('唐三藏', 67, 98, 56)

  • ('孙悟空', 87, 78, 77)

  • ('猪悟能', 88, 98, 90)

  • ('曹孟德', 82, 84, 67)

  • ('刘玄德', 55, 85, 45)

  • ('孙权', 70, 73, 78)

  • ('宋公明', 75, 65, 30)

mysql> insert into stu_SJ(name,chinese,math,english) values 
('唐三藏', 67,98,56), 
('孙悟空', 87,78,77), 
('猪悟能', 88,98,90), 
('曹孟德', 82,84,67), 
('刘玄德', 55,85,45), 
('孙权', 70,73,78), 
('宋公明', 75,65,30);
Query OK, 7 rows affected (0.00 sec)
Records: 7  Duplicates: 0  Warnings: 0mysql> select * from stu_SJ;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  2 | 孙悟空    |      87 |   78 |      77 |
|  3 | 猪悟能    |      88 |   98 |      90 |
|  4 | 曹孟德    |      82 |   84 |      67 |
|  5 | 刘玄德    |      55 |   85 |      45 |
|  6 | 孙权      |      70 |   73 |      78 |
|  7 | 宋公明    |      75 |   65 |      30 |
+----+-----------+---------+------+---------+

2.3 select使用

2.3.1 全表查询

select * from 表名;  -- 尽量不要使用全表查询,如果表很大会带来资源浪费问题.
mysql> select * from stu_SJ;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  2 | 孙悟空    |      87 |   78 |      77 |
|  3 | 猪悟能    |      88 |   98 |      90 |
|  4 | 曹孟德    |      82 |   84 |      67 |
|  5 | 刘玄德    |      55 |   85 |      45 |
|  6 | 孙权      |      70 |   73 |      78 |
|  7 | 宋公明    |      75 |   65 |      30 |
+----+-----------+---------+------+---------+

2.3.2 指定序列查询 

mysql> select name from stu_SJ;
+-----------+
| name      |
+-----------+
| 唐三藏    |
| 孙悟空    |
| 猪悟能    |
| 曹孟德    |
| 刘玄德    |
| 孙权      |
| 宋公明    |
+-----------+

2.3.3 查询表达式 

mysql> select id, name, 10 from stu_SJ;
+----+-----------+----+
| id | name      | 10 |
+----+-----------+----+
|  1 | 唐三藏    | 10 |
|  2 | 孙悟空    | 10 |
|  3 | 猪悟能    | 10 |
|  4 | 曹孟德    | 10 |
|  5 | 刘玄德    | 10 |
|  6 | 孙权      | 10 |
|  7 | 宋公明    | 10 |
+----+-----------+----+
-- select后面添加不同的字段类型,或者表达式都可以接在表格后面。
-- 一个字段
mysql> select id, name, chinese+10 from stu_SJ;
+----+-----------+------------+
| id | name      | chinese+10 |
+----+-----------+------------+
|  1 | 唐三藏    |         77 |
|  2 | 孙悟空    |         97 |
|  3 | 猪悟能    |         98 |
|  4 | 曹孟德    |         92 |
|  5 | 刘玄德    |         65 |
|  6 | 孙权      |         80 |
|  7 | 宋公明    |         85 |
+----+-----------+------------+-- 多个字段
mysql> select id, name, chinese+math+english from stu_SJ;
+----+-----------+----------------------+
| id | name      | chinese+math+english |
+----+-----------+----------------------+
|  1 | 唐三藏    |                  221 |
|  2 | 孙悟空    |                  242 |
|  3 | 猪悟能    |                  276 |
|  4 | 曹孟德    |                  233 |
|  5 | 刘玄德    |                  185 |
|  6 | 孙权      |                  221 |
|  7 | 宋公明    |                  170 |
+----+-----------+----------------------+
2.3.3.1 为查询表达式改名字 
-- 我们可以将表达式改名字
mysql> select id, name, chinese+math+english as total from stu_SJ;
+----+-----------+-------+
| id | name      | total |
+----+-----------+-------+
|  1 | 唐三藏    |   221 |
|  2 | 孙悟空    |   242 |
|  3 | 猪悟能    |   276 |
|  4 | 曹孟德    |   233 |
|  5 | 刘玄德    |   185 |
|  6 | 孙权      |   221 |
|  7 | 宋公明    |   170 |
+----+-----------+-------+mysql> select id 学号, name 姓名, chinese+math+english as 总分 from stu_SJ;
+--------+-----------+--------+
| 学号   | 姓名      | 总分   |
+--------+-----------+--------+
|      1 | 唐三藏    |    221 |
|      2 | 孙悟空    |    242 |
|      3 | 猪悟能    |    276 |
|      4 | 曹孟德    |    233 |
|      5 | 刘玄德    |    185 |
|      6 | 孙权      |    221 |
|      7 | 宋公明    |    170 |
+--------+-----------+--------+

2.3.4 查询去重 

我们可以看到有些数学的成绩是相同的,如果我们需要去重怎么做呢? 使用distinct 

-- 去重前
mysql> select math 数学 from stu_SJ;
+--------+
| 数学   |
+--------+
|     98 |
|     78 |
|     98 |
|     84 |
|     85 |
|     73 |
|     65 |
+--------+-- 去重后
mysql> select distinct math 数学 from stu_SJ;
+--------+
| 数学   |
+--------+
|     98 |
|     78 |
|     84 |
|     85 |
|     73 |
|     65 |
+--------+

2.4 where的使用 

> , >=, <, <= 大于,大于等于,小于,小于等于
  • 查询语文成绩 >60

  • 查询英语成绩 >=80

  • 查询数学成绩 <60

  • 查询英语成绩 <=80

mysql> select name, chinese from stu_SJ where chinese > 60;
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 唐三藏    |      67 |
| 孙悟空    |      87 |
| 猪悟能    |      88 |
| 曹孟德    |      82 |
| 孙权      |      70 |
| 宋公明    |      75 |
+-----------+---------+mysql> select name, english from stu_SJ where english >= 80;
+-----------+---------+
| name      | english |
+-----------+---------+
| 猪悟能    |      90 |
+-----------+---------+mysql> select name, math from stu_SJ where math < 60;
Empty set (0.00 sec)mysql> select name, english from stu_SJ where english <= 80;
+-----------+---------+
| name      | english |
+-----------+---------+
| 唐三藏    |      56 |
| 孙悟空    |      77 |
| 曹孟德    |      67 |
| 刘玄德    |      45 |
| 孙权      |      78 |
| 宋公明    |      30 |
+-----------+---------+
= / <=> 的区别

这个在计算NULL会体现出来:

=等于,NULL 不安全,例如 NULL = NULL 的结果是 NULL
<=>等于,NULL 安全,例如 NULL <=> NULL 的结果是 TRUE(1)
  mysql> select NULL = NULL;
+-------------+
| NULL = NULL |
+-------------+
|        NULL |
+-------------+mysql> select NULL <=> NULL;
+---------------+
| NULL <=> NULL |
+---------------+
|             1 |
+---------------+
!= / <> 不等于
  • 查找表中id不等于3的数据

  • 查找表中name不等于孙悟空的数据

mysql> select * from stu_SJ where id!=3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  2 | 孙悟空    |      87 |   78 |      77 |
|  4 | 曹孟德    |      82 |   84 |      67 |
|  5 | 刘玄德    |      55 |   85 |      45 |
|  6 | 孙权      |      70 |   73 |      78 |
|  7 | 宋公明    |      75 |   65 |      30 |
+----+-----------+---------+------+---------+mysql> select * from stu_SJ where name<>'孙悟空';
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  3 | 猪悟能    |      88 |   98 |      90 |
|  4 | 曹孟德    |      82 |   84 |      67 |
|  5 | 刘玄德    |      55 |   85 |      45 |
|  6 | 孙权      |      70 |   73 |      78 |
|  7 | 宋公明    |      75 |   65 |      30 |
+----+-----------+---------+------+---------+
区域范围 -> between A and B / >=A and <=B
  • 查找数学成绩在60~90之间的同学

  • 查找id在2~6之间的同学

  • 查找总分(c+m+e)成绩在150~200之间的同学

mysql> select name,math from stu_SJ where math between 60 and 90;
+-----------+------+
| name      | math |
+-----------+------+
| 孙悟空    |   78 |
| 曹孟德    |   84 |
| 刘玄德    |   85 |
| 孙权      |   73 |
| 宋公明    |   65 |
+-----------+------+mysql> select id,name from stu_SJ where id >=2 and id <=6;
+----+-----------+
| id | name      |
+----+-----------+
|  2 | 孙悟空    |
|  3 | 猪悟能    |
|  4 | 曹孟德    |
|  5 | 刘玄德    |
|  6 | 孙权      |
+----+-----------+mysql> select id,name,chinese+math+english as total from stu_SJ where chinese+math+english between 150 and 200;
+----+-----------+-------+
| id | name      | total |
+----+-----------+-------+
|  5 | 刘玄德    |   185 |
|  7 | 宋公明    |   170 |
+----+-----------+-------+-- 注意total名称是查找完数据进行的名称修改是在查找之后,如果where total between 150 and 200会报错
mysql> select id,name,chinese+math+english as total from stu_SJ where total between 150 and 200;
ERROR 1054 (42S22): Unknown column 'total' in 'where clause'
IN(option...) 选择,只要是option的任意一个则返回
  • 查询chinese 60 67 70 88

 mysql> select * from stu_SJ where chinese in(60,67,70,80);
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  6 | 孙权      |      70 |   73 |      78 |
+----+-----------+---------+------+---------+
IS NULL / IS NOT NULL

查询是否为null

创建一个新表:

  • id 非空 唯一 自增

  • name 非空

  • QQ

mysql> create table if not exists from1(-> id int unsigned not null primary key auto_increment comment '学号',-> name varchar(10) not null comment '姓名',-> QQ varchar(28) -> );
Query OK, 0 rows affected (0.01 sec)mysql> desc from1;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(10)      | NO   |     | NULL    |                |
| QQ    | varchar(28)      | YES  |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+

  插入以下数据:

  • 欧阳, 1111

  • 牛马, NULL

  • 张明东, 2222

  • 鬼哥, NULL

mysql> insert from1(name,QQ) values('欧阳','1111');
mysql> insert from1(name,QQ) values('牛马','NULL');
mysql> insert from1(name,QQ) values('张明东','2222');
mysql> insert from1(name,QQ) values('鬼哥',NULL);mysql> select * from from1;
+----+-----------+------+
| id | name      | QQ   |
+----+-----------+------+
|  1 | 欧阳      | 1111 |
|  2 | 牛马      | NULL |
|  3 | 张明东    | 2222 |
|  4 | 鬼哥      | NULL |
+----+-----------+------+
  • 查找QQ为null

  • 查找QQ非null

mysql> select * from from1 where QQ is null;
+----+--------+------+
| id | name   | QQ   |
+----+--------+------+
|  2 | 牛马   | NULL |
|  4 | 鬼哥   | NULL |
+----+--------+------+mysql> select * from from1 where QQ is not null;
+----+-----------+------+
| id | name      | QQ   |
+----+-----------+------+
|  1 | 欧阳      | 1111 |
|  3 | 张明东    | 2222 |
+----+-----------+------+
LIKE

模糊匹配。% 表示任意多个(包括 0 个)任意字符;_ 表示任意一个字符

  • 查询姓孙的同学

  • 查询孙某同学

mysql> select name from stu_SJ where name like '孙%';
+-----------+
| name      |
+-----------+
| 孙悟空    |
| 孙权      |
+-----------+mysql> select name from stu_SJ where name like '孙_';
+--------+
| name   |
+--------+
| 孙权   |
+--------+
or 或者
  • 查询语文成绩在80~90 or 英语成绩 >80

  • 查询要么是孙姓学生 or total(总分) > 220

mysql> select name,chinese,english from stu_SJ where (chinese between 80 and 90) or (english > 80);
+-----------+---------+---------+
| name      | chinese | english |
+-----------+---------+---------+
| 孙悟空    |      87 |      77 |
| 猪悟能    |      88 |      90 |
| 曹孟德    |      82 |      67 |
+-----------+---------+---------+mysql> select name, chinese+math+english as total from stu_SJ where name like '孙%' or chinese+math+english > 220;
+-----------+-------+
| name      | total |
+-----------+-------+
| 唐三藏    |   221 |
| 孙悟空    |   242 |
| 猪悟能    |   276 |
| 曹孟德    |   233 |
| 孙权      |   221 |
+-----------+-------+
查找练习:
  • 查询不姓孙的同学

  • 查找语文成绩好于英语成绩的同学

  • 语文成绩 80 并且不姓孙的同学

mysql> select name from stu_SJ where name not like'孙%';
+-----------+
| name      |
+-----------+
| 唐三藏    |
| 猪悟能    |
| 曹孟德    |
| 刘玄德    |
| 宋公明    |
+-----------+mysql> select name,chinese,english from stu_SJ where chinese>english;
+-----------+---------+---------+
| name      | chinese | english |
+-----------+---------+---------+
| 唐三藏    |      67 |      56 |
| 孙悟空    |      87 |      77 |
| 曹孟德    |      82 |      67 |
| 刘玄德    |      55 |      45 |
| 宋公明    |      75 |      30 |
+-----------+---------+---------+mysql> select name,chinese from stu_SJ where chinese > 80 and name not like'孙%';
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 猪悟能    |      88 |
| 曹孟德    |      82 |
+-----------+---------+

 2.5 order by 子句

-- ASC 为升序(从小到大) -- DESC 为降序(从大到小) -- 默认为 ASC
SELECT ... FROM table_name [WHERE ...]
ORDER BY column [ASC|DESC], [...];  

注意:没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序

2.5.1 同学及总分成绩,按总分成绩升序显示

mysql> select name,chinese+math+english as total from stu_SJ order by chinese+math+english asc;
+-----------+-------+
| name      | total |
+-----------+-------+
| 宋公明    |   170 |
| 刘玄德    |   185 |
| 唐三藏    |   221 |
| 孙权      |   221 |
| 曹孟德    |   233 |
| 孙悟空    |   242 |
| 猪悟能    |   276 |
+-----------+-------+

2.5.2 同学及qq 号,按 qq 号降序排序显示 

mysql> select name,QQ from from1 order by QQ desc;
+-----------+------+
| name      | QQ   |
+-----------+------+
| 张明东    | 2222 |
| 欧阳      | 1111 |
| 牛马      | NULL |
| 鬼哥      | NULL |
+-----------+------+
-- NULL比任何数都小

2.5.3 查询同学各门成绩,依次按 数学降序,英语升序,语文升序的方式显示 

mysql> select name,math,english,chinese from stu_SJ order by math desc, english asc, chinese asc;
+-----------+------+---------+---------+
| name      | math | english | chinese |
+-----------+------+---------+---------+
| 唐三藏    |   98 |      56 |      67 |
| 猪悟能    |   98 |      90 |      88 |
| 刘玄德    |   85 |      45 |      55 |
| 曹孟德    |   84 |      67 |      82 |
| 孙悟空    |   78 |      77 |      87 |
| 孙权      |   73 |      78 |      70 |
| 宋公明    |   65 |      30 |      75 |
+-----------+------+---------+---------+

2.5.4 查询姓孙的同学或者姓曹的同学数学成绩,结果按数学成绩由高到低显示 

mysql> select name,math from stu_SJ where name like'孙%' or name like'曹%' order by math desc;
+-----------+------+
| name      | math |
+-----------+------+
| 曹孟德    |   84 |
| 孙悟空    |   78 |
| 孙权      |   73 |
+-----------+------+

2.6 筛选分页操作 limit 

-- 起始下标为 0-- 从 0 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n;-- 从 s 开始,筛选 n 条结果
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT s, n-- 从 s 开始,筛选 n 条结果,比第二种用法更明确,建议使用
SELECT ... FROM table_name [WHERE ...] [ORDER BY ...] LIMIT n OFFSET s;  
  • 以N条为单位展示数据

mysql> select * from stu_SJ limit 3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  2 | 孙悟空    |      87 |   78 |      77 |
|  3 | 猪悟能    |      88 |   98 |      90 |
+----+-----------+---------+------+---------+
  • Limit m offset n 表示起始位置(下标从0开始),m表示显示多少条信息

mysql> select * from stu_SJ limit 3 offset 0;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  2 | 孙悟空    |      87 |   78 |      77 |
|  3 | 猪悟能    |      88 |   98 |      90 |
+----+-----------+---------+------+---------+mysql> select * from stu_SJ limit 3 offset 3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  4 | 曹孟德    |      82 |   84 |      67 |
|  5 | 刘玄德    |      55 |   85 |      45 |
|  6 | 孙权      |      70 |   73 |      78 |
+----+-----------+---------+------+---------+mysql> select * from stu_SJ limit 3 offset 6;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  7 | 宋公明    |      75 |   65 |      30 |
+----+-----------+---------+------+---------+

 2.7 Update的使用

UPDATE table_name SET column = expr [, column = expr ...]
[WHERE ...] [ORDER BY ...] [LIMIT ...]  

2.7.1 将刘玄德同学的语文成绩变更为 80 分 

mysql> select * from stu_SJ limit 3 offset 0;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |      67 |   98 |      56 |
|  2 | 孙悟空    |      87 |   78 |      77 |
|  3 | 猪悟能    |      88 |   98 |      90 |
+----+-----------+---------+------+---------+mysql> select * from stu_SJ limit 3 offset 3;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  4 | 曹孟德    |      82 |   84 |      67 |
|  5 | 刘玄德    |      55 |   85 |      45 |
|  6 | 孙权      |      70 |   73 |      78 |
+----+-----------+---------+------+---------+mysql> select * from stu_SJ limit 3 offset 6;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  7 | 宋公明    |      75 |   65 |      30 |
+----+-----------+---------+------+---------+mysql> update stu_SJ set chinese=80 where name='刘玄德';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select name,chinese from stu_SJ where name='刘玄德';
+-----------+---------+
| name      | chinese |
+-----------+---------+
| 刘玄德    |      80 |
+-----------+---------+

2.7.2 将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分 

mysql> select name,math,chinese from stu_SJ where name='曹孟德';
+-----------+------+---------+
| name      | math | chinese |
+-----------+------+---------+
| 曹孟德    |   84 |      82 |
+-----------+------+---------+mysql> update stu_SJ set math=60,chinese=70 where name='曹孟德';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0mysql> select name,math,chinese from stu_SJ where name='曹孟德';
+-----------+------+---------+
| name      | math | chinese |
+-----------+------+---------+
| 曹孟德    |   60 |      70 |
+-----------+------+---------+

2.7.3 将总成绩倒数前三的 3 位同学的数学成绩加上 50 分 

-- 找出倒数前三位的成绩
mysql> select name,chinese+math+english as total from stu_SJ order by total asc limit 3;
+-----------+-------+
| name      | total |
+-----------+-------+
| 宋公明    |   170 |
| 曹孟德    |   197 |
| 刘玄德    |   210 |
+-----------+-------+mysql> update stu_SJ set math=math+30 order by chinese+math+english asc limit 3;
mysql> select name,chinese+math+english as total from stu_SJ order by total asc limit 3;
+-----------+-------+
| name      | total |
+-----------+-------+
| 宋公明    |   200 |
| 唐三藏    |   221 |
| 孙权      |   221 |
+-----------+-------+

2.7.4 将所有同学的总成绩更新为原来的 2 倍 

mysql> select name,chinese+math+english total from stu_SJ order by total desc;
+-----------+-------+
| name      | total |
+-----------+-------+
| 猪悟能    |   276 |
| 孙悟空    |   242 |
| 刘玄德    |   240 |
| 曹孟德    |   227 |
| 唐三藏    |   221 |
| 孙权      |   221 |
| 宋公明    |   200 |
+-----------+-------+mysql> update stu_SJ set chinese=chinese*2,math=math*2,english=english*2;mysql> select name,chinese+math+english total from stu_SJ order by total desc;
+-----------+-------+
| name      | total |
+-----------+-------+
| 猪悟能    |   552 |
| 孙悟空    |   484 |
| 刘玄德    |   480 |
| 曹孟德    |   454 |
| 唐三藏    |   442 |
| 孙权      |   442 |
| 宋公明    |   400 |
+-----------+-------+

2.8 Delete的使用 

DELETE FROM table_name [WHERE ...] [ORDER BY ...] [LIMIT ...]  

2.8.1 删除孙悟空同学的考试成绩 

mysql> delete from stu_SJ where name='孙悟空';
Query OK, 1 row affected (0.00 sec)mysql> select * from stu_SJ;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |     134 |  196 |     112 |
|  3 | 猪悟能    |     176 |  196 |     180 |
|  4 | 曹孟德    |     140 |  180 |     134 |
|  5 | 刘玄德    |     160 |  230 |      90 |
|  6 | 孙权      |     140 |  146 |     156 |
|  7 | 宋公明    |     150 |  190 |      60 |
+----+-----------+---------+------+---------+

2.8.2 删除整张表 

-- 谨慎使用
-- 我们先创建一个删除用例用于测试
mysql> create table if not exists Test_delete(-> id int unsigned primary key auto_increment,-> name char(5) -> );mysql> desc Test_delete;
+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | char(5)          | YES  |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+mysql> insert into Test_delete(name) values('A'),('B'),('C');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0mysql> select * from Test_delete limit 3 offset 0;
+----+------+
| id | name |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | C    |
+----+------+mysql> select * from Test_delete limit 3;
Empty set (0.00 sec)mysql> show create table Test_delete \G;
*************************** 1. row ***************************Table: Test_delete
Create Table: CREATE TABLE `Test_delete` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` char(5) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

2.8.3 截断表 

TRUNCATE [TABLE] table_name  

注意:这个操作慎用

  1. 只能对整表操作,不能像 DELETE 一样针对部分数据操作;

  2. 实际上 MySQL 不对数据操作,所以比 DELETE 更快,但是TRUNCATE在删除数据的时候,并不经过真正的事

物,所以无法回滚

  1. 会重置 AUTO_INCREMENT 项

CREATE TABLE for_truncate (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(20)
);  mysql> desc for_truncate;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| name  | varchar(20) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+mysql> insert into for_truncate(name) values('A'),('B'),('C');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0mysql> select * from for_truncate;
+----+------+
| id | name |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | C    |
+----+------+mysql> show create table for_truncate \G;
*************************** 1. row ***************************Table: for_truncate
Create Table: CREATE TABLE `for_truncate` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(20) DEFAULT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

2.9 插入查询结果 

INSERT INTO table_name [(column [, column ...])] SELECT ...  

本次案例是将一个表中的重复数据去掉插入到另一个表中。

两个表分别为:Test_tb 和 TestCp_tb

-- 我们先来创建一个测试表
mysql> create table if not exists Test_tb( id int unsigned , name varchar(15) );
-- 插入一些数据
mysql> insert into Test_tb(id, name) values(100, 'aaa');
mysql> insert into Test_tb(id, name) values(100, 'aaa');
mysql> insert into Test_tb(id, name) values(200, 'bbb');
mysql> insert into Test_tb(id, name) values(200, 'bbb');
mysql> insert into Test_tb(id, name) values(300, 'bbb');
mysql> insert into Test_tb(id, name) values(300, 'ccc');
mysql> insert into Test_tb(id, name) values(400, 'ccc');
mysql> insert into Test_tb(id, name) values(400, 'ccc');mysql> select * from Test_tb;
+------+------+
| id   | name |
+------+------+
|  100 | aaa  |
|  100 | aaa  |
|  200 | bbb  |
|  200 | bbb  |
|  300 | bbb  |
|  300 | ccc  |
|  400 | ccc  |
|  400 | ccc  |
+------+------+-- 第一步了解怎么筛选去重 -- detinct
mysql> select distinct * from Test_tb;
+------+------+
| id   | name |
+------+------+
|  100 | aaa  |
|  200 | bbb  |
|  300 | bbb  |
|  300 | ccc  |
|  400 | ccc  |
+------+------+-- 创建一个一模一样的表
mysql> create table if not exists TestCP_tb like Test_tb;
Query OK, 0 rows affected (0.01 sec)mysql> desc TestCP_tb;
+-------+------------------+------+-----+---------+-------+
| Field | Type             | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+-------+
| id    | int(10) unsigned | YES  |     | NULL    |       |
| name  | varchar(15)      | YES  |     | NULL    |       |
+-------+------------------+------+-----+---------+-------+-- 向表中插入筛选出的非重复数据
mysql> insert into TestCP_tb select distinct * from Test_tb;
Query OK, 5 rows affected (0.00 sec)
Records: 5  Duplicates: 0  Warnings: 0mysql> select * from TestCP_tb;
+------+------+
| id   | name |
+------+------+
|  100 | aaa  |
|  200 | bbb  |
|  300 | bbb  |
|  300 | ccc  |
|  400 | ccc  |
+------+------+

3.0 聚合函数

函数+说明

  • COUNT([DISTINCT] expr) 返回查询到的数据的 数量

  • SUM([DISTINCT] expr) 返回查询到的数据的 总和,不是数字没有意义

  • AVG([DISTINCT] expr) 返回查询到的数据的 平均值,不是数字没有意义

  • MAX([DISTINCT] expr) 返回查询到的数据的 最大值,不是数字没有意义

  • MIN([DISTINCT] expr) 返回查询到的数据的 最小值,不是数字没有意义

    • 样例表

mysql> select * from stu_SJ;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |     134 |  196 |     112 |
|  2 | 孙悟空    |     120 |  200 |      79 |
|  3 | 猪悟能    |     120 |  196 |     180 |
|  4 | 曹孟德    |     140 |  180 |     134 |
|  5 | 刘玄德    |     160 |  230 |      90 |
|  6 | 孙权      |     140 |  146 |     156 |
|  7 | 宋公明    |     150 |  190 |      60 |
+----+-----------+---------+------+---------+

3.0.1 统计班内有多少同学 

mysql> select count(*) from stu_SJ;
+----------+
| count(*) |
+----------+
|        7 |
+----------+

3.0.2 班级内english>=100有多少人 

mysql> select count(english) from stu_SJ where english>=100;
+----------------+
| count(english) |
+----------------+
|              4 |
+----------------+

3.0.3 计算班级中语文无重复的个数有多少 

mysql> select * from stu_SJ;
+----+-----------+---------+------+---------+
| id | name      | chinese | math | english |
+----+-----------+---------+------+---------+
|  1 | 唐三藏    |     134 |  196 |     112 |
|  2 | 孙悟空    |     120 |  200 |      79 |
|  3 | 猪悟能    |     120 |  196 |     180 |
|  4 | 曹孟德    |     140 |  180 |     134 |
|  5 | 刘玄德    |     160 |  230 |      90 |
|  6 | 孙权      |     140 |  146 |     156 |
|  7 | 宋公明    |     150 |  190 |      60 |
+----+-----------+---------+------+---------+
7 rows in set (0.00 sec)mysql> select count(distinct chinese) from stu_SJ;
+-------------------------+
| count(distinct chinese) |
+-------------------------+
|                       5 |
+-------------------------+

3.0.4 统计数学的总分数 

mysql> select sum(math) from stu_SJ;
+-----------+
| sum(math) |
+-----------+
|      1338 |
+-----------+

3.0.6 返回英语最高分 

-- max
mysql> select max(english) from stu_SJ;
+--------------+
| max(english) |
+--------------+
|          180 |
+--------------+-- 找到math <= 150 的最高分
mysql> select max(math) from stu_SJ where math <= 150;
+-----------+
| max(math) |
+-----------+
|       146 |
+-----------+

3.1 group by 子句 

在select中使用group by 子句可以对指定列进行分组查询 

select column1, column2, .. from table group by column;  

案例准备:

  • 准备工作,创建一个雇员信息表(来自oracle 9i的经典测试表)

    • EMP员工表

    • DEPT部门表

    • SALGRADE工资等级表

mysql> use scott;
Database changed
mysql> show tables;
+-----------------+
| Tables_in_scott |
+-----------------+
| dept            |
| emp             |
| salgrade        |
+-----------------+mysql> select * from dept;
+--------+------------+----------+
| deptno | dname      | loc      |
+--------+------------+----------+
|     10 | ACCOUNTING | NEW YORK |
|     20 | RESEARCH   | DALLAS   |
|     30 | SALES      | CHICAGO  |
|     40 | OPERATIONS | BOSTON   |
+--------+------------+----------+mysql> select * from emp;
+--------+--------+-----------+------+---------------------+---------+---------+--------+
| empno  | ename  | job       | mgr  | hiredate            | sal     | comm    | deptno |
+--------+--------+-----------+------+---------------------+---------+---------+--------+
| 007369 | SMITH  | CLERK     | 7902 | 1980-12-17 00:00:00 |  800.00 |    NULL |     20 |
| 007499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 00:00:00 | 1600.00 |  300.00 |     30 |
| 007521 | WARD   | SALESMAN  | 7698 | 1981-02-22 00:00:00 | 1250.00 |  500.00 |     30 |
| 007566 | JONES  | MANAGER   | 7839 | 1981-04-02 00:00:00 | 2975.00 |    NULL |     20 |
| 007654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 |     30 |
| 007698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 00:00:00 | 2850.00 |    NULL |     30 |
| 007782 | CLARK  | MANAGER   | 7839 | 1981-06-09 00:00:00 | 2450.00 |    NULL |     10 |
| 007788 | SCOTT  | ANALYST   | 7566 | 1987-04-19 00:00:00 | 3000.00 |    NULL |     20 |
| 007839 | KING   | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 |    NULL |     10 |
| 007844 | TURNER | SALESMAN  | 7698 | 1981-09-08 00:00:00 | 1500.00 |    0.00 |     30 |
| 007876 | ADAMS  | CLERK     | 7788 | 1987-05-23 00:00:00 | 1100.00 |    NULL |     20 |
| 007900 | JAMES  | CLERK     | 7698 | 1981-12-03 00:00:00 |  950.00 |    NULL |     30 |
| 007902 | FORD   | ANALYST   | 7566 | 1981-12-03 00:00:00 | 3000.00 |    NULL |     20 |
| 007934 | MILLER | CLERK     | 7782 | 1982-01-23 00:00:00 | 1300.00 |    NULL |     10 |
+--------+--------+-----------+------+---------------------+---------+---------+--------+mysql> select * from salgrade;
+-------+-------+-------+
| grade | losal | hisal |
+-------+-------+-------+
|     1 |   700 |  1200 |
|     2 |  1201 |  1400 |
|     3 |  1401 |  2000 |
|     4 |  2001 |  3000 |
|     5 |  3001 |  9999 |
+-------+-------+-------+

如何显示每个部门的平均工资和最高工资 

-- 分成多个部门
mysql> select deptno from emp group by deptno;
+--------+
| deptno |
+--------+
|     10 |
|     20 |
|     30 |
+--------+mysql> select deptno,avg(sal),max(sal) from emp group by deptno;
+--------+-------------+----------+
| deptno | avg(sal)    | max(sal) |
+--------+-------------+----------+
|     10 | 2916.666667 |  5000.00 |
|     20 | 2175.000000 |  3000.00 |
|     30 | 1566.666667 |  2850.00 |
+--------+-------------+----------+
  • 显示每个部门的每种岗位的平均工资和最低工资

    mysql> select job,avg(sal),min(sal) from emp group by job;
    +-----------+-------------+----------+
    | job       | avg(sal)    | min(sal) |
    +-----------+-------------+----------+
    | ANALYST   | 3000.000000 |  3000.00 |
    | CLERK     | 1037.500000 |   800.00 |
    | MANAGER   | 2758.333333 |  2450.00 |
    | PRESIDENT | 5000.000000 |  5000.00 |
    | SALESMAN  | 1400.000000 |  1250.00 |
    +-----------+-------------+----------+
  • 显示平均工资低于2000的部门和它的平均工资

    • 统计各个部门的平均工资

    • having和group by配合使用,对group by结果进行过滤

mysql> select avg(sal) from emp group by deptno having avg(sal) < 2000;
+-------------+
| avg(sal)    |
+-------------+
| 1566.666667 |
+-------------+
--having经常和group by搭配使用,作用是对分组进行筛选,作用有些像where。  

having和where的区别:

  1. WHERE:用于在数据分组前过滤记录,不支持聚合函数,可以使用任意字段作为过滤条件。

  2. HAVING:用于在数据分组后过滤分组,支持聚合函数,但不能包含既不在GROUP BY子句中也不在聚合函数中的字段,可以使用字段别名作为过滤条件。

面试题:SQL查询中各个关键字的执行先后顺序 from > on> join > where > group by > with > having > select > distinct > order by > limit

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

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

相关文章

无人机航测技术算法概述!

一、核心技术 传感器技术&#xff1a; GPS/GLONASS&#xff1a;无人机通过卫星定位系统实现高精度的飞行控制和数据采集。 高清相机&#xff1a;用于拍摄地面图像&#xff0c;通过后续图像处理生成三维模型。 激光雷达&#xff08;LiDAR&#xff09;&#xff1a;通过激光扫…

uniapp 自定义加载组件,全屏加载,局部加载 (微信小程序)

效果图 全屏加载 页面加载使用 局部加载 列表加载里面使用 使用gif html <template><view><view class"" v-if"typeFullScreen"><view class"loading" v-if"show"><view class""><i…

【D3.js in Action 3 精译_040】4.4 D3 弧形图的绘制方法

当前内容所在位置&#xff1a; 第四章 直线、曲线与弧线的绘制 ✔️ 4.1 坐标轴的创建&#xff08;上篇&#xff09; 4.1.1 D3 中的边距约定&#xff08;中篇&#xff09;4.1.2 坐标轴的生成&#xff08;中篇&#xff09; 4.1.2.1 比例尺的声明&#xff08;中篇&#xff09;4.1…

element ui 走马灯一页展示多个数据实现

element ui 走马灯一页展示多个数据实现 element ui 走马灯一页展示多个数据实现 element ui 走马灯一页展示多个数据实现 主要是对走马灯的数据的操作&#xff0c;先看js处理 let list [{ i: 1, name: 1 },{ i: 2, name: 2 },{ i: 3, name: 3 },{ i: 4, name: 4 },]let newL…

使用MaxKB搭建知识库问答系统并接入个人网站(halo)

首发地址&#xff08;欢迎大家访问&#xff09;&#xff1a;使用MaxKB搭建知识库问答系统并接入个人网站 前言 从OpenAI推出ChatGPT到现在&#xff0c;大模型已经渗透到各行各业&#xff0c;大模型也逐渐趋于平民化&#xff1b;从最开始对其理解、生成、强大的知识积累的惊叹&…

Linux进阶:软件安装、网络操作、端口、进程等

软件安装 yum 和 apt 均需要root权限 CentOS系统使用&#xff1a; yum [install remove search] [-y] 软件名称 install 安装remove 卸载search 搜索-y&#xff0c;自动确认 Ubuntu系统使用 apt [install remove search] [-y] 软件名称 install 安装remove 卸载search 搜索-y&…

如何解决飞书网页文字无法复制的问题

如何解决网页文字无法复制的问题&#xff1f;特别推荐提词宝防复制文案功能&#xff01; 在日常工作和学习中&#xff0c;我们经常遇到一些网页文字无法复制的情况&#xff0c;无论是因为权限限制还是其他原因&#xff0c;手动输入内容不仅耗时费力&#xff0c;还容易出错。那…

STM32电源管理—实现低功耗

注&#xff1a; 本文是学习野火的指南针开发板过程的学习笔记&#xff0c;可能有误&#xff0c;详细请看B站野火官方配套视频教程&#xff08;这个教程真的讲的很详细&#xff0c;请给官方三连吧&#xff09; 在响应绿色发展的同时&#xff0c;在很多应用场合中都对电子设备的功…

Linux网络:守护进程

Linux网络&#xff1a;守护进程 会话进程组会话终端 守护进程setsiddaemon 在创建一个网络服务后&#xff0c;往往这个服务进程是一直运行的。但是对于大部分进程来说&#xff0c;如果退出终端&#xff0c;这个终端上创建的所有进程都会退出&#xff0c;这就导致进程的生命周期…

基于深度学习的文本信息提取方法研究(pytorch python textcnn框架)

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

Seatunnel解决Excel中无法将数字类型转换成字符串类型以及源码打包

需求 需要实现将Excel中的数字类型的单元格像数据库中字符串类型的字段中推送 问题原因 Seatunnel在读取字段类型的时候都是使用强转的形式去获取数据的 假如说数据类型不一样的话直接强转就会报错 修改位置 org/apache/seatunnel/api/table/type/SeaTunnelRow.java org…

AntFlow 0.11.0版发布,增加springboot starter模块,一款设计上借鉴钉钉工作流的免费企业级审批流平台

AntFlow 0.11.0版发布,增加springboot starter模块,一款设计上借鉴钉钉工作流的免费企业级审批流平台 传统老牌工作流引擎比如activiti,flowable或者camunda等虽然功能强大&#xff0c;也被企业广泛采用&#xff0c;然后也存着在诸如学习曲线陡峭&#xff0c;上手难度大&#x…

UniAPP快速入门教程(一)

一、下载HBuilder 首先需要下载HBuilder开发工具&#xff0c;下载地址:https://www.dcloud.io/hbuilderx.htmlhttps://www.dcloud.io/hbuilder.html 选择Windows正式版.zip文件下载。下载解压后直接运行解压目录里的HBuilderX.exe就可以启动HBuilder。 UniApp的插件市场网址…

计算机网络 (5)数据通信的基础知识

前言 数据通信是一种以信息处理技术和计算机技术为基础的通信方式&#xff0c;它通过数据通信系统将数据以某种信号方式从一处传送到另一处&#xff0c;为计算机网络的应用和发展提供了技术支持和可靠的通信环境&#xff0c;是现代通信技术的关键部分。 一、数据通信的基本概念…

K8s学习笔记之了解k8s的网络模型

文章目录 docker 网络模型容器与容器之间&#xff0c;容器与宿主机之间如何通信容器访问外部网络外部网络访问容器 k8s 网络模型CNIpod 网络配置流程 k8s 热门网络插件介绍Flannel 来源Calico 来源Cilium 来源 k8s 网络插件的工作模式Flannel 的工作模式Calico 的工作模式BGP 和…

Python 三种方式实现自动化任务

在这篇文章中&#xff0c;我们将介绍一些用Python实现机器人过程自动化的包。机器人流程自动化&#xff08;Robotic process automation&#xff0c;简称RPA&#xff09;是指将鼠标点击和键盘按压自动化的过程&#xff0c;即模拟人类用户的操作。RPA用于各种应用程序&#xff0…

时代变迁对传统机器人等方向课程的巨大撕裂

2020年之后&#xff0c;全面转型新质课程规划&#xff0c;传统课程规划全部转为经验。 农耕-代表性生产关系-封建分配制度主要生产力-人力工业-代表性生产关系-资本分配制度工业分为机械时代&#xff0c;电气时代&#xff0c;信息时代&#xff1b;主要生产力-人力转为人脑&…

流程图图解@RequestBody @RequestPart @RequestParam @ModelAttribute

RequestBody 只能用一次&#xff0c;因为只有一个请求体 #mermaid-svg-8WZfkzl0GPvOiNj3 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-8WZfkzl0GPvOiNj3 .error-icon{fill:#552222;}#mermaid-svg-8WZfkzl0GPvOiNj…

学习记录:js算法(九十九):冗余连接

文章目录 冗余连接思路一 冗余连接 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1&#xff5e;n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间&#xff0c;且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数…

ISUP协议视频平台EasyCVR私有化部署视频平台如何实现RTMP推流将大疆无人机的视频画面回传?

在现代视频监控和流媒体技术领域&#xff0c;EasyCVR视频融合云平台以其卓越的性能和灵活性&#xff0c;成为了跨区域、网络化视频监控综合管理的理想选择。作为TSINGSEE青犀视频“云边端”架构体系中的核心组件&#xff0c;私有化部署视频平台EasyCVR不仅能够实现视频数据的集…