zengweiak47

2020-06-17   阅读量: 618

6月17日学习

扫码加入数据分析学习群

子查询

最多可以嵌套32层

值与空值比较返回的结果也为空值

如果子句in判断条件中有null值那返回结果也为null值

week 函数有2种模式 年初不满7天为0周,这样一年有52周,年初不满7天算为1周,一年有53周.

子查询可以出现在select子句,where/having子句,出现在from子句中.

where 中条件中不能直接使用聚合函数,需要设置别名或需要使用子查询.

子查询优化

MySQL从4.1版本开始支持子查询,使用子查询进行SELECT语句嵌套查询,可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作。

子查询虽然很灵活,但是执行效率并不高。执行子查询时, MySQL需要为内层子查询的查询结果建立一个临时表,然后外层主查询在临时表上进行查询和筛选。查询完毕后再撤销这些临时表,这里多了-一个创建和销毁

临时表的过程。因此,子查询的速度会受到一定的影响,如果查询的数据量比较大,这种影响就会随之增大。

优化方法:可以使用连接查询( join )代替子查询,连接查询不需要建立临时表,因此其速度比子查询快。所有的连接查询都可以替换为子查询,但并不是所有的子查询都可以用连接查询代替。当where子句中需 要使用聚合函数作为筛选条件时,只能使用子查询。

添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
24.8224 2 3 关注作者 收藏

评论(0)


暂无数据

推荐课程