千家信息网

mysql中with as怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关mysql中with as怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在mysql中,"with as"也叫子查询,用于定义一个sql片段
千家信息网最后更新 2026年11月01日mysql中with as怎么用

这篇文章给大家分享的是有关mysql中with as怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在mysql中,"with as"也叫子查询,用于定义一个sql片段,且该片段会被整个sql语句反复使用很多次,这个sql片段就相当于是一个公用临时表,语法为"with tmp as (查询语句)"。

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

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)

-针对多个别名

withtmp 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临时表

withe 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中with as怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

查询 语句 部分 别名 数据 片断 片段 短语 结果 内容 更多 篇文章 语法 不同 不错 复杂 实用 清楚 相同 作用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 贷财互联网科技 壕鑫互联网络科技 互联网科技小额贷款 互联网巨头投资的硬核科技 深圳国际航运科技和互联网 央行互联网金融科技公司 承德科技产业互联网发展 互联网金融中的现代科技 青岛科技大学互联网大赛研究生 阿大互联网科技有限公司 互联网科技人工智能实验室 互联网科技和法律行业 伊宁互联网科技做什么的 互联网科技资金流入 富国互联网金融科技混合基金 兰石爱特工业互联网科技分公司 杭州科技互联网公司有哪些 上海旺乐尼互联网科技有限公司 恒生互联网科技趋势 知域互联网科技有限公司官网 广东万易互联网科技有限公司惠州分公司 互联网金融公司科技 兼蜜互联网科技 深圳互联网科技怎么样 新华互联网科技2019 互联网科技与管理 花神(南京)互联网科技有限公司 工业互联网等科技实现智能化赋能 互联网科技数字货币 信承诺互联网科技有限公司
0