MySQL8.0 - 新特性 - CTE(Common Table Expressions)

  1. 云栖社区>
  2. 阿里云数据库ApsaraDB>
  3. 博客>
  4. 正文

MySQL8.0 - 新特性 - CTE(Common Table Expressions)

zhaiwx_yinfeng 2019-06-15 11:06:28 浏览2772
展开阅读全文

前言

CTE也就是common table expressions是sql标准里的语法,很多数据库都能够支持,MySQL也在8.0版本里加入了CTE功能,本文主要简单的介绍下该语法的用法,由于笔者对server层了解不深,本文不探讨代码层

CTE与derived table最大的不同之处是

  • 可以自引用,递归使用(recursive cte
  • 在语句级别生成独立的临时表. 多次调用只会执行一次
  • 一个cte可以引用另外一个cte

一个CTE语句其实和CREATE [TEMPORARY] TABLE类似,但不需要显式的创建或删除,也不需要创建表的权限。更准确的说,CTE更像是一个临时的VIEW

示例

语法:

with_clause:
    WITH [RECURSIVE]
        cte_name [(col_name [, col_name] 

网友评论

登录后评论
0/500
评论
zhaiwx_yinfeng
+ 关注
所属云栖号: 阿里云数据库ApsaraDB