SQL語句的各個關(guān)鍵字的解析過程詳細總結(jié)建站知
導(dǎo)讀:1建站知識由于最近需要做一些sql query性能提升的研究,因此研究了一下sql語句的解析過程;本文是我在看了各種資料后手機總結(jié)網(wǎng)站seo優(yōu)化軟件網(wǎng)站建設(shè)。
由于最近需要做一些sql query性能提升的研究,因此研究了一下sql語句的解決過程。在園子里看了下,大家寫了很多相關(guān)的文章,大家的側(cè)重點各有不同。本文是我在看了各種資料后手機總結(jié)的,會詳細的,一步一步的講述一個sql語句的各個關(guān)鍵字的解析過程,歡迎大家互相學(xué)習(xí)。
SQL語句的解析順序簡單的說一個sql語句是按照如下的順序解析的:
1. FROM FROM后面的表標(biāo)識了這條語句要查詢的數(shù)據(jù)源。和一些子句如,(1-J1)笛卡爾積,(1-J2)ON過濾,(1-J3)添加外部列,所要應(yīng)用的對象。FROM過程之后會生成一個虛擬表VT1。 (1-J1)笛卡爾積 這個步驟會計算兩個相關(guān)聯(lián)表的笛卡爾積(CROSS JOIN) ,生成虛擬表VT1-J1。 (1-J2)ON過濾 這個步驟基于虛擬表VT1-J1這一個虛擬表進行過濾,過濾出所有滿足ON 謂詞條件的列,生成虛擬表VT1-J2。 (1-J3)添加外部行 如果使用了外連接,保留表中的不符合ON條件的列也會被加入到VT1-J2中,作為外部行,生成虛擬表VT1-J3。 2. WHERE 對VT1過程中生成的臨時表進行過濾,滿足where子句的列被插入到VT2表中。 3. GROUP BY 這個子句會把VT2中生成的表按照GROUP BY中的列進行分組。生成VT3表。 4. HAVING 這個子句對VT3表中的不同的組進行過濾,滿足HAVING條件的子句被加入到VT4表中。 5. SELECT 這個子句對SELECT子句中的元素進行處理,生成VT5表。 (5-1)計算表達式 計算SELECT 子句中的表達式,生成VT5-1 (5-2)DISTINCT 尋找VT5-1中的重復(fù)列,并刪掉,生成VT5-2 (5-3)TOP 從ORDER BY子句定義的結(jié)果中,篩選出符合條件的列。生成VT5-3表 ORDER BY 從VT5-3中的表中,根據(jù)ORDER BY 子句的條件對結(jié)果進行排序,生成VC6表。 客戶,訂單的查詢例子首先創(chuàng)建一個Customers表,插入如下數(shù)據(jù):
customerid city
FISSA Madrid
FRNDO Madrid
KRLOS Madrid
MRPHS Zion
創(chuàng)建一個Orders表,插入如下數(shù)據(jù):
orderid customerid
1 FRNDO
2 FRNDO
3 KRLOS
4 KRLOS
5 KRLOS
6 MRPHS
7 NULL
假如我們想要查詢來自Madrid的,訂單數(shù)小于3的客戶,并把他們的訂單數(shù)顯示出來,結(jié)果按照訂單數(shù)從小到大進行排序。
復(fù)制代碼 代碼如下:
SELECT C.customerid, COUNT(O.orderid) AS numorders FROM dbo.Customers AS C LEFT OUTER JOIN dbo.Orders AS O ON C.customerid = O.customerid WHERE C.city = 'Madrid'網(wǎng)站建設(shè)公司 GROUP BY C.customerid HAVING COUNT(O.orderid) < 3 ORDER BY numorders
查詢結(jié)果為:customerid numorders
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-23 ,文章SQL語句的各個關(guān)鍵字的解析過程詳細總結(jié)建站知主要講述語句,關(guān)鍵字,SQL網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請保留鏈接: http://www.bifwcx.com/article/web_6167.html
為你推薦與SQL語句的各個關(guān)鍵字的解析過程詳細總結(jié)建站知相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12