初学者看完都能秒懂的_Mysql(终结篇)

database

前面写了几篇前序学习,可以去先了解看看噢!! 此篇为续篇之终极篇,话不多说,上货!!

 

MySQL:

一. 多表查询

1. 连接查询

(1)笛卡尔积

 

消除笛卡尔积。

 

(2)内连接查询

以下两种格式,都可以消除笛卡尔积

  • 隐式内连接:select 字段 from A,B where 条件

 

  • 显示内连接:select * from A inner join B on 条件;

 

 

(3)外连接查询

当数据量较大时,内连接查询会占用大量的内存空间,可以使用外链接查询。

 

内连接:先进行交叉相乘,where晒减

外连接:以某张表为基准表,进行扫描拼接

左外连接:select * from A表 left outer join B表 on 连接条件;

右外连接:select * from A表 right outer join B表 on 连接条件;

 

 

 

 

 

 

 

 

小结:

 

  • 内连接:

查询效率:速度较快

内存占用:先笛卡尔积,再进行where晒减,内存占用在初期笛卡尔积的时候会很大。

内连接占用内存空间大

  • 外连接:

查询效率:一般

内存占用:以基准表进行扫描拼接,内存占用在后期才会增大。

外连接占用内存空间小

 

外连接存在的问题:连接中会出现null值。

 

解决null值:

 

画图总结:

 

 

书写顺序:

select 字段 from 表名 on 条件 where 条件 group by 字段 having 条件 order by 字段

 

 

 

2.子查询

子查询:查询中嵌套查询

格式进行select嵌套

               例如select 字段 from 表名 where (select 字段 from 表名…..)…..

              例如:select 字段 from (select 字段 from 表);

 

子查询效率一般,查询越多,效率越低。

子查询执行顺序:先执行最里层查询。

 

 

3.​​​​​​​ 多表查询总结

何时用连接查询,何时用子查询?

子查询:A查询 用到了B查询的查询结果

连接查询:A查询的结果 + B查询的结果

 

 

请给努力中的自己点个赞哦!

每天进步一点点`~~~~~

​​​​​​​

以上是 初学者看完都能秒懂的_Mysql(终结篇) 的全部内容, 来源链接: utcz.com/z/533179.html

回到顶部