MySQL   发布时间:2022-05-15  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了mysql中with as的用法是什么大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

mysql中with as的用法是什么

本教程操作环境:windows10系统、MysqL8.0.22版本、Dell G3电脑。

@H_806_11@mysqL中with as的用法是什么

WITH AS短语,也叫做子查询部分(subquery factoring),可以定义一个sql片断,该sql片断会被整个sql语句用到。可以使sql语句的可读性更高,也可以在union all的不同部分,作为提供数据的部分。

对于union all,使用WITH AS定义了一个union all语句,当该片断被调用2次以上,优化器会自动将该WITH AS短语所获取的数据放入一个Temp表中。而提示meterialize则是强制将WITH AS短语的数据放入一个全局临时表中。很多查询通过该方式都可以提高速度。

因with as 子查询仅执行一次,将结果存储在用户临时表中,提高查询性能,所以适合多次引用的场景,如:复杂的报表统计,分页查询,且需要拿到sum、count、avg这类结果作为筛选条件,对查询出的结果进行二次处理!

特别对于union all比较有用。因为union all的每个部分可能相同,但是如果每个部分都去执行一遍的话,则成本太高

常用语法

–针对一个别名

with tmp as (SELEct * FROM tb_Name)

–针对多个别名

with
tmp as (SELEct * FROM tb_Name),
tmp2 as (SELEct * FROM tb_name2),
tmp3 as (SELEct * FROM tb_name3),
…

–相当于建了个e临时表

with e as (SELEct * from scott.emp e where e.empno=7499)
SELEct * from e;

–相当于建了e、d临时表

with
e as (SELEct * from scott.emp),
d as (SELEct * from scott.dept)
SELEct * from e, d where e.deptno = d.deptno;

其实就是把一大堆重复用到的sql语句放在with as里面,取一个别名,后面的查询就可以用它,这样对于大批量的sql语句起到一个优化的作用,而且清楚明了。

推荐学习:mysql视频教程

大佬总结

以上是大佬教程为你收集整理的mysql中with as的用法是什么全部内容,希望文章能够帮你解决mysql中with as的用法是什么所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: