前言
CTE也就是common table
expressions是sql標(biāo)準(zhǔn)里的語法,很多數(shù)據(jù)庫都能夠支持,MySQL也在8.0版本里加入了CTE功能,本文主要簡單的介紹下該語法的用法,由于筆者對(duì)server層了解不深,本文不探討代碼層
CTE與derived table最大的不同之處是
* 可以自引用,遞歸使用(recursive cte
* 在語句級(jí)別生成獨(dú)立的臨時(shí)表. 多次調(diào)用只會(huì)執(zhí)行一次
* 一個(gè)cte可以引用另外一個(gè)cte
一個(gè)CTE語句其實(shí)和CREATE [TEMPORARY]
TABLE類似,但不需要顯式的創(chuàng)建或刪除,也不需要?jiǎng)?chuàng)建表的權(quán)限。更準(zhǔn)確的說,CTE更像是一個(gè)臨時(shí)的VIEW
示例
語法:
with_clause: WITH [RECURSIVE] cte_name [(col_name [, col_name]
熱門工具 換一換