我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

在MySQL中,“with as”也被称为子查询,用于定义一个会被整个SQL语句重复使用多次的SQL片段,这个SQL片段相当于一个公共临时表,语法为“with tmp as(查询语句)”。

mysql中with as的用法是什么

本教程的运行环境:系统,.0.22版本,Dell G3电脑。

mysql 中 with as 的用法是什么

WITH AS 短语也称为子查询部分( ),可以定义整个 SQL 语句将使用的 SQL 片段。它可以使 SQL 语句更具可读性,也可以用作 UNION ALL 不同部分的数据提供者。

对于 UNION ALL,UNION ALL 语句使用 WITH AS 定义。当该片段被调用超过两次时,优化器会自动将 WITH AS 短语得到的数据放入一个 Temp 表中。Hint 会强制将 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用as包起来,给个别名,然后在后面的查询中用这个别名,这样可以优化大量的SQL,并且简洁明了。

推荐学习:MySQL视频教程

二维码
扫一扫在手机端查看

本文链接:https://by928.com/2406.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线