本文主要介紹sql查詢(xún)的執(zhí)行過(guò)程(sql的查詢(xún)處理分為哪些階段 分別完成哪些工作),下面一起看看sql查詢(xún)的執(zhí)行過(guò)程(sql的查詢(xún)處理分為哪些階段 分別完成哪些工作)相關(guān)資訊。
在大型編程語(yǔ)言中,代碼是按照編碼順序處理的,而在sql語(yǔ)言中,第一個(gè)處理的子句是從屬子句。雖然select語(yǔ)句是第一次出現(xiàn),但它幾乎總是最后處理。每一步都生成一個(gè)虛擬表作為下一步的輸入。這些虛擬表不提供給調(diào)用者(客戶(hù)端應(yīng)用程序或外部查詢(xún)),表的最后一步將返回給調(diào)用者。如果術(shù)語(yǔ)中沒(méi)有指定查詢(xún),將跳過(guò)相應(yīng)的步驟。下面是對(duì)sql server 2000和sql server 2005的邏輯步驟的簡(jiǎn)單描述。復(fù)制代碼的代碼如下:(8)select(9)explicit(11)(1)add from left _ table {(3)(2)about(4)where(5)by group(6)(7)have(10)順序邏輯查詢(xún)處理過(guò)程簡(jiǎn)介1.from:執(zhí)行笛卡爾積(1 .只有那些真正的電線(xiàn)入vt2。3.outer (join):如果找到匹配的外部行,并按照外部連接(相對(duì)于cross(內(nèi)部連接)或join(保存:表和保留表用左邊的外部連接表標(biāo)記,右邊的外部連接表用保留表標(biāo)記,兩個(gè)完全外部連接的表左邊的標(biāo)記不是paul)指定的那樣添加到vt2和vt3。如果from子句在一個(gè)連接表中包含兩個(gè)以上的表,并且當(dāng)這些表重復(fù)步驟1到3直到所有的表都被處理完時(shí),就會(huì)生成結(jié)果。4 .其中:應(yīng)用于濾波器vt3。只有行才構(gòu)成真正的插入vt4。5 . group:group vt4行根據(jù)group by子句中的列列表生成vt5。6。cube | summary:將超群插入vt5生成vt6。7.having:使用帶過(guò)濾器的vt6。只有集體才能真正插入vt7。8.select:處理選擇列表,處理各種累加函數(shù),生成vt8。9.distinct:刪除重復(fù)的行vt8以生成vt9。10.order:根據(jù)orderby子句中的列列表對(duì)vt9中的行進(jìn)行排序,并生成游標(biāo)(vc10)。11.top:選擇從vc10開(kāi)始的行中指定的數(shù)量或比例,生成表vt11并返回給調(diào)用者。注意:步驟10,根據(jù)列表中的順序,在子句中返回排名,光標(biāo)返回vc10。這一步是第一步,也是唯一的一步。您可以使用列別名來(lái)選擇列表。這一步與其他步驟不同,它不返回有效的表,而是返回一個(gè)cursor.sql基于集合論,集合不預(yù)先對(duì)其行進(jìn)行排序;它只是一個(gè)邏輯組的成員,成員的順序無(wú)關(guān)緊要。查詢(xún)排序表可以返回一個(gè)對(duì)象,包括指向組織在特定物理order.ansi行調(diào)用的對(duì)象的指針。理解這一步是正確理解sql的基礎(chǔ)。因?yàn)榇瞬襟E不返回表(而是返回光標(biāo)),所以使用order by子句的查詢(xún)不能用作表。表表達(dá)式包括視圖、內(nèi)聯(lián)表值函數(shù)、子查詢(xún)、派生表和公共表達(dá)式,結(jié)果必須返回給客戶(hù)端應(yīng)用程序,希望獲得一個(gè)物理記錄。例如,下面的派生表查詢(xún)無(wú)效,導(dǎo)致錯(cuò)誤:復(fù)制代碼如下:select * from(select row,customerid from orderid for order)d下面的視圖也會(huì)生成錯(cuò)誤。復(fù)制代碼如下:將視圖my_view創(chuàng)建為selection * from order with row錯(cuò)誤信息:glutamate 1033,level 15,status 1,program my_viewasselect,lin測(cè)試表(名為varchar(10),(10),當(dāng)然varchar int的一部分),插入tb值( 張三 , 語(yǔ)言與文學(xué)。;,74),插入tb值( 張三,數(shù)學(xué),83),插入tb值( 張三 , 物理與數(shù)學(xué)。;, 93).74)插入tb值(李四,數(shù)學(xué),84)插入tb值(李四 , 物理與數(shù)學(xué)。;,94)去——sql server 2000靜態(tài)sql,只指三門(mén)課(以下內(nèi)容相同)。選擇名稱(chēng)作為名稱(chēng),max(當(dāng)是case類(lèi)時(shí),則分?jǐn)?shù)0結(jié)束)、max(案例課程數(shù)學(xué)以分?jǐn)?shù)0結(jié)束)、max(案例課程物理以分?jǐn)?shù)0結(jié)束)、物理西壩組名稱(chēng)。
了解更多sql查詢(xún)的執(zhí)行過(guò)程(sql的查詢(xún)處理分為哪些階段 分別完成哪些工作)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。