小編給大家分享一下SQL中的CTE有什么用,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
在樺甸等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需網(wǎng)站設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,樺甸網(wǎng)站建設(shè)費(fèi)用合理。
CTE表示公用表表達(dá)式,是一個臨時命名結(jié)果集,始終返回結(jié)果集。它是為了簡化SQL查詢,而被標(biāo)準(zhǔn)SQL引入的。下面本篇文章就來帶大家認(rèn)識一下CTE(公用表表達(dá)式),希望對大家有所幫助。
CTE是什么?
公用表表達(dá)式(CTE)可以被認(rèn)為是在單個SELECT,INSERT,UPDATE,DELETE或CREATE VIEW語句的執(zhí)行范圍內(nèi)定義的臨時結(jié)果集。CTE類似于派生表,因為它不作為對象存儲,并且僅在查詢期間持續(xù)。與派生表不同,CTE可以是自引用的,并且可以在同一查詢中多次引用?!鞠嚓P(guān)視頻教程推薦:MySQL教程】
CTE的結(jié)構(gòu)
CTE由表示CTE的表達(dá)式名稱,AS關(guān)鍵字和SELECT語句組成。定義CTE后,可以在SELECT,INSERT,UPDATE或DELETE語句中像表或視圖一樣引用它。CTE也可以在CREATE VIEW語句中用作其定義SELECT語句的一部分。
CTE的基本語法結(jié)構(gòu)是:
WITH Expression_Name [ ( ColumnName [1,...n] ) ] AS ( CTE query definition )
說明:我們可以通過在SELECT,INSERT,UPDATE,DELETE或MERGE語句之前直接添加WITH子句來定義CTE。WITH子句中可以包含一個或多個逗號分隔的CTE。
運(yùn)行CTE的聲明是:
SELECTFROM expression_name;
CTE的類型
CTE有兩種類型:遞歸和非遞歸。
遞歸CTE:是引用自身的常用表表達(dá)式。
非遞歸CTE,顧名思義,不使用遞歸;他們不參考自己。
使用CTE的好處
○ 可讀性:CTE提高了可讀性。而不是將所有查詢邏輯都集中到一個大型查詢中,而是創(chuàng)建幾個CTE,它們將在語句的后面組合。這使您可以獲得所需的數(shù)據(jù)塊,并將它們組合在最終的SELECT中。
○ 替代視圖:您可以用CTE替換視圖。如果您沒有創(chuàng)建視圖對象的權(quán)限,或者您不想創(chuàng)建一個視圖對象,因為它僅在此一個查詢中使用,這很方便。
○ 遞歸:使用CTE會創(chuàng)建遞歸查詢,即可以調(diào)用自身的查詢。當(dāng)您需要處理組織結(jié)構(gòu)圖等分層數(shù)據(jù)時,這很方便。
○ 限制:克服SELECT語句限制,例如引用自身(遞歸)或使用非確定性函數(shù)執(zhí)行GROUP BY。
○ 排名:每當(dāng)你想使用排名函數(shù),如ROW_NUMBER(),RANK(),NTILE()等。
看完了這篇文章,相信你對SQL中的CTE有什么用有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!