初学者看完都能秒懂的_Mysql(终结篇)
前面写了几篇前序学习,可以去先了解看看噢!! 此篇为续篇之终极篇,话不多说,上货!!
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